X-Git-Url: http://dxcluster.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=perl%2FDXProt.pm;h=4d79ecf58110370494b0203523773dcb248b3013;hb=8ef2568bd4b967370f6335bf2e564c3253708d43;hp=8b415974ed55cef98fd1062cc448576b8ca02a5e;hpb=eef5dcbb47966521543e82dbb0b9269ec245d3d8;p=spider.git diff --git a/perl/DXProt.pm b/perl/DXProt.pm index 8b415974..4d79ecf5 100644 --- a/perl/DXProt.pm +++ b/perl/DXProt.pm @@ -420,6 +420,12 @@ sub normal } } + if (defined &Local::pcprot) { + my $r; + eval { $r = Local::pcprot($self, $pcno, $line, @field); }; + return if $r; # i.e don't process it + } + # send it out for processing my $origin = $self->{call}; no strict 'subs'; @@ -1118,8 +1124,8 @@ sub process_rcmd if ($tonode eq $main::mycall) { my $ref = DXUser->get_current($fromnode); my $cref = Route::Node::get($fromnode); - Log('rcmd', 'in', $ref->{priv}, $fromnode, $cmd); - if ($cmd !~ /^\s*rcmd/i && $cref && $ref && $cref->call eq $ref->homenode) { # not allowed to relay RCMDS! + 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 ($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};