]> source.dussan.org Git - rspamd.git/commitdiff
[Feature] Parse received timestamp
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 15 Jun 2016 08:21:03 +0000 (09:21 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Wed, 15 Jun 2016 08:21:03 +0000 (09:21 +0100)
src/lua/lua_task.c
src/ragel/smtp_date.rl
src/ragel/smtp_received.rl

index bc31640fa13fc53acae231f50d32704775a37fa3..38402039b2526b8284204e2e258e4b39f3f0cb0f 100644 (file)
@@ -1478,6 +1478,11 @@ lua_task_get_received_headers (lua_State * L)
                        }
                        lua_pushstring (L, proto);
                        lua_settable (L, -3);
+
+                       lua_pushstring (L, "timestamp");
+                       lua_pushnumber (L, rh->timestamp);
+                       lua_settable (L, -3);
+
                        rspamd_lua_table_set (L, "by_hostname", rh->by_hostname);
                        lua_rawseti (L, -2, k ++);
                }
index d2efe61a60b772603e17fa97ab54c92b65df5815..da5872439ea4f7fe9beaa15adae5f9036fe70325 100644 (file)
@@ -11,7 +11,7 @@
   day_name        =    "Mon" | "Tue" | "Wed" | "Thu" |
                        "Fri" | "Sat" | "Sun";
   day_of_week     =   FWS? day_name;
-  day             =   FWS? digit_2+ FWS;
+  day             =   FWS? digit{1,2} FWS;
   month           =    "Jan" | "Feb" | "Mar" | "Apr" |
                        "May" | "Jun" | "Jul" | "Aug" |
                        "Sep" | "Oct" | "Nov" | "Dec";
@@ -20,8 +20,8 @@
   hour            =   digit_2;
   minute          =   digit_2;
   second          =   digit_2;
-  time_of_day     =   hour ":" minute ( ":" second );
-  zone            =   (FWS ( "+" |"_" ) digit_4);
+  time_of_day     =   hour ":" minute (":" second )?;
+  zone            =   FWS ("+" | "-") >Sign_Start %Sign_End digit_4;
   time            =   time_of_day zone;
-  date_time       =   (day_of_week ",")? date time CFWS?;
+  date_time       =   (day_of_week ",")? date time;
 }%%
\ No newline at end of file
index 02e850c9bdd5c60ed47ea8a979c1955b3b294fa5..8e182585504ce0c8d5f9ffd2b2b9659ac9bc6ca9 100644 (file)
@@ -40,6 +40,6 @@
   For            = CFWS "FOR"i FWS ( Path | Mailbox ) %For_End;
   Additional_Registered_Clauses  = CFWS Atom FWS String;
   Opt_info       = Via? With? ID? For? Additional_Registered_Clauses?;
-  Received       = From_domain By_domain Opt_info CFWS? ";" FWS date_time >Date_Start %Date_End;
+  Received       = From_domain By_domain Opt_info CFWS? ";" FWS date_time >Date_Start %Date_End CFWS?;
 
 }%%