--- Frontier-RPC-0.06/lib/Frontier/RPC2.pm.rawserve Wed Jun 19 17:47:33 2002
+++ Frontier-RPC-0.06/lib/Frontier/RPC2.pm Wed Jun 19 18:26:04 2002
@@ -110,7 +110,7 @@
}
sub serve {
- my $self = shift; my $xml = shift; my $methods = shift;
+ my $self = shift; my $xml = shift; my $methods = shift; my $raw = shift;
my $call;
# FIXME bug in Frontier's XML
@@ -118,6 +118,7 @@
eval { $call = $self->decode($xml) };
if ($@) {
+ die $@ if $raw;
return $self->encode_fault(1, "error decoding RPC.\n" . $@);
}
@@ -127,12 +128,14 @@
my $method = $call->{'method_name'};
if (!defined $methods->{$method}) {
+ die "No such method '$method'" if $raw;
return $self->encode_fault(3, "no such method \`$method'\n");
}
my $result;
my $eval = eval { $result = &{ $methods->{$method} }(@{ $call->{'value'} }) };
if ($@) {
+ die $@ if $raw;
return $self->encode_fault(4, "error executing RPC \`$method'.\n" . $@);
}