X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXMsg.pm;h=04239f16b6777581ade86c2cb0f036f087d1f42b;hb=accadb4dd51333fae2726e8aa52564abc42f2e70;hp=77259d071ad2e18707ed5f32e79cbf669b675a35;hpb=407d9a80a8af1fa6c1ae2c8fbca833e49da6e816;p=spider.git diff --git a/perl/DXMsg.pm b/perl/DXMsg.pm index 77259d07..04239f16 100644 --- a/perl/DXMsg.pm +++ b/perl/DXMsg.pm @@ -282,7 +282,7 @@ sub process # does an identical message already exist? my $m; for $m (@msg) { - if ($ref->{subject} eq $m->{subject} && $ref->{t} == $m->{t} && $ref->{from} eq $m->{from} && $ref->{to} eq $m->{to}) { + if (substr($ref->{subject},0,28) eq substr($m->{subject},0,28) && $ref->{t} == $m->{t} && $ref->{from} eq $m->{from} && $ref->{to} eq $m->{to}) { $ref->stop_msg($fromnode); my $msgno = $m->{msgno}; dbg("duplicate message from $ref->{from} -> $ref->{to} to msg: $msgno") if isdbg('msg'); @@ -1237,7 +1237,7 @@ sub import_one # first line; my $line = shift @$ref; - my @f = split /\b/, $line; + my @f = split /([\s\@\$])/, $line; @f = map {s/\s+//g; length $_ ? $_ : ()} @f; unless (@f && $f[0] =~ /^(:?S|SP|SB|SEND)$/ ) { @@ -1325,7 +1325,18 @@ sub import_one } else { push @chunk, $ref; } - + + # does an identical message already exist? + my $m; + for $m (@msg) { + if (substr($subject,0,28) eq substr($m->{subject},0,28) && $from eq $m->{from} && grep $m->{to} eq $_, @to) { + my $msgno = $m->{msgno}; + dbg("duplicate message from $from -> $m->{to} to msg: $msgno") if isdbg('msg'); + Log('msg', "duplicate message from $from -> $m->{to} to msg: $msgno"); + return; + } + } + # write all the messages away my $i; for ( $i = 0; $i < @chunk; $i++) {