# first look for any messages in the busy queue
# and cancel them this should both resolve timed out incoming messages
# and crossing of message between nodes, incoming messages have priority
+
if (exists $busy{$fromnode}) {
my $ref = $busy{$fromnode};
my $tonode = $ref->{tonode};
- dbg("Busy, stopping msgno: $ref->{msgno} -> $fromnode") if isdbg('msg');
+ dbg("Busy, stopping msgno: $ref->{msgno} $fromnode->$tonode") if isdbg('msg');
$ref->stop_msg($self->call);
}
$ref->swop_it($self->call);
# look for 'bad' to addresses
- if ($ref->dump_it) {
+ if ($ref->dump_it($self->call)) {
$ref->stop_msg($self->call);
dbg("'Bad' message $ref->{to}") if isdbg('msg');
Log('msg', "'Bad' message $ref->{to}");
}
# delete any messages to 'badmsg.pl' places
- if ($ref->dump_it) {
+ if ($ref->dump_it('')) {
dbg("'Bad' TO address $ref->{to}") if isdbg('msg');
Log('msg', "'Bad' TO address $ref->{to}");
$ref->del_msg;
sub dump_it
{
my $ref = shift;
+ my $call = shift;
my $i;
for ($i = 0; $i < @badmsg; $i += 3) {
$tested = $ref->{from} if $field eq 'F';
$tested = $ref->{origin} if $field eq 'O';
$tested = $ref->{subject} if $field eq 'S';
+ $tested = $call if $field eq 'I';
if (!$pattern || $tested =~ m{$pattern}i) {
return 1;