X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=152a5fe05bdb84510ae764028d57ce59106d0524;hb=743d0338dd4ebf095be93b441425b283a20406dc;hp=0f41db4670747c897e42a5fd9c47eccdad1c8581;hpb=2b1effd2030d9b989e86928b3b7a2eb7e4d8def0;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 0f41db46..152a5fe0 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -789,6 +789,7 @@ sub normal $ref->here($field[2]) if $ref; $ref = Route::User::get($call); $ref->here($field[2]) if $ref; + $ref ||= Route->new($call); # input filter if required return unless $self->in_filter_route($ref); @@ -931,7 +932,7 @@ sub normal } $user->lastoper($main::systime); # to cut down on excessive for/opers being generated $user->put; - my $ref = Route::get($call); + my $ref = Route::get($call) || Route->new($call); # input filter if required return unless $self->in_filter_route($ref); @@ -1448,7 +1449,7 @@ sub send_local_config # and are not themselves isolated, this to make sure that isolated nodes # don't appear outside of this node my @dxchan = grep { $_->call ne $main::mycall && $_->call ne $self->{call} } DXChannel::get_all_nodes(); - @localnodes = map { Route::Node::get($_->{call}) or die "connot find node $_->{call}" } @dxchan if @dxchan; + @localnodes = map { my $r = Route::Node::get($_->{call}); $r ? $r : () } @dxchan if @dxchan; my @intcalls = map { $_->nodes } @localnodes if @localnodes; my $ref = Route::Node::get($self->{call}); my @rnodes = $ref->nodes; @@ -1487,7 +1488,7 @@ sub route # always send it down the local interface if available my $dxchan = DXChannel->get($call); unless ($dxchan) { - my $cl = Route::Node::get($call); + my $cl = Route::get($call); $dxchan = $cl->dxchan if $cl; if (ref $dxchan) { if (ref $self && $dxchan eq $self) {