Browse Source

[Minor] Improve functions pcall invocations

tags/2.6
Vsevolod Stakhov 4 years ago
parent
commit
fd5a976a09
2 changed files with 16 additions and 5 deletions
  1. 11
    3
      src/lua/lua_map.c
  2. 5
    2
      src/lua/lua_redis.c

+ 11
- 3
src/lua/lua_map.c View File

@@ -442,6 +442,10 @@ lua_map_fin (struct map_cb_data *data, void **target)
msg_err_map ("map has no callback set");
}
else if (cbdata->data != NULL && cbdata->data->len != 0) {

lua_pushcfunction (cbdata->L, &rspamd_lua_traceback);
int err_idx = lua_gettop (cbdata->L);

lua_rawgeti (cbdata->L, LUA_REGISTRYINDEX, cbdata->ref);

if (!cbdata->opaque) {
@@ -461,11 +465,15 @@ lua_map_fin (struct map_cb_data *data, void **target)
*pmap = cbdata->lua_map;
rspamd_lua_setclass (cbdata->L, "rspamd{map}", -1);

if (lua_pcall (cbdata->L, 2, 0, 0) != 0) {
msg_info_map ("call to %s failed: %s", "local function",
gint ret = lua_pcall (cbdata->L, 2, 0, err_idx);

if (ret != 0) {
msg_info_map ("call to %s failed (%d): %s", "map fin function",
ret,
lua_tostring (cbdata->L, -1));
lua_pop (cbdata->L, 1);
}

lua_settop (cbdata->L, err_idx - 1);
}

cbdata->data = rspamd_fstring_assign (cbdata->data, "", 0);

+ 5
- 2
src/lua/lua_redis.c View File

@@ -405,8 +405,11 @@ lua_redis_push_data (const redisReply *r, struct lua_redis_ctx *ctx,
rspamd_symcache_set_cur_item (ud->task, ud->item);
}

if (lua_pcall (cbs.L, 2, 0, err_idx) != 0) {
msg_info ("call to callback failed: %s", lua_tostring (cbs.L, -1));
gint ret = lua_pcall (cbs.L, 2, 0, err_idx);

if (ret != 0) {
msg_info ("call to lua_redis callback failed (%d): %s",
ret, lua_tostring (cbs.L, -1));
}

lua_settop (L, err_idx - 1);

Loading…
Cancel
Save