X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=7ef99411fd7d099d1de5e8838e867d02a2f6b5dd;hb=80a2dd317e5d6b24250388b5177cbf85abee5a85;hp=45e9b30f8ea3121b51a99f0ee48fe92c401aab16;hpb=f75747ffe264a0d71fa8b1fde2bc2abe88cb9a1b;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 45e9b30f..7ef99411 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -475,8 +475,9 @@ sub normal if ($pcno == 34 || $pcno == 36) { # remote commands (incoming) if ($field[1] eq $main::mycall) { my $ref = DXUser->get_current($field[2]); + my $cref = DXCluster->get($field[2]); Log('rcmd', 'in', $ref->{priv}, $field[2], $field[3]); - unless ($field[3] =~ /rcmd/i) { # not allowed to relay RCMDS! + unless ($field[3] =~ /rcmd/i || !$cref || !$ref || $cref->mynode->call ne $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 @in = (DXCommandmode::run_cmd($self, $field[3])); @@ -486,9 +487,11 @@ sub normal Log('rcmd', 'out', $field[2], $_); } delete $self->{remotecmd}; + } else { + $self->send(pc35($main::mycall, $field[2], "$main::mycall:sorry...!")); } } else { - $self->send(pc35($main::mycall, $field[2], "$main::mycall:Tut tut tut...!")); + $self->send(pc35($main::mycall, $field[2], "$main::mycall:your attempt is logged, Tut tut tut...!")); } } else { route($field[1], $line); @@ -713,7 +716,7 @@ sub send_dx_spot } elsif ($dxchan->is_user) { my $buf = Spot::formatb($_[0], $_[1], $_[2], $_[3], $_[4]); $buf .= "\a\a" if $dxchan->beep; - $dxchan->send($buf); + $dxchan->send($buf) if !$hops || ($hops && $filter); } } }