From 795b01a1b5a4998cb3d2b004ce109e0f505076eb Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Sun, 17 Aug 2014 18:53:07 +0100 Subject: Really allow to specify multiplier in return value. --- src/lua/lua_config.c | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) (limited to 'src/lua/lua_config.c') diff --git a/src/lua/lua_config.c b/src/lua/lua_config.c index 5eddcbb82..2862c62de 100644 --- a/src/lua/lua_config.c +++ b/src/lua/lua_config.c @@ -635,11 +635,20 @@ lua_metric_symbol_callback (struct rspamd_task *task, gpointer ud) gboolean res; GList *opts = NULL; gint i; + gdouble flag = 1.0; if (lua_type (cd->L, level + 1) == LUA_TBOOLEAN) { res = lua_toboolean (cd->L, level + 1); if (res) { - for (i = lua_gettop (cd->L); i > level + 1; i --) { + gint first_opt = 2; + + if (lua_type (cd->L, level + 2) == LUA_TNUMBER) { + flag = lua_tonumber (cd->L, level + 2); + /* Shift opt index */ + first_opt = 3; + } + + for (i = lua_gettop (cd->L); i >= level + first_opt; i --) { if (lua_type (cd->L, i) == LUA_TSTRING) { const char *opt = lua_tostring (cd->L, i); @@ -647,7 +656,7 @@ lua_metric_symbol_callback (struct rspamd_task *task, gpointer ud) rspamd_mempool_strdup (task->task_pool, opt)); } } - insert_result (task, cd->symbol, 1.0, opts); + insert_result (task, cd->symbol, flag, opts); } } lua_pop (cd->L, nresults); -- cgit v1.2.3