From 601e6403a2c8bcd9e73bb683cd26aa5d3a2c06b9 Mon Sep 17 00:00:00 2001 From: Vsevolod Stakhov Date: Tue, 14 Dec 2021 16:16:56 +0000 Subject: [PATCH] [Minor] Allow lua_text in addition to strings --- src/lua/lua_text.c | 2 +- src/lua/lua_util.c | 20 +++++++++++++------- 2 files changed, 14 insertions(+), 8 deletions(-) diff --git a/src/lua/lua_text.c b/src/lua/lua_text.c index d1fd87ded..f88b5c29b 100644 --- a/src/lua/lua_text.c +++ b/src/lua/lua_text.c @@ -292,7 +292,7 @@ lua_check_text_or_string (lua_State * L, gint pos) * Fake static lua_text, we allow to use this function multiple times * by having a small array of static structures. */ - static int cur_txt_idx = 0; + static unsigned cur_txt_idx = 0; static struct rspamd_lua_text fake_text[4]; gsize len; int sel_idx; diff --git a/src/lua/lua_util.c b/src/lua/lua_util.c index 570a51be7..4dd944008 100644 --- a/src/lua/lua_util.c +++ b/src/lua/lua_util.c @@ -1366,11 +1366,12 @@ static gint lua_util_fold_header (lua_State *L) { LUA_TRACE_POINT; - const gchar *name, *value, *how, *stop_chars = NULL; + const gchar *how, *stop_chars = NULL; + struct rspamd_lua_text *name, *value; GString *folded; - name = luaL_checkstring (L, 1); - value = luaL_checkstring (L, 2); + name = lua_check_text_or_string (L, 1); + value = lua_check_text_or_string (L, 2); if (name && value) { @@ -1383,20 +1384,25 @@ lua_util_fold_header (lua_State *L) } if (strcmp (how, "cr") == 0) { - folded = rspamd_header_value_fold (name, value, 0, + folded = rspamd_header_value_fold (name->start, name->len, + value->start, value->len, + 0, RSPAMD_TASK_NEWLINES_CR, stop_chars); } else if (strcmp (how, "lf") == 0) { - folded = rspamd_header_value_fold (name, value, 0, + folded = rspamd_header_value_fold (name->start, name->len, + value->start, value->len, 0, RSPAMD_TASK_NEWLINES_LF, stop_chars); } else { - folded = rspamd_header_value_fold (name, value, 0, + folded = rspamd_header_value_fold (name->start, name->len, + value->start, value->len, 0, RSPAMD_TASK_NEWLINES_CRLF, stop_chars); } } else { - folded = rspamd_header_value_fold (name, value, 0, + folded = rspamd_header_value_fold (name->start, name->len, + value->start, value->len, 0, RSPAMD_TASK_NEWLINES_CRLF, stop_chars); } -- 2.39.5