X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FThingy%2FRt.pm;h=685ef0c4d5ef7acaf45e47fa7fc03c2ff3423c43;hb=4a537d5ee952ce14ac88ebe07e4f015155b576ee;hp=8ba7ee00aac373c70ed8d0f2a0df8499bc3f78d0;hpb=f1a23d34defb328c00234aa2b26be931036e4521;p=spider.git diff --git a/perl/Thingy/Rt.pm b/perl/Thingy/Rt.pm index 8ba7ee00..685ef0c4 100644 --- a/perl/Thingy/Rt.pm +++ b/perl/Thingy/Rt.pm @@ -84,21 +84,24 @@ sub handle_cf my $origin = $thing->{origin}; my $chan_call = $dxchan->{call}; + my @pc19; + my @pc21; + my $parent = Route::Node::get($origin); unless ($parent) { - dbg("Thingy::Rt::cf: received from $origin on $chan_call unknown") if isdbg('chanerr'); - return; + dbg("Thingy::Rt::cf: new (unconnected) node $origin arrived") if isdbg('chanerr'); + $parent = Route::Node::new($origin, 0, 1); + push @pc19, $parent; } $parent->np(1); - my @pc19; - my @pc21; - # move the origin over to the user, if required if ($thing->{user}) { $origin = $thing->{user}; my $ref = Route::Node::get($origin); - unless ($ref) { + if ($ref) { + $parent = $ref; + } else { # auto vivify a node that has come that we don't know about push @pc19, $parent->add($origin, 0, 1); $parent = Route::Node::get($origin); # reparent to me now.