diff options
Diffstat (limited to 'src/lua/lua_dns.c')
-rw-r--r-- | src/lua/lua_dns.c | 137 |
1 files changed, 67 insertions, 70 deletions
diff --git a/src/lua/lua_dns.c b/src/lua/lua_dns.c index 79ec72f94..cffa31259 100644 --- a/src/lua/lua_dns.c +++ b/src/lua/lua_dns.c @@ -15,17 +15,16 @@ #include "lua_dns_resolver.h" #include "lua_thread_pool.h" -LUA_FUNCTION_DEF (dns, request); +LUA_FUNCTION_DEF(dns, request); static const struct luaL_reg dns_f[] = { - LUA_INTERFACE_DEF (dns, request), - {"__tostring", rspamd_lua_class_tostring}, - {NULL, NULL} -}; + LUA_INTERFACE_DEF(dns, request), + {"__tostring", rspamd_lua_class_tostring}, + {NULL, NULL}}; static const gchar *M = "rspamd lua dns"; -void lua_dns_callback (struct rdns_reply *reply, void *arg); +void lua_dns_callback(struct rdns_reply *reply, void *arg); struct lua_rspamd_dns_cbdata { struct thread_entry *thread; @@ -36,7 +35,7 @@ struct lua_rspamd_dns_cbdata { }; static gint -lua_dns_request (lua_State *L) +lua_dns_request(lua_State *L) { GError *err = NULL; struct rspamd_async_session *session = NULL; @@ -50,24 +49,24 @@ lua_dns_request (lua_State *L) gboolean forced = FALSE; /* Check arguments */ - if (!rspamd_lua_parse_table_arguments (L, 1, &err, - RSPAMD_LUA_PARSE_ARGUMENTS_DEFAULT, - "*name=S;task=U{task};*type=S;forced=B;session=U{session};config=U{config}", - &to_resolve, - &task, - &type_str, - &forced, - &session, - &cfg)) { + if (!rspamd_lua_parse_table_arguments(L, 1, &err, + RSPAMD_LUA_PARSE_ARGUMENTS_DEFAULT, + "*name=S;task=U{task};*type=S;forced=B;session=U{session};config=U{config}", + &to_resolve, + &task, + &type_str, + &forced, + &session, + &cfg)) { if (err) { - ret = luaL_error (L, "invalid arguments: %s", err->message); - g_error_free (err); + ret = luaL_error(L, "invalid arguments: %s", err->message); + g_error_free(err); return ret; } - return luaL_error (L, "invalid arguments"); + return luaL_error(L, "invalid arguments"); } if (task) { @@ -79,123 +78,121 @@ lua_dns_request (lua_State *L) pool = cfg->cfg_pool; } else { - return luaL_error (L, "invalid arguments: either task or session/config should be set"); + return luaL_error(L, "invalid arguments: either task or session/config should be set"); } - enum rdns_request_type type = rdns_type_fromstr (type_str); + enum rdns_request_type type = rdns_type_fromstr(type_str); if (type == RDNS_REQUEST_INVALID) { - return luaL_error (L, "invalid arguments: this record type is not supported"); + return luaL_error(L, "invalid arguments: this record type is not supported"); } - cbdata = rspamd_mempool_alloc0 (pool, sizeof (*cbdata)); + cbdata = rspamd_mempool_alloc0(pool, sizeof(*cbdata)); cbdata->task = task; if (type == RDNS_REQUEST_PTR) { char *ptr_str; - ptr_str = rdns_generate_ptr_from_str (to_resolve); + ptr_str = rdns_generate_ptr_from_str(to_resolve); if (ptr_str == NULL) { - msg_err_task_check ("wrong resolve string to PTR request: %s", - to_resolve); - lua_pushnil (L); + msg_err_task_check("wrong resolve string to PTR request: %s", + to_resolve); + lua_pushnil(L); return 1; } - to_resolve = rspamd_mempool_strdup (pool, ptr_str); - free (ptr_str); + to_resolve = rspamd_mempool_strdup(pool, ptr_str); + free(ptr_str); } if (task == NULL) { - ret = (rspamd_dns_resolver_request (cfg->dns_resolver, - session, - pool, - lua_dns_callback, - cbdata, - type, - to_resolve) != NULL); + ret = (rspamd_dns_resolver_request(cfg->dns_resolver, + session, + pool, + lua_dns_callback, + cbdata, + type, + to_resolve) != NULL); } else { if (forced) { - ret = rspamd_dns_resolver_request_task_forced (task, - lua_dns_callback, - cbdata, - type, - to_resolve); + ret = rspamd_dns_resolver_request_task_forced(task, + lua_dns_callback, + cbdata, + type, + to_resolve); } else { - ret = rspamd_dns_resolver_request_task (task, - lua_dns_callback, - cbdata, - type, - to_resolve); + ret = rspamd_dns_resolver_request_task(task, + lua_dns_callback, + cbdata, + type, + to_resolve); } } if (ret) { - cbdata->thread = lua_thread_pool_get_running_entry (cfg->lua_thread_pool); + cbdata->thread = lua_thread_pool_get_running_entry(cfg->lua_thread_pool); cbdata->s = session; if (task) { - cbdata->item = rspamd_symcache_get_cur_item (task); - rspamd_symcache_item_async_inc (task, cbdata->item, M); + cbdata->item = rspamd_symcache_get_cur_item(task); + rspamd_symcache_item_async_inc(task, cbdata->item, M); } - return lua_thread_yield (cbdata->thread, 0); + return lua_thread_yield(cbdata->thread, 0); } else { - lua_pushnil (L); + lua_pushnil(L); return 1; } } -void -lua_dns_callback (struct rdns_reply *reply, void *arg) +void lua_dns_callback(struct rdns_reply *reply, void *arg) { struct lua_rspamd_dns_cbdata *cbdata = arg; lua_State *L = cbdata->thread->lua_state; if (reply->code != RDNS_RC_NOERROR) { - lua_pushboolean (L, false); - lua_pushstring (L, rdns_strerror (reply->code)); + lua_pushboolean(L, false); + lua_pushstring(L, rdns_strerror(reply->code)); } else { - lua_push_dns_reply (L, reply); + lua_push_dns_reply(L, reply); - lua_pushboolean (L, reply->flags & RDNS_AUTH); - lua_setfield (L, -3, "authenticated"); + lua_pushboolean(L, reply->flags & RDNS_AUTH); + lua_setfield(L, -3, "authenticated"); - lua_pushboolean (L, reply->flags & RDNS_TRUNCATED); - lua_setfield (L, -3, "truncated"); + lua_pushboolean(L, reply->flags & RDNS_TRUNCATED); + lua_setfield(L, -3, "truncated"); /* result 1 - not and error */ - lua_pushboolean (L, true); + lua_pushboolean(L, true); /* push table into stack, result 2 - results itself */ - lua_pushvalue (L, -3); + lua_pushvalue(L, -3); } - lua_thread_resume (cbdata->thread, 2); + lua_thread_resume(cbdata->thread, 2); if (cbdata->item) { - rspamd_symcache_item_async_dec_check (cbdata->task, cbdata->item, M); + rspamd_symcache_item_async_dec_check(cbdata->task, cbdata->item, M); } } static gint -lua_load_dns (lua_State *L) +lua_load_dns(lua_State *L) { - lua_newtable (L); - luaL_register (L, NULL, dns_f); + lua_newtable(L); + luaL_register(L, NULL, dns_f); return 1; } -void -luaopen_dns (lua_State *L) +void luaopen_dns(lua_State *L) { - rspamd_lua_add_preload (L, "rspamd_dns", lua_load_dns); + rspamd_lua_add_preload(L, "rspamd_dns", lua_load_dns); } |