change do_pc92 to do_pc9x
[spider.git] / perl / Route / Node.pm
index 514f0c0e5f9157ea10dd76da7ed6e0db896e0cd0..d27efbf8a1d62e52ded6081669ea05d035dced01 100644 (file)
@@ -30,7 +30,7 @@ use vars qw(%list %valid @ISA $max $filterdef $obscount);
                  handle_xml => '0,Using XML,yesno',
                  lastmsg => '0,Last Route Msg,atime',
                  lastid => '0,Last Route MsgID',
-                 do_pc92 => '0,Uses pc92,yesno',
+                 do_pc9x => '0,Uses pc9x,yesno',
                  via_pc92 => '0,Came in via pc92,yesno',
                  obscount => '0,Obscount',
 );
@@ -113,6 +113,21 @@ sub del
        return @nodes;
 }
 
+# this deletes this node completely by grabbing the parents
+# and deleting me from them
+sub delete
+{
+       my $self = shift;
+       my @out;
+       
+       $self->_del_users;
+       foreach my $call (@{$self->{parent}}) {
+               my $parent = Route::Node::get($call);
+               push @out, $parent->del($self) if $parent;
+       }
+       return @out;
+}
+
 sub del_nodes
 {
        my $parent = shift;
@@ -224,11 +239,25 @@ sub calc_config_changes
        my %users = map {$_ => 1} @{$self->{users}};
        my $cnodes = shift;
        my $cusers = shift;
+       if (isdbg('route')) {
+               dbg("ROUTE: start calc_config_changes");
+               dbg("ROUTE: incoming nodes on $self->{call}: " . join(',', sort @$cnodes));
+               dbg("ROUTE: incoming users on $self->{call}: " . join(',', sort @$cusers));
+               dbg("ROUTE: existing nodes on $self->{call}: " . join(',', sort keys %nodes));
+               dbg("ROUTE: existing users on $self->{call}: " . join(',', sort keys %users));
+       }
        my (@dnodes, @dusers, @nnodes, @nusers);
        push @nnodes, map {my @r = $nodes{$_} ? () : $_; delete $nodes{$_}; @r} @$cnodes;
        push @dnodes, keys %nodes;
        push @nusers, map {my @r = $users{$_} ? () : $_; delete $users{$_}; @r} @$cusers;
        push @dusers, keys %users;
+       if (isdbg('route')) {
+               dbg("ROUTE: deleted nodes on $self->{call}: " . join(',', sort @dnodes));
+               dbg("ROUTE: deleted users on $self->{call}: " . join(',', sort @dusers));
+               dbg("ROUTE: added nodes on $self->{call}: " . join(',', sort  @nnodes));
+               dbg("ROUTE: added users on $self->{call}: " . join(',', sort @nusers));
+               dbg("ROUTE: end calc_config_changes");
+       }
        return (\@dnodes, \@dusers, \@nnodes, \@nusers);
 }
 
@@ -309,6 +338,7 @@ sub dec_obs
 {
        my $self = shift;
        $self->{obscount}--;
+       return $self->{obscount};
 }
 
 sub reset_obs