X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=perl%2FDXProt.pm;h=fc08f5423649450372262ac068a072d5d2bebdf9;hb=5d4486dbbd2c0d758629b28a1a6e3b2f16c4bfb5;hp=875d2b6694314691dd9b219ae03401227870bfdd;hpb=1051376242b71ce69f92a1e92b62240167af9ccd;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 875d2b66..fc08f542 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -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"); + } } }