X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXMsg.pm;h=67165ef455a03df1fcae0368bd1ba21504f5c325;hb=e4366c330ee2e359f1a2404f9ff35075e81165cc;hp=04ef99cb8ecffccfb21d7215b590a886497d2a8d;hpb=5f55df46eaca8100b1317845f177d9843a0905f0;p=spider.git diff --git a/perl/DXMsg.pm b/perl/DXMsg.pm index 04ef99cb..67165ef4 100644 --- a/perl/DXMsg.pm +++ b/perl/DXMsg.pm @@ -151,7 +151,10 @@ sub process } # clean the message queue - clean_old() if $main::systime - $last_clean > 3600 ; + if ($main::systime >= $last_clean+3600) { + clean_old(); + $last_clean = $main::systime; + } # actual remove all the 'deleted' messages in one hit. # this has to be delayed until here otherwise it only does one at @@ -161,7 +164,6 @@ sub process $_->del_msg; } - $last_clean = $main::systime; } # incoming message @@ -312,6 +314,14 @@ sub handle_32 $ref->store($ref->{lines}); } else { + # is it too old + if ($ref->{t}+$maxage < $main::systime ) { + $ref->stop_msg($fromnode); + dbg("old message from $ref->{from} -> $ref->{to} " . atime($ref->{t}) . " ignored") if isdbg('msg'); + Log('msg', "old message from $ref->{from} -> $ref->{to} " . cldatetime($ref->{t}) . " ignored"); + return; + } + # does an identical message already exist? my $m; for $m (@msg) {