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)