+ $nref = Route::Node::get($origin);
+ $nref->np(1);
+ } else {
+
+ # for otherwise connected calls, that come in relayed from other nodes
+ # note that we cannot do any connections at this point
+ $nref = Route::Node::get($origin);
+ unless ($nref) {
+ my $v = $thing->{user} ? undef : $thing->{v};
+ $nref = Route::Node->new($origin, $v, 1);
+ push @{$thing->{pc19n}}, $nref;
+ $nref->np(1);
+ }
+ }
+
+ # handle "User"
+ if (my $user = $thing->{user}) {
+ my $ur = Route::get($user);
+ unless ($ur) {
+ my @ref;
+ my $uref = DXUser->get_current($user) || Thingy::Rt::_upd_user_rec($user, $origin)->put;
+ if ($uref->is_node || $uref->is_aranea) {
+ push @ref, $nref->add($user, $thing->{v} || 0, $thing->{h} || 0);
+ push @{$thing->{pc19n}}, @ref if @ref;
+ do $_->np(1) for @ref;
+ } else {
+ $thing->{pc16n} = $nref;
+ push @ref, $nref->add_user($user, $thing->{h} || 0);
+ $thing->{pc16u} = \@ref if @ref;
+ }
+ }
+ } else {
+ $nref->version($thing->{v}) unless $nref->version;
+ $nref->build($thing->{b}) unless $nref->build;
+ $nref->sw($thing->{sw}) unless $nref->sw;
+ $nref->here($thing->{h}) if exists $thing->{h};