]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] rspamd_stats: try to guess the last year timestamps for syslog 1794/head
authorAlexander Moisseev <moiseev@mezonplus.ru>
Tue, 8 Aug 2017 15:22:20 +0000 (18:22 +0300)
committerAlexander Moisseev <moiseev@mezonplus.ru>
Tue, 8 Aug 2017 15:22:20 +0000 (18:22 +0300)
utils/rspamd_stats.pl

index af5b4ec6f2cbc025d46d356211589edd9407815e..fcd2ea503821eac79a63cfb3213e74b1aa6b5f50 100755 (executable)
@@ -448,15 +448,19 @@ sub numeric {
     $a_num <=> $b_num;
 }
 
-# Convert syslog timestamp to "ISO 8601 like" format.
-# Using current year, as syslog does not record the year (nor the timezone)
+# Convert syslog timestamp to "ISO 8601 like" format
+# using current year as syslog does not record the year (nor the timezone)
+# or the last year if the guessed time is in the future.
 sub syslog2iso {
     my %month_map;
     @month_map{qw(Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec)} = 0 .. 11;
 
     my ( $month, @t ) =
       $_[0] =~ m/^(\w{3}) \s\s? (\d\d?) \s (\d\d):(\d\d):(\d\d)/x;
-    sprintf '%04d-%02d-%02d %02d:%02d:%02d', 1900 + (localtime)[5],
+    my $epoch =
+      timelocal( ( reverse @t ), $month_map{$month}, 1900 + (localtime)[5] );
+    sprintf '%04d-%02d-%02d %02d:%02d:%02d',
+      1900 + (localtime)[5] - ( $epoch > time ),
       $month_map{$month} + 1, @t;
 }