package Thingy::Rt;
use vars qw($VERSION $BRANCH);
-$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
-$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /^\d+\.\d+(?:\.(\d+)\.(\d+))?$/ || (0,0));
-$main::build += $VERSION;
-$main::branch += $BRANCH;
+
+main::mkver($VERSION = q$Revision$);
use DXChannel;
use DXDebug;
my $dxchan = shift;
if (my $d = $thing->{d}) {
+ my $nref;
for (split /:/, $d) {
my ($type, $here, $call) = unpack "A1 A1 A*", $_;
- my $nref;
if ($type eq 'U') {
unless ($nref) {
dbg("Thingy::Rt::ea need a node before $call");
dbg("Thingy::Rt::ea invalid type $type");
return;
}
- unless ($nref) {
- dbg("Thingy::Rt::ea no node");
- return;
- }
}
}
return $thing;
my $dxchan = shift;
if (my $d = $thing->{d}) {
+ my $nref;
for (split /:/, $d) {
my ($type, $here, $call) = unpack "A1 A1 A*", $_;
- my $nref;
if ($type eq 'U') {
unless ($nref) {
- dbg("Thingy::Rt::ed need a node before $call");
+ dbg("Thingy::Rt::edu need a node before $call");
return;
}
+ my $uref = Route::User::get($call);
+ unless ($uref) {
+ dbg("Thingy::Rt::edu $call not a user") if isdbg('chanerr');
+ next;
+ }
$nref->del_user($call);
RouteDB::delete($call, $dxchan->{call});
} elsif ($type eq 'N') {
dbg("Thingy::Rt::ed invalid type $type");
return;
}
- unless ($nref) {
- dbg("Thingy::Rt::ed no node");
- return;
- }
}
}
return $thing;
$user->homenode($parentcall) if !$user->homenode;
$user->node($parentcall);
$user->lastin($main::systime) unless DXChannel->get($call);
+ return $user;
}
1;