提交 87db11af authored 作者: Leon de Rooij's avatar Leon de Rooij

Made 2nd arg to freeswitch.Dbh:query (cb func) optional

上级 5a6f0f5c
...@@ -19,8 +19,15 @@ ...@@ -19,8 +19,15 @@
/* Lua function typemap */ /* Lua function typemap */
%typemap(in,checkfn="lua_isfunction") SWIGLUA_FN %typemap(in, checkfn = "lua_isfunction") SWIGLUA_FN {
%{ $1.L=L; $1.idx=$input; %} $1.L = L;
$1.idx = $input;
}
%typemap(default) SWIGLUA_FN {
SWIGLUA_FN default_swiglua_fn = { 0 };
$1 = default_swiglua_fn;
}
%ignore SwitchToMempool; %ignore SwitchToMempool;
......
...@@ -367,10 +367,15 @@ int Dbh::query_callback(void *pArg, int argc, char **argv, char **cargv) ...@@ -367,10 +367,15 @@ int Dbh::query_callback(void *pArg, int argc, char **argv, char **cargv)
bool Dbh::query(char *sql, SWIGLUA_FN lua_fun) bool Dbh::query(char *sql, SWIGLUA_FN lua_fun)
{ {
if (connected) { if (connected) {
if (switch_cache_db_execute_sql_callback(dbh, sql, query_callback, &lua_fun, NULL) == SWITCH_STATUS_SUCCESS) { if (lua_fun.L && lua_fun.idx != 0) {
return true; if (switch_cache_db_execute_sql_callback(dbh, sql, query_callback, &lua_fun, NULL) == SWITCH_STATUS_SUCCESS) {
return true;
}
} else { /* if no lua_fun arg is passed from Lua, an empty initialized struct will be sent - see freeswitch.i */
if (switch_cache_db_execute_sql(dbh, sql, NULL) == SWITCH_STATUS_SUCCESS) {
return true;
}
} }
} }
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "no workie workie :(\n");
return false; return false;
} }
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论