X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FThingy%2FRt.pm;h=13756c2265bd48b2bb84d5c8f7aeda2e9a1b609d;hb=377d1ce5071669cd2d5797f5604fd5e3034bfc51;hp=8ba7ee00aac373c70ed8d0f2a0df8499bc3f78d0;hpb=f1a23d34defb328c00234aa2b26be931036e4521;p=spider.git diff --git a/perl/Thingy/Rt.pm b/perl/Thingy/Rt.pm index 8ba7ee00..13756c22 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. @@ -188,7 +191,7 @@ sub _add_user my $flag = shift; my @out = $node->add_user($user, $flag); - my $ur = _upd_user_rec($user, $node); + my $ur = _upd_user_rec($user, $node->{call}); $ur->put; return @out; }