};
static enum lua_date_type
-lua_task_detect_date_type (lua_State *L, gint idx, gboolean *gmt)
+lua_task_detect_date_type (struct rspamd_task *task,
+ lua_State *L, gint idx, gboolean *gmt)
{
enum lua_date_type type = DATE_CONNECT;
lua_pushvalue (L, idx);
lua_pushstring (L, "format");
lua_gettable (L, -2);
+
str = lua_tostring (L, -1);
- if (g_ascii_strcasecmp (str, "message") == 0) {
- type = DATE_MESSAGE;
- }
- else if (g_ascii_strcasecmp (str, "connect_str") == 0) {
- type = DATE_CONNECT_STRING;
+
+ if (str) {
+ if (g_ascii_strcasecmp (str, "message") == 0) {
+ type = DATE_MESSAGE;
+ } else if (g_ascii_strcasecmp (str, "connect_str") == 0) {
+ type = DATE_CONNECT_STRING;
+ } else if (g_ascii_strcasecmp (str, "message_str") == 0) {
+ type = DATE_MESSAGE_STRING;
+ }
}
- else if (g_ascii_strcasecmp (str, "message_str") == 0) {
- type = DATE_MESSAGE_STRING;
+ else {
+ msg_warn_task ("date format has not been specified");
}
+
lua_pop (L, 1);
lua_pushstring (L, "gmt");
if (task != NULL) {
if (lua_gettop (L) > 1) {
- type = lua_task_detect_date_type (L, 2, &gmt);
+ type = lua_task_detect_date_type (task, L, 2, &gmt);
}
/* Get GMT date and store it to time_t */
if (type == DATE_CONNECT || type == DATE_CONNECT_STRING) {