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