add an RBN line to progress
[spider.git] / perl / DXMsg.pm
index fe65cdb3b204667d1931113c4036f6583fcd56a8..38d89bbc7d4b772c5c985ac3f9b73b4a72cf5a3f 100644 (file)
@@ -4,7 +4,7 @@
 #
 # Copyright (c) 1998 Dirk Koopman G1TLH
 #
-# $Id$
+#
 #
 #
 # Notes for implementors:-
@@ -32,12 +32,6 @@ eval {
 
 use strict;
 
-use vars qw($VERSION $BRANCH);
-$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
-$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/  || (0,0));
-$main::build += $VERSION;
-$main::branch += $BRANCH;
-
 use vars qw(%work @msg $msgdir %valid %busy $maxage $last_clean $residencetime
                        @badmsg @swop $swopfn $badmsgfn $forwardfn @forward $timeout $waittime
                        $email_server $email_prog $email_from
@@ -130,7 +124,7 @@ sub alloc
        $self->{gotit} = [];
 #      $self->{lastt} = $main::systime;
        $self->{lines} = [];
-       $self->{private} = 1 if $bulltopriv && DXUser->get_current($self->{to});
+       $self->{private} = 1 if $bulltopriv && DXUser::get_current($self->{to});
     
        return $self;
 }
@@ -206,7 +200,7 @@ sub handle_28
        $ref->{lastt} = $main::systime;
 
        # look to see whether this is a non private message sent to a known callsign
-       my $uref = DXUser->get_current($ref->{to});
+       my $uref = DXUser::get_current($ref->{to});
        if (is_callsign($ref->{to}) && !$ref->{private} && $uref && $uref->homenode) {
                $ref->{private} = 1;
                dbg("set bull to $ref->{to} to private") if isdbg('msg');
@@ -482,7 +476,7 @@ sub notify
 {
        my $ref = shift;
        my $to = $ref->{to};
-       my $uref = DXUser->get_current($to);
+       my $uref = DXUser::get_current($to);
        my $dxchan = DXChannel::get($to);
        if (((*Net::SMTP && $email_server) || $email_prog) && $uref && $uref->wantemail) {
                my $email = $uref->email;
@@ -792,6 +786,8 @@ sub queue_msg
                                if ($dxchan) {
                                        if ($dxchan->is_node) {
                                                next if $clref->call eq $main::mycall;  # i.e. it lives here
+                                               next if $dxchan->is_arcluster;                  # don't even go there, idiot people send the header in the wrong order and won't/can't fix it
+                                               next if $dxchan->isolate;                               # there is no mechanism for sending messages to isolated nodes. 
                                                $ref->start_msg($dxchan) if !get_busy($dxchan->call)  && $dxchan->state eq 'normal';
                                        }
                                } else {
@@ -810,8 +806,10 @@ sub queue_msg
                                next unless $call;
                                next if $call eq $main::mycall;
                                next if ref $ref->{gotit} && grep $_ eq $call, @{$ref->{gotit}};
-                               next unless $ref->forward_it($call);           # check the forwarding file
-                               next if $ref->{tonode};           # ignore it if it already being processed
+                               next unless $ref->forward_it($call);    # check the forwarding file
+                               next if $ref->{tonode};                 # ignore it if it already being processed
+                               next if $dxchan->is_arcluster;                  # don't even go there, idiot people send the header in the wrong order and won't/can't fix it
+                               next if $dxchan->isolate;                               # there is no mechanism for sending messages to isolated nodes. 
                                
                                # if we are here we have a node that doesn't have this message
                                if (!get_busy($call)  && $dxchan->state eq 'normal') {