mirror of
git://scm.dxcluster.org/scm/spider
synced 2024-09-21 15:57:12 +00:00
try to make sure that local nodes take precedence over external ones
There seems to be a problem with localnodes sometimes being overridden by data from external PC92 data. Usually (but not always) data for local PC19 nodes being overridden by data from other PC92 with the same node connected. Also put in a frig for the sysop announce problem.
This commit is contained in:
parent
e4a8ea5a40
commit
387b0fecfd
@ -659,7 +659,8 @@ sub send_announce
|
||||
}
|
||||
}
|
||||
|
||||
if (AnnTalk::dup($from, $target, $_[2])) {
|
||||
# the sysop ('*') thing is an attempt to minimise the damage caused by non-updated PC93 generators
|
||||
if (AnnTalk::dup($from, $target, $_[2]) || ($_[3] eq '*' && AnnTalk::dup($from, 'ALL', $_[2]))) {
|
||||
my $dxchan = DXChannel::get($from);
|
||||
if ($self == $main::me && $dxchan && $dxchan->is_user) {
|
||||
if ($dxchan->priv < 5) {
|
||||
|
@ -1560,12 +1560,14 @@ sub handle_92
|
||||
dbg("PCPROT: $call looped back onto $main::mycall, ignored") if isdbg('chanerr');
|
||||
return;
|
||||
}
|
||||
# this is only accepted from my "self".
|
||||
# this also kills configs from PC92 nodes with external PC19 nodes that are also
|
||||
# locally connected. Local nodes always take precedence.
|
||||
if (DXChannel::get($call) && $call ne $self->{call}) {
|
||||
dbg("PCPROT: locally connected node $call from other another node $self->{call}, ignored") if isdbg('chanerr');
|
||||
return;
|
||||
}
|
||||
if ($is_extnode) {
|
||||
# this is only accepted from my "self"
|
||||
if (DXChannel::get($call) && $call ne $self->{call}) {
|
||||
dbg("PCPROT: locally connected node config for $call from other another node $self->{call}, ignored") if isdbg('chanerr');
|
||||
return;
|
||||
}
|
||||
# reparent to external node (note that we must have received a 'C' or 'A' record
|
||||
# from the true parent node for this external before we get one for the this node
|
||||
unless ($parent = Route::Node::get($call)) {
|
||||
|
@ -11,6 +11,6 @@ use vars qw($version $subversion $build);
|
||||
|
||||
$version = '1.54';
|
||||
$subversion = '0';
|
||||
$build = '106';
|
||||
$build = '107';
|
||||
|
||||
1;
|
||||
|
Loading…
Reference in New Issue
Block a user