At 12:38 PM -0700 10/6/03, Stas Bekman wrote:

I don't think Apache::compat is a culprit, it just doesn't mess with the port methods, however I won't single out that possibility completely,


Can you reproduce this problem in a simple response handler, without Apache::XMLRPC::Lite? If you can give us a simple test case we can reproduce the problem with we will be able to debug and solve it.


That's the thing - I cannot reproduce in a standard PerlResponseHandler.
When I use get_server_port directly in a simple ResponseHandler I get the correct value.


I did try editing Apache::XMLRPC::Lite and added

warn "port: ", $_[0]->get_server_port;
as the first line in the handler() method in Lite.pm and the problem occurs there (error_log shows a port of '80' when it should be 9000)



Apache::XMLRPC::Lite is pretty old - 2001 I think, but the code seems pretty straightforward. Here's the beginning of
/usr/lib/perl5/site_perl/5.8.0/Apache/XMLRPC/Lite.pm






#################### Start of code sample #########################

package Apache::XMLRPC::Lite;

use strict;
use vars qw(@ISA $VERSION);
use XMLRPC::Transport::HTTP;

@ISA = qw(XMLRPC::Transport::HTTP::Apache);
$VERSION = sprintf("%d.%s", map {s/_//g; $_} q$Name: release-0_55-public $ =~ /-
(\d+)_([\d_]+)/);


my $server = __PACKAGE__->new;

sub handler {
  $server->configure(@_);
  $server->SUPER::handler(@_);
}

#################### End of code sample ############################



I edited the handler() subroutine to be:


sub handler { warn "Port: ", $_[0]->get_server_port; $server->configure(@_); $server->SUPER::handler(@_); }


and got the wrong result.





-- ------------------------------------------ Matisse Enzer Doodlelab Inc. 415-925-5294 ext. 212 (office) 415-225-6703 (mobile)

Reply via email to