projects
/
spider.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
remove ::ffff: at source on connect
[spider.git]
/
perl
/
DXProt.pm
diff --git
a/perl/DXProt.pm
b/perl/DXProt.pm
index 92a36d1ee826b192f8c699e247c33755a9e7b16a..fae6dde07acb9e129179fc68d00063da0b9b4e0b 100644
(file)
--- a/
perl/DXProt.pm
+++ b/
perl/DXProt.pm
@@
-246,7
+246,7
@@
sub init
$main::me->{pingave} = 0;
$main::me->{registered} = 1;
$main::me->{version} = $main::version;
$main::me->{pingave} = 0;
$main::me->{registered} = 1;
$main::me->{version} = $main::version;
- $main::me->{build} =
"$main::subversion.$main::build"
;
+ $main::me->{build} =
$main::build
;
$main::me->{do_pc9x} = 1;
$main::me->update_pc92_next($pc92_short_update_period);
$main::me->update_pc92_keepalive;
$main::me->{do_pc9x} = 1;
$main::me->update_pc92_next($pc92_short_update_period);
$main::me->update_pc92_keepalive;
@@
-430,9
+430,9
@@
sub normal
my $sub = "handle_$pcno";
if ($self->can($sub)) {
my $sub = "handle_$pcno";
if ($self->can($sub)) {
- $self->$sub($pcno, $line, $origin, @field);
+ $self->$sub($pcno, $line, $origin,
\
@field);
} else {
} else {
- $self->handle_default($pcno, $line, $origin, @field);
+ $self->handle_default($pcno, $line, $origin,
\
@field);
}
}
}
}
@@
-795,20
+795,15
@@
sub send_chat
# send it if it isn't the except list and isn't isolated and still has a hop count
# taking into account filtering and so on
foreach $dxchan (@dxchan) {
# send it if it isn't the except list and isn't isolated and still has a hop count
# taking into account filtering and so on
foreach $dxchan (@dxchan) {
- my $is_ak1a = $dxchan->is_ak1a;
-
if ($dxchan->is_node) {
next if $dxchan == $main::me;
next if $dxchan == $self;
if ($dxchan->is_node) {
next if $dxchan == $main::me;
next if $dxchan == $self;
- next if $from_pc9x && $dxchan->
{do_pc9x}
;
- next unless $dxchan->is_spider
|| $is_ak1a
;
+ next if $from_pc9x && $dxchan->
do_pc9x
;
+ next unless $dxchan->is_spider
&& $dxchan->do_pc9x
;
next if $target eq 'LOCAL';
next if $target eq 'LOCAL';
- if (!$ak1a_line && $is_ak1a) {
- $ak1a_line = pc12($_[0], $text, $_[1], "$target.LST");
- }
}
}
- $dxchan->chat($
is_ak1a ? $ak1a_line : $
line, $self->{isolate}, $target, $_[1],
+ $dxchan->chat($line, $self->{isolate}, $target, $_[1],
$text, @_, $self->{call}, @a[0..2], @b[0..2]);
}
}
$text, @_, $self->{call}, @a[0..2], @b[0..2]);
}
}
@@
-960,7
+955,8
@@
sub broadcast_pc92_update
my $nref = Route::Node::get($call);
unless ($nref) {
my $nref = Route::Node::get($call);
unless ($nref) {
- dbg("ERROR: broadcast_pc92_update - Route::Node $call disappeared");
+ cluck("ERROR: broadcast_pc92_update - Route::Node $call disappeared");
+ $self->update_pc92_next;
return;
}
my $l = $nref->last_PC92C(gen_my_pc92_config($nref));
return;
}
my $l = $nref->last_PC92C(gen_my_pc92_config($nref));
@@
-978,7
+974,8
@@
sub broadcast_pc92_keepalive
my $nref = Route::Node::get($call);
unless ($nref) {
my $nref = Route::Node::get($call);
unless ($nref) {
- dbg("ERROR: broadcast_pc92_keepalive - Route::Node $call disappeared");
+ cluck("ERROR: broadcast_pc92_keepalive - Route::Node $call disappeared");
+ $self->update_pc92_keepalive;
return;
}
my $l = pc92k($nref);
return;
}
my $l = pc92k($nref);
@@
-1116,9
+1113,19
@@
sub process_rcmd
my ($self, $tonode, $fromnode, $user, $cmd) = @_;
if ($tonode eq $main::mycall) {
my $ref = DXUser::get_current($fromnode);
my ($self, $tonode, $fromnode, $user, $cmd) = @_;
if ($tonode eq $main::mycall) {
my $ref = DXUser::get_current($fromnode);
+ unless ($ref && UNIVERSAL::isa($ref, 'DXUser')) {
+ dbg("DXProt process_rcmd: user $fromnode isn't a reference (check user_asc and tell G1TLH)");
+ $self->send_rcmd_reply($main::mycall, $fromnode, $user, "sorry...!");
+ return;
+ }
my $cref = Route::Node::get($fromnode);
my $cref = Route::Node::get($fromnode);
+ unless ($cref && UNIVERSAL::isa($cref, 'Route')) {
+ dbg("DXProt process_rcmd: Route $fromnode isn't a reference (tell G1TLH)");
+ $self->send_rcmd_reply($main::mycall, $fromnode, $user, "sorry...!");
+ return;
+ }
Log('rcmd', 'in', ($ref->{priv}||0), $fromnode, $cmd);
Log('rcmd', 'in', ($ref->{priv}||0), $fromnode, $cmd);
- if ($cmd !~ /^\s*rcmd/i && $
cref && $ref && $
ref->homenode && $cref->call eq $ref->homenode) { # not allowed to relay RCMDS!
+ if ($cmd !~ /^\s*rcmd/i && $ref->homenode && $cref->call eq $ref->homenode) { # not allowed to relay RCMDS!
if ($ref->{priv}) { # you have to have SOME privilege, the commands have further filtering
$self->{remotecmd} = 1; # for the benefit of any command that needs to know
my $oldpriv = $self->{priv};
if ($ref->{priv}) { # you have to have SOME privilege, the commands have further filtering
$self->{remotecmd} = 1; # for the benefit of any command that needs to know
my $oldpriv = $self->{priv};