X-Git-Url: http://dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=59deac9d13ead66155e7957b011bcbcfa246b733;hb=f67292b60a4b1567c0c370818fa2a7f0bc308fbc;hp=92a36d1ee826b192f8c699e247c33755a9e7b16a;hpb=cd5b993f99b52d3c3c51779e9ea1fa150232225e;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 92a36d1e..59deac9d 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -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) { - my $is_ak1a = $dxchan->is_ak1a; - 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'; - 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]); } } @@ -1116,9 +1111,19 @@ sub process_rcmd 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); + 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); - 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};