diff options
author | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2009-09-04 15:53:10 +0400 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@rambler-co.ru> | 2009-09-04 15:53:10 +0400 |
commit | 36e8776498484a27af13a623ca1c78603ba6c7f6 (patch) | |
tree | a856763a5f7f181085de21eff5ddeb825f7567c9 /src/lua/lua_task.c | |
parent | 3215a8457fcedcbc400a9447d06c7f54b0af35a4 (diff) | |
download | rspamd-36e8776498484a27af13a623ca1c78603ba6c7f6.tar.gz rspamd-36e8776498484a27af13a623ca1c78603ba6c7f6.zip |
* More fixes to lua api
Diffstat (limited to 'src/lua/lua_task.c')
-rw-r--r-- | src/lua/lua_task.c | 17 |
1 files changed, 13 insertions, 4 deletions
diff --git a/src/lua/lua_task.c b/src/lua/lua_task.c index e89572144..6a6ce5bde 100644 --- a/src/lua/lua_task.c +++ b/src/lua/lua_task.c @@ -37,6 +37,7 @@ static const struct luaL_reg tasklib_m[] = { LUA_INTERFACE_DEF(task, insert_result), LUA_INTERFACE_DEF(task, get_urls), LUA_INTERFACE_DEF(task, get_text_parts), + {"__tostring", lua_class_tostring}, {NULL, NULL} }; @@ -51,6 +52,7 @@ static const struct luaL_reg textpartlib_m[] = { LUA_INTERFACE_DEF(textpart, is_empty), LUA_INTERFACE_DEF(textpart, is_html), LUA_INTERFACE_DEF(textpart, get_fuzzy), + {"__tostring", lua_class_tostring}, {NULL, NULL} }; @@ -106,15 +108,18 @@ lua_task_insert_result (lua_State *L) static int lua_task_get_urls (lua_State *L) { + int i = 1; struct worker_task *task = lua_check_task (L); GList *cur; struct uri *url; if (task != NULL) { + lua_newtable (L); cur = g_list_first (task->urls); while (cur) { url = cur->data; lua_pushstring (L, struri (url)); + lua_rawseti(L, -2, i++); cur = g_list_next (cur); } } @@ -125,20 +130,24 @@ lua_task_get_urls (lua_State *L) static int lua_task_get_text_parts (lua_State *L) { - + int i = 1; struct worker_task *task = lua_check_task (L); GList *cur; struct mime_text_part *part, **ppart; if (task != NULL) { + lua_newtable (L); cur = task->text_parts; while (cur) { part = cur->data; ppart = lua_newuserdata (L, sizeof (struct mime_text_part *)); - lua_setclass (L, "rspamd{textpart}", -1); *ppart = part; + lua_setclass (L, "rspamd{textpart}", -1); + /* Make it array */ + lua_rawseti(L, -2, i++); cur = g_list_next (cur); } + return 1; } lua_pushnil (L); return 1; @@ -210,7 +219,7 @@ int luaopen_task (lua_State *L) { lua_newclass (L, "rspamd{task}", tasklib_m); - luaL_openlib (L, NULL, null_reg, 0); + luaL_openlib (L, "rspamd_task", null_reg, 0); return 1; } @@ -219,7 +228,7 @@ int luaopen_textpart (lua_State *L) { lua_newclass (L, "rspamd{textpart}", textpartlib_m); - luaL_openlib (L, NULL, null_reg, 0); + luaL_openlib (L, "rspamd_textpart", null_reg, 0); return 1; } |