projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
changed the command mode subs thing to use anonymous subs
[spider.git]
/
perl
/
DXProt.pm
diff --git
a/perl/DXProt.pm
b/perl/DXProt.pm
index 741e4b3342ec9415d9d5e08d1c9d4f0f5f8cf78e..32d5e3b381933292e90cd502f7dc569773e86c59 100644
(file)
--- a/
perl/DXProt.pm
+++ b/
perl/DXProt.pm
@@
-197,7
+197,10
@@
sub normal
}
# if this is a 'nodx' node then ignore it
}
# if this is a 'nodx' node then ignore it
- last SWITCH if grep $field[7] =~ /^$_/, @DXProt::nodx_node;
+ if (grep $field[7] =~ /^$_/, @DXProt::nodx_node) {
+ dbg('chan', "Bad DXNode, dropped");
+ return;
+ }
# convert the date to a unix date
my $d = cltounix($field[3], $field[4]);
# convert the date to a unix date
my $d = cltounix($field[3], $field[4]);
@@
-310,20
+313,24
@@
sub normal
if ($pcno == 16) { # add a user
my $node = DXCluster->get_exact($field[1]);
if ($pcno == 16) { # add a user
my $node = DXCluster->get_exact($field[1]);
+ my $dxchan;
+ if (!$node && ($dxchan = DXChannel->get($field[1]))) {
+ # add it to the node table if it isn't present and it's
+ # connected locally
+ $node = DXNode->new($dxchan, $field[1], 0, 1, 5400);
+ }
return unless $node; # ignore if havn't seen a PC19 for this one yet
return unless $node->isa('DXNode');
if ($node->dxchan != $self) {
dbg('chan', "LOOP: $field[1] came in on wrong channel");
return;
}
return unless $node; # ignore if havn't seen a PC19 for this one yet
return unless $node->isa('DXNode');
if ($node->dxchan != $self) {
dbg('chan', "LOOP: $field[1] came in on wrong channel");
return;
}
- my $dxchan;
if (($dxchan = DXChannel->get($field[1])) && $dxchan != $self) {
dbg('chan', "LOOP: $field[1] connected locally");
return;
}
my $i;
if (($dxchan = DXChannel->get($field[1])) && $dxchan != $self) {
dbg('chan', "LOOP: $field[1] connected locally");
return;
}
my $i;
-
-
+
for ($i = 2; $i < $#field; $i++) {
my ($call, $confmode, $here) = $field[$i] =~ /^(\S+) (\S) (\d)/o;
next if !$call || length $call < 3 || length $call > 8;
for ($i = 2; $i < $#field; $i++) {
my ($call, $confmode, $here) = $field[$i] =~ /^(\S+) (\S) (\d)/o;
next if !$call || length $call < 3 || length $call > 8;
@@
-911,7
+918,7
@@
sub send_announce
($filter, $hops) = Filter::it($dxchan->{annfilter}, @_, $self->{call} );
next unless $filter;
}
($filter, $hops) = Filter::it($dxchan->{annfilter}, @_, $self->{call} );
next unless $filter;
}
- if ($dxchan->is_ak1a && $
field
[1] ne $main::mycall) { # i.e not specifically routed to me
+ if ($dxchan->is_ak1a && $
_
[1] ne $main::mycall) { # i.e not specifically routed to me
next if $dxchan == $self;
if ($hops) {
$routeit = $line;
next if $dxchan == $self;
if ($hops) {
$routeit = $line;