X-Git-Url: http://gb7djk.dxcluster.net/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=d7e34e61e7c927dd23840b50a75dfe8cd0676718;hb=10bcae7d964cf5a4b9f7a439c29afff218a35903;hp=8b9026c1f700e71945feda5329efcf9b2b431f95;hpb=f2c90f82509ae2be33216ebaed3bc9f8ea3f5f80;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 8b9026c1..d7e34e61 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -1118,6 +1118,7 @@ sub load_hops 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')) { @@ -1125,13 +1126,13 @@ sub process_rcmd $self->send_rcmd_reply($main::mycall, $fromnode, $user, "sorry...!"); return; } + Log('rcmd', 'in', ($ref->{priv}||0), $fromnode, $cmd, $user); 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 && $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 @@ -1173,7 +1174,7 @@ sub send_rcmd_reply while (@_) { my $line = shift; $line =~ s/\s*$//; - Log('rcmd', 'out', $fromnode, $line); + Log('rcmd', 'out', $fromnode, $line, $user); if ($self->is_clx) { $self->send(pc85($main::mycall, $fromnode, $user, "$main::mycall:$line")); } else { @@ -1230,6 +1231,7 @@ sub spawn_cmd } my @res = $cmdref->(@$args); +# diffms("by $call 1", $line, $t0, scalar @res) if isdbg('chan'); return @res; }, # $args, @@ -1259,7 +1261,7 @@ sub spawn_cmd $self->send(@res); } } - DXCommandmode::_diffms($call, $line, $t0); + diffms("rcmd from $user on $call", $line, $t0, scalar @res) if isdbg('chan'); }); return @out;