X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=fc08f5423649450372262ac068a072d5d2bebdf9;hb=5c96125fa684151fbae1daa2c76ca5522d0a09c0;hp=394f7cf1e8b2d061334e57cf86fecb79a6b923dc;hpb=b32570d9978c9e99a8652e52491cf92540bf876b;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 394f7cf1..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"); + } } } @@ -1720,8 +1723,12 @@ sub send_route if ($self->{routefilter}) { for (; @_ && $no; $no--) { my $r = shift; - ($filter, $hops) = $self->{routefilter}->it($self->{call}, $self->{dxcc}, $self->{itu}, $self->{cq}, $r->call, $r->dxcc, $r->itu, $r->cq); - push @rin, $r if $filter; + if ($r) { + ($filter, $hops) = $self->{routefilter}->it($self->{call}, $self->{dxcc}, $self->{itu}, $self->{cq}, $r->call, $r->dxcc, $r->itu, $r->cq); + push @rin, $r if $filter; + } else { + dbg('chan', "was sent a null value"); + } } } if (@rin) {