sub process_rcmd
{
my ($self, $tonode, $fromnode, $user, $cmd) = @_;
+
+ Log('rcmd', 'in', ($ref->{priv}||0), $fromnode, $cmd);
if ($tonode eq $main::mycall) {
my $ref = DXUser::get_current($fromnode);
unless ($ref && UNIVERSAL::isa($ref, 'DXUser')) {
$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
my $fc = Mojo::IOLoop::Subprocess->new;
+ # just behave normally if something has set the "one-shot" _nospawn in the channel
+ return ($cmdref->(@$args)) if $self->{_nospawn};
+
# $fc->serializer(\&encode_json);
# $fc->deserializer(\&decode_json);
$fc->run(