--- Frontier-RPC-0.07b4p1/lib/Apache/XMLRPC.pm.apache2 2007-11-08 17:01:28.000000000 +0100 +++ Frontier-RPC-0.07b4p1/lib/Apache/XMLRPC.pm 2007-11-08 17:24:46.000000000 +0100 @@ -10,16 +10,18 @@ package Apache::XMLRPC; -use Apache::Constants qw(:common); +use Apache2::Const; +use Apache2::ServerUtil; use Frontier::RPC2; sub handler { my $r = shift; - my $conf = $r->server_root_relative( $r->dir_config( "XMLRPC_Config" ) ); + my $path = $r->dir_config( "XMLRPC_Config" ); + my $conf = Apache2::ServerUtil::server_root_relative( $r->pool, $path ); if( -f $conf ) { - unless( $rt = do $conf ) { + unless( my $rt = do $conf ) { die "Couldn\'t parse conf file ($conf): $@\n" if $@; die "Couldn\'t compile conf file ($conf): $!\n" unless defined $rt; die "Couldn\'t run conf file ($conf)\n" unless $rt; @@ -28,15 +30,16 @@ my $decoder = Frontier::RPC2->new(); - my $content; - $r->read( $content, $r->header_in( 'Content-length' ) ); + if (defined $clength and $clength >= 0) { + my $content; + $r->read( $content, $r->headers_in->{'Content-length'} ); - my $answer = $decoder->serve( $content, $Apache::XMLRPC::map ); + my $answer = $decoder->serve( $content, $Apache::XMLRPC::map ); - $r->send_http_header(); - $r->print($answer); + $r->print($answer); + } - return OK; + return Apache2::Const::OK(); } 1;