projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
harden hop count decrementing.
[spider.git]
/
perl
/
DXProt.pm
diff --git
a/perl/DXProt.pm
b/perl/DXProt.pm
index a6abadc83ab1384936093c0954f11fce13a19f9d..18ecf1297956402ff15ee177a5d8fe08001178f9 100644
(file)
--- a/
perl/DXProt.pm
+++ b/
perl/DXProt.pm
@@
-38,12
+38,6
@@
use RouteDB;
use strict;
use strict;
-use vars qw($VERSION $BRANCH);
-$VERSION = sprintf( "%d.%03d", q$Revision$ =~ /(\d+)\.(\d+)/ );
-$BRANCH = sprintf( "%d.%03d", q$Revision$ =~ /\d+\.\d+\.(\d+)\.(\d+)/ || (0,0));
-$main::build += $VERSION;
-$main::branch += $BRANCH;
-
use vars qw($pc11_max_age $pc23_max_age $last_pc50 $eph_restime $eph_info_restime $eph_pc34_restime
$last_hour $last10 %eph %pings %rcmds $ann_to_talk
$pingint $obscount %pc19list $chatdupeage $chatimportfn
use vars qw($pc11_max_age $pc23_max_age $last_pc50 $eph_restime $eph_info_restime $eph_pc34_restime
$last_hour $last10 %eph %pings %rcmds $ann_to_talk
$pingint $obscount %pc19list $chatdupeage $chatimportfn
@@
-929,25
+923,23
@@
sub handle_17
my $uref = Route::User::get($ucall);
unless ($uref) {
dbg("PCPROT: Route::User $ucall not in config") if isdbg('chanerr');
my $uref = Route::User::get($ucall);
unless ($uref) {
dbg("PCPROT: Route::User $ucall not in config") if isdbg('chanerr');
+ return;
}
my $parent = Route::Node::get($ncall);
unless ($parent) {
dbg("PCPROT: Route::Node $ncall not in config") if isdbg('chanerr');
}
my $parent = Route::Node::get($ncall);
unless ($parent) {
dbg("PCPROT: Route::Node $ncall not in config") if isdbg('chanerr');
+ return;
}
}
- $dxchan =
$parent->dxchan if $parent
;
+ $dxchan =
DXChannel::get($ncall)
;
if ($dxchan && $dxchan ne $self) {
dbg("PCPROT: PC17 from $self->{call} trying to alter locally connected $ncall, ignored!") if isdbg('chanerr');
return;
}
# input filter if required and then remove user if present
if ($dxchan && $dxchan ne $self) {
dbg("PCPROT: PC17 from $self->{call} trying to alter locally connected $ncall, ignored!") if isdbg('chanerr');
return;
}
# input filter if required and then remove user if present
- if ($parent) {
# return unless $self->in_filter_route($parent);
# return unless $self->in_filter_route($parent);
- $parent->del_user($uref) if $uref;
- } else {
- $parent = Route->new($ncall); # throw away
- }
+ $parent->del_user($uref);
# send info to all logged in thingies
$self->tell_login('logoutu', "$ncall: $ucall") if DXUser->get_current($ncall)->is_local_node;
# send info to all logged in thingies
$self->tell_login('logoutu', "$ncall: $ucall") if DXUser->get_current($ncall)->is_local_node;
@@
-958,7
+950,6
@@
sub handle_17
return;
}
return;
}
- $uref = Route->new($ucall) unless $uref; # throw away
$self->route_pc17($origin, $line, $parent, $uref);
}
$self->route_pc17($origin, $line, $parent, $uref);
}
@@
-972,7
+963,7
@@
sub handle_18
$self->state('init');
# record the type and version offered
$self->state('init');
# record the type and version offered
- if ($_[1] =~ /DXSpider Version: (\d+\.\d+) Build: (\d+
\.\d+
)/) {
+ if ($_[1] =~ /DXSpider Version: (\d+\.\d+) Build: (\d+
(?:\.\d+)?
)/) {
$self->version(53 + $1);
$self->user->version(53 + $1);
$self->build(0 + $2);
$self->version(53 + $1);
$self->user->version(53 + $1);
$self->build(0 + $2);
@@
-1490,6
+1481,10
@@
sub handle_41
$user = DXUser->new($call) unless $user;
if ($_[2] == 1) {
$user = DXUser->new($call) unless $user;
if ($_[2] == 1) {
+ if (($_[3] =~ /spotter/i || $_[3] =~ /self/i) && $user->name && $user->name ne $_[3]) {
+ dbg("PCPROT: invalid name") if isdbg('chanerr');
+ return;
+ }
$user->name($_[3]);
} elsif ($_[2] == 2) {
$user->qth($_[3]);
$user->name($_[3]);
} elsif ($_[2] == 2) {
$user->qth($_[3]);
@@
-2169,13
+2164,14
@@
sub adjust_hops
return "" if defined $newhops && $newhops == 0;
$newhops = $ref->{default} unless $newhops;
return "" if defined $newhops && $newhops == 0;
return "" if defined $newhops && $newhops == 0;
$newhops = $ref->{default} unless $newhops;
return "" if defined $newhops && $newhops == 0;
- $newhops = $hops if !$newhops;
+ $newhops = $hops unless $newhops;
+ return "" unless $newhops > 0;
$s =~ s/\^H(\d+)(\^~?)$/\^H$newhops$2/ if $newhops;
} else {
# simply decrement it
$hops--;
$s =~ s/\^H(\d+)(\^~?)$/\^H$newhops$2/ if $newhops;
} else {
# simply decrement it
$hops--;
- return ""
if !$hops
;
- $s =~ s/\^H(\d+)(\^~?)$/\^H$hops$2/
if $hops
;
+ return ""
unless $hops > 0
;
+ $s =~ s/\^H(\d+)(\^~?)$/\^H$hops$2/;
}
}
return $s;
}
}
return $s;