projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
use correcr call for buddies on logout
[spider.git]
/
perl
/
DXProt.pm
diff --git
a/perl/DXProt.pm
b/perl/DXProt.pm
index af1f34f7124a32f29a6729fb97724177d3089f0e..76b9d25d4dee47029d20211d82f1664adca88e94 100644
(file)
--- a/
perl/DXProt.pm
+++ b/
perl/DXProt.pm
@@
-479,11
+479,16
@@
sub handle_11
# return if $rspfcheck and !$self->rspfcheck(1, $_[7], $_[6]);
# is the spotted callsign blank? This should really be trapped earlier but it
# return if $rspfcheck and !$self->rspfcheck(1, $_[7], $_[6]);
# is the spotted callsign blank? This should really be trapped earlier but it
- # could break other protocol sentences.
+ # could break other protocol sentences.
Also check for lower case characters.
if ($_[2] =~ /^\s*$/) {
dbg("PCPROT: blank callsign, dropped") if isdbg('chanerr');
return;
}
if ($_[2] =~ /^\s*$/) {
dbg("PCPROT: blank callsign, dropped") if isdbg('chanerr');
return;
}
+ if ($_[2] =~ /[a-z]/) {
+ dbg("PCPROT: lowercase characters, dropped") if isdbg('chanerr');
+ return;
+ }
+
# if this is a 'nodx' node then ignore it
if ($badnode->in($_[7])) {
# if this is a 'nodx' node then ignore it
if ($badnode->in($_[7])) {
@@
-840,9
+845,12
@@
sub handle_16
push @rout, $parent->add_user($call, $flags);
}
push @rout, $parent->add_user($call, $flags);
}
+ # send info to all logged in thingies
+ $self->tell_login('loginu', $call) if DXUser->get_current($ncall)->is_local_node;
+ $self->tell_buddies('loginb', $call);
# add this station to the user database, if required
# add this station to the user database, if required
-
$call =~ s/-\d+$//o; # remove ssid for users
+
#
$call =~ s/-\d+$//o; # remove ssid for users
my $user = DXUser->get_current($call);
$user = DXUser->new($call) if !$user;
$user->homenode($parent->call) if !$user->homenode;
my $user = DXUser->get_current($call);
$user = DXUser->new($call) if !$user;
$user->homenode($parent->call) if !$user->homenode;
@@
-911,6
+919,10
@@
sub handle_17
$parent = Route->new($ncall); # throw away
}
$parent = Route->new($ncall); # throw away
}
+ # send info to all logged in thingies
+ $self->tell_login('logoutu', $ucall) if DXUser->get_current($ncall)->is_local_node;
+ $self->tell_buddies('logoutb', $ucall);
+
if (eph_dup($line)) {
dbg("PCPROT: dup PC17 detected") if isdbg('chanerr');
return;
if (eph_dup($line)) {
dbg("PCPROT: dup PC17 detected") if isdbg('chanerr');
return;
@@
-1009,6
+1021,7
@@
sub handle_19
# check for sane parameters
# $ver = 5000 if $ver eq '0000';
# check for sane parameters
# $ver = 5000 if $ver eq '0000';
+ next unless $ver && $ver =~ /^\d+$/;
next if $ver < 5000; # only works with version 5 software
next if length $call < 3; # min 3 letter callsigns
next if $call eq $main::mycall;
next if $ver < 5000; # only works with version 5 software
next if length $call < 3; # min 3 letter callsigns
next if $call eq $main::mycall;