allow someone to reject msgs from an interface call
[spider.git] / perl / DXMsg.pm
index 2cdb6a8028a15bb2d11e4ae27a1755b1e23e15d1..f3c2172cfba7c45c70e7fa5d3c12353853dd2b92 100644 (file)
@@ -165,10 +165,11 @@ sub process
                        # 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);
                        }
 
@@ -283,7 +284,7 @@ sub process
                                                $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}");
@@ -776,7 +777,7 @@ sub init
                }
                
                # 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;
@@ -991,6 +992,7 @@ sub forward_it
 sub dump_it
 {
        my $ref = shift;
+       my $call = shift;
        my $i;
        
        for ($i = 0; $i < @badmsg; $i += 3) {
@@ -1006,6 +1008,7 @@ sub dump_it
                $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;