# client. From then on, direct TCP connections can be made to this port
# to send requests and get replies.
-do './web-lib.pl';
+BEGIN { push(@INC, ".."); };
+use WebminCore;
use POSIX;
use Socket;
$force_lang = $default_lang;
# execute a function
print STDERR "fastrpc: call $arg->{'module'}::$arg->{'func'}(",join(",", @{$arg->{'args'}}),")\n" if ($gconfig{'rpcdebug'});
local @rv;
- local $main::error_must_die = 1;
eval {
+ local $main::error_must_die = 1;
@rv = &foreign_call($arg->{'module'},
$arg->{'func'},
@{$arg->{'args'}});
$rv = eval $arg->{'code'};
}
print STDERR "fastrpc: eval $arg->{'module'} $arg->{'code'} done = $rv error = $@\n" if ($gconfig{'rpcdebug'});
- $rawrv = &serialise_variable(
- { 'status' => 1, 'rv' => $rv } );
+ if ($@) {
+ $rawrv = &serialise_variable(
+ { 'status' => 0, 'rv' => $@ } );
+ }
+ else {
+ $rawrv = &serialise_variable(
+ { 'status' => 1, 'rv' => $rv } );
+ }
}
elsif ($arg->{'action'} eq 'quit') {
print STDERR "fastrpc: quit\n" if ($gconfig{'rpcdebug'});