Kaynağa Gözat

app_lua: sql_xquery() from sqlops exported to Lua API

Daniel-Constantin Mierla 13 yıl önce
ebeveyn
işleme
4bf91a7432
1 değiştirilmiş dosya ile 42 ekleme ve 0 silme
  1. 42 0
      modules/app_lua/app_lua_exp.c

+ 42 - 0
modules/app_lua/app_lua_exp.c

@@ -773,6 +773,47 @@ static int lua_sr_sqlops_reset(lua_State *L)
 	return app_lua_return_true(L);
 	return app_lua_return_true(L);
 }
 }
 
 
+/**
+ *
+ */
+static int lua_sr_sqlops_xquery(lua_State *L)
+{
+	str scon;
+	str squery;
+	str sres;
+	int ret;
+	sr_lua_env_t *env_L;
+
+	env_L = sr_lua_env_get();
+
+	if(!(_sr_lua_exp_reg_mods&SR_LUA_EXP_MOD_SQLOPS))
+	{
+		LM_WARN("weird: sqlops function executed but module not registered\n");
+		return app_lua_return_error(L);
+	}
+
+	if(env_L->msg==NULL)
+	{
+		LM_WARN("invalid parameters from Lua env\n");
+		return app_lua_return_error(L);
+	}
+
+	scon.s = (char*)lua_tostring(L, -3);
+	squery.s = (char*)lua_tostring(L, -2);
+	sres.s = (char*)lua_tostring(L, -1);
+	if(scon.s == NULL || squery.s == NULL || sres.s == NULL)
+	{
+		LM_WARN("invalid parameters from Lua\n");
+		return app_lua_return_error(L);
+	}
+	scon.len = strlen(scon.s);
+	squery.len = strlen(squery.s);
+	sres.len = strlen(sres.s);
+
+	ret = _lua_sqlopsb.xquery(env_L->msg, &scon, &squery, &sres);
+	return app_lua_return_int(L, ret);
+}
+
 /**
 /**
  *
  *
  */
  */
@@ -784,6 +825,7 @@ static const luaL_reg _sr_sqlops_Map [] = {
 	{"nrows",   lua_sr_sqlops_nrows},
 	{"nrows",   lua_sr_sqlops_nrows},
 	{"ncols",   lua_sr_sqlops_ncols},
 	{"ncols",   lua_sr_sqlops_ncols},
 	{"reset",   lua_sr_sqlops_reset},
 	{"reset",   lua_sr_sqlops_reset},
+	{"xquery",  lua_sr_sqlops_xquery},
 	{NULL, NULL}
 	{NULL, NULL}
 };
 };