X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXMsg.pm;h=cd3bf74b0f757922abcb78545cd274899d31aa41;hb=b672afe940f843351af2bc4a87b4c4239f3a5140;hp=dbcd8097bafce544231a37f7e58565f55999e3c3;hpb=c71a54705682b0a66d6729af5f043dc2c2df276a;p=spider.git diff --git a/perl/DXMsg.pm b/perl/DXMsg.pm index dbcd8097..cd3bf74b 100644 --- a/perl/DXMsg.pm +++ b/perl/DXMsg.pm @@ -1091,9 +1091,25 @@ sub do_send_stuff Log('msg', "line: $line"); $loc->{reject}++; } + + if (@{$loc->{lines}}) { + push @{$loc->{lines}}, length($line) > 0 ? $line : " "; + } else { + # temporarily store any R: lines so that we end up with + # only the first and last ones stored. + if ($line =~ m|^R:\d{6}/\d{4}|) { + push @{$loc->{tempr}}, $line; + } else { + if (exists $loc->{tempr}) { + push @{$loc->{lines}}, shift @{$loc->{tempr}}; + push @{$loc->{lines}}, pop @{$loc->{tempr}} if @{$loc->{tempr}}; + delete $loc->{tempr}; + } + push @{$loc->{lines}}, length($line) > 0 ? $line : " "; + } + } # i.e. it ain't and end or abort, therefore store the line - push @{$loc->{lines}}, length($line) > 0 ? $line : " "; } } return @out;