fix init and rinit stuff
[spider.git] / perl / DXProt.pm
index 875d2b6694314691dd9b219ae03401227870bfdd..fc08f5423649450372262ac068a072d5d2bebdf9 100644 (file)
@@ -610,11 +610,7 @@ sub normal
 
                        # first clear out any nodes on this dxchannel
                        my $parent = Route::Node::get($self->{call});
-                       my @rout;
-                       for ($parent->nodes) {
-                               my $r = Route::Node::get($_);
-                               push @rout, $r->del_node if $r;
-                       }
+                       my @rout = $parent->del_nodes;
                        $self->route_pc21(@rout, $parent);
                        $self->send_local_config();
                        $self->send(pc20());
@@ -912,11 +908,14 @@ sub normal
                        $user->lastoper($main::systime);   # to cut down on excessive for/opers being generated
                        $user->put;
                        my $ref = Route::get($call);
-                       $self->route_pc41($ref, $field[2], $field[3], $field[4]) if $ref && !eph_dup($line);
+                       $self->route_pc41($ref, $call, $field[2], $field[3], $field[4]) if $ref && !eph_dup($line);
+                       return;
                }
+
                if ($pcno == 43) {
                        last SWITCH;
                }
+
                if ($pcno == 37 || $pcno == 44 || $pcno == 45 || $pcno == 46 || $pcno == 47 || $pcno == 48) {
                        DXDb::process($self, $line);
                        return;
@@ -1431,7 +1430,11 @@ sub send_local_config
        
        # get all the users connected on the above nodes and send them out
        foreach $n (@localnodes, @remotenodes) {
-               send_route($self, \&pc16, 1, $n, map {my $r = Route::User::get($_); $r ? ($r) : ()} $n->users);
+               if ($n) {
+                       send_route($self, \&pc16, 1, $n, map {my $r = Route::User::get($_); $r ? ($r) : ()} $n->users);
+               } else {
+                       dbg('chan', "sent a null value");
+               }
        }
 }