aboutsummaryrefslogtreecommitdiffstats
path: root/src/lua/lua_util.c
diff options
context:
space:
mode:
authorVsevolod Stakhov <vsevolod@highsecure.ru>2020-10-06 15:36:23 +0100
committerVsevolod Stakhov <vsevolod@highsecure.ru>2020-10-06 15:36:23 +0100
commitb6085d45f1a31b4bf19abf91d5926e1ef87d39ca (patch)
tree87f2c55b9eb6a99e56eb4afeabd3aa49fc1c8b5c /src/lua/lua_util.c
parent83bcd4071050fa82deed1428cc587a1574b9c507 (diff)
downloadrspamd-b6085d45f1a31b4bf19abf91d5926e1ef87d39ca.tar.gz
rspamd-b6085d45f1a31b4bf19abf91d5926e1ef87d39ca.zip
[Minor] Add erroring to smtp parse date
Diffstat (limited to 'src/lua/lua_util.c')
-rw-r--r--src/lua/lua_util.c26
1 files changed, 18 insertions, 8 deletions
diff --git a/src/lua/lua_util.c b/src/lua/lua_util.c
index 5509fc435..1a2b52f80 100644
--- a/src/lua/lua_util.c
+++ b/src/lua/lua_util.c
@@ -3968,25 +3968,35 @@ lua_util_parse_smtp_date (lua_State *L)
{
gsize slen;
const gchar *str = lua_tolstring (L, 1, &slen);
+ GError *err = NULL;
if (str == NULL) {
return luaL_argerror (L, 1, "invalid argument");
}
- time_t tt = rspamd_parse_smtp_date (str, slen);
+ time_t tt = rspamd_parse_smtp_date (str, slen, &err);
- if (lua_isboolean (L, 2) && !!lua_toboolean (L, 2)) {
- struct tm t;
+ if (err == NULL) {
+ if (lua_isboolean (L, 2) && !!lua_toboolean (L, 2)) {
+ struct tm t;
- rspamd_localtime (tt, &t);
+ rspamd_localtime (tt, &t);
#if !defined(__sun)
- t.tm_gmtoff = 0;
+ t.tm_gmtoff = 0;
#endif
- t.tm_isdst = 0;
- tt = mktime (&t);
+ t.tm_isdst = 0;
+ tt = mktime (&t);
+ }
+
+ lua_pushnumber (L, tt);
}
+ else {
+ lua_pushnil (L);
+ lua_pushstring (L, err->message);
+ g_error_free (err);
- lua_pushnumber (L, tt);
+ return 2;
+ }
return 1;
}