projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
fix problem with users on multiple nodes not being propagated
[spider.git]
/
perl
/
DXProt.pm
diff --git
a/perl/DXProt.pm
b/perl/DXProt.pm
index 118743e1f23ff03e5da83279c3c90ba8086b90ef..9c04497680673939c3fc8ca9ac6c3e520e932ed8 100644
(file)
--- a/
perl/DXProt.pm
+++ b/
perl/DXProt.pm
@@
-647,8
+647,6
@@
sub normal
unless ($parent) {
my $nl = $pc19list{$ncall};
unless ($parent) {
my $nl = $pc19list{$ncall};
- delete $pc19list{$ncall} if $nl; # whatever happens - it goes
-
if ($nl && @field > 3) { # 3 because of the hop count!
# this is a new (remembered) node, now attach it to me if it isn't in filtered
if ($nl && @field > 3) { # 3 because of the hop count!
# this is a new (remembered) node, now attach it to me if it isn't in filtered
@@
-690,6
+688,7
@@
sub normal
} else {
return;
}
} else {
return;
}
+ delete $pc19list{$ncall};
}
} else {
dbg("PCPROT: Node $ncall not in config") if isdbg('chanerr');
}
} else {
dbg("PCPROT: Node $ncall not in config") if isdbg('chanerr');
@@
-730,11
+729,13
@@
sub normal
my $flags = Route::here($here)|Route::conf($conf);
if ($r) {
my $flags = Route::here($here)|Route::conf($conf);
if ($r) {
+ my @add;
+ push @add, $r->addparent($parent);
if ($r->flags != $flags) {
$r->flags($flags);
if ($r->flags != $flags) {
$r->flags($flags);
- push @
rout, $r
;
+ push @
add, $r unless @add
;
}
}
-
$r->addparent($parent)
;
+
push @rout, @add
;
} else {
push @rout, $parent->add_user($call, $flags);
}
} else {
push @rout, $parent->add_user($call, $flags);
}
@@
-912,6
+913,7
@@
sub normal
my $new = Route->new($call); # throw away
if ($self->in_filter_route($new)) {
my $ar = $parent->add($call, $ver, $flags);
my $new = Route->new($call); # throw away
if ($self->in_filter_route($new)) {
my $ar = $parent->add($call, $ver, $flags);
+ $user->wantroutepc19(1) unless defined $user->wantroutepc19;
push @rout, $ar if $ar;
} else {
next;
push @rout, $ar if $ar;
} else {
next;
@@
-1893,8
+1895,8
@@
sub disconnect
$self->send_now("D", DXProt::pc39($main::mycall, $self->msg('disc1', "System Op")));
}
$self->send_now("D", DXProt::pc39($main::mycall, $self->msg('disc1', "System Op")));
}
- # get rid of any PC16/17/19
/21s
- eph_del_regex("^PC
(?:1[679]|21).
*$call");
+ # get rid of any PC16/17/19
+ eph_del_regex("^PC
1[679]
*$call");
# do routing stuff, remove me from routing table
my $node = Route::Node::get($call);
# do routing stuff, remove me from routing table
my $node = Route::Node::get($call);
@@
-1905,7
+1907,7
@@
sub disconnect
# and all my ephemera as well
for (@rout) {
my $c = $_->call;
# and all my ephemera as well
for (@rout) {
my $c = $_->call;
- eph_del_regex("^PC
(?:1[679]|21)
.*$c");
+ eph_del_regex("^PC
1[679]
.*$c");
}
}
}
}
@@
-1919,7
+1921,7
@@
sub disconnect
}
# and the ephemera
}
# and the ephemera
- eph_del_regex("^PC
(?:1[679]|21)
.*$k");
+ eph_del_regex("^PC
1[679]
.*$k");
}
# unbusy and stop and outgoing mail
}
# unbusy and stop and outgoing mail