X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FRoute%2FNode.pm;h=bd69d3d77290947af5089a73484ebc339cddbfe1;hb=9311d6940faf0e9952d6d65d9ead572b06a52434;hp=d46733bbcdf295e05aafd649e34262e688fd904a;hpb=320d95463f2d936e627e485702949c9cee704d0b;p=spider.git diff --git a/perl/Route/Node.pm b/perl/Route/Node.pm index d46733bb..bd69d3d7 100644 --- a/perl/Route/Node.pm +++ b/perl/Route/Node.pm @@ -58,7 +58,7 @@ sub max # object with that callsign. The upper layers are expected to do something # sensible with this! # -# called as $parent->add(call, dxchan, version, flags) +# called as $parent->add(call, version, flags) # sub add @@ -66,13 +66,21 @@ sub add my $parent = shift; my $call = uc shift; confess "Route::add trying to add $call to myself" if $call eq $parent->{call}; + my $version = shift; + my $here = shift; + my $self = get($call); if ($self) { $self->_addparent($parent); $parent->_addnode($self); + if ($self->{version} != $version || $self->{flags} != $here) { + $self->{version} = $version; + $self->{flags} = $here; + return $self; + } return undef; } - $self = $parent->new($call, @_); + $self = $parent->new($call, $version, $here); $parent->_addnode($self); return $self; }