1 package Thingy::RouteUser;
3 use vars qw($VERSION $BRANCH %valid);
4 $VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
5 $BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ || (0,0));
6 $main::build += $VERSION;
7 $main::branch += $BRANCH;
10 list => '0,List of Calls,parray',
11 new => '0,List of new Routes,parray',
18 my $dxchan = DXChannel->get($self->{fromdxchan});
19 my $parent = Route::Node::get($self->{fromnode});
22 foreach my $r (@{$self->{list}}) {
26 my $old = Route::User::get($r->call);
28 if ($old->flags != $r->flags) {
29 $old->flags($r->flags);
32 $old->addparent($parent);
35 $parent->add_user($r->call);
36 $r->add_parent($parent);
40 # add this station to the user database, if required
41 $call =~ s/-\d+$//o; # remove ssid for users
42 $user = DXUser->get_current($call) || DXUser->new($call);
43 $user->homenode($parent->call) unless $user->homenode;
44 $user->node($parent->call);
45 } elsif ($sort eq 'N') {
46 my $old = Route::Node::get($call);
49 $ar = $parent->add($call, $ver, $flags);
50 push @rout, $ar if $ar;
55 if ($r->version ne $ver || $r->flags != $flags) {
58 push @rout, $r unless $ar;
61 if ($call eq $self->{call}) {
62 dbg("DXPROT: my channel route for $call has disappeared");
66 my $new = Route->new($call); # throw away
67 if ($dxchan->in_filter_route($new)) {
68 my $r = $parent->add($call, $ver, $flags);
75 # add this station to the user database, if required (don't remove SSID from nodes)
76 my $user = DXUser->get_current($call);
78 $user = DXUser->new($call);
80 $user->priv(1); # I have relented and defaulted nodes
82 $user->homenode($call);
86 $user->lastin($main::systime) unless DXChannel->get($call);
89 $self->{new} = \@rout;