]> scm.dxcluster.org Git - spider.git/commitdiff
and add it to PC17 as well
authordjk <djk>
Wed, 3 Nov 1999 21:55:32 +0000 (21:55 +0000)
committerdjk <djk>
Wed, 3 Nov 1999 21:55:32 +0000 (21:55 +0000)
perl/DXProt.pm

index 25d862cfa52910b8d9b8922fa5e6331c73b1cf45..c039659bd96dbfab15373c542cf92578f449e503 100644 (file)
@@ -360,13 +360,20 @@ sub normal
                
                if ($pcno == 17) {              # remove a user
                        my $node = DXCluster->get_exact($field[2]);
                
                if ($pcno == 17) {              # remove a user
                        my $node = DXCluster->get_exact($field[2]);
+                       my $dxchan;
+                       if (!$node && ($dxchan = DXChannel->get($field[2]))) {
+                               # add it to the node table if it isn't present and it's
+                               # connected locally
+                               $node = DXNode->new($dxchan, $field[2], 0, 1, 5400);
+                               broadcast_ak1a(pc19($dxchan, $node), $dxchan, $self) unless $dxchan->{isolate};
+                               return;
+                       }
                        return unless $node;
                        return unless $node->isa('DXNode');
                        if ($node->dxchan != $self) {
                                dbg('chan', "LOOP: $field[2] came in on wrong channel");
                                return;
                        }
                        return unless $node;
                        return unless $node->isa('DXNode');
                        if ($node->dxchan != $self) {
                                dbg('chan', "LOOP: $field[2] came in on wrong channel");
                                return;
                        }
-                       my $dxchan;
                        if (($dxchan = DXChannel->get($field[2])) && $dxchan != $self) {
                                dbg('chan', "LOOP: $field[2] connected locally");
                                return;
                        if (($dxchan = DXChannel->get($field[2])) && $dxchan != $self) {
                                dbg('chan', "LOOP: $field[2] connected locally");
                                return;