On Fri, 12 Jan 2001, Richard L. Goerwitz wrote:
> The mod_perl-1.24_01 ./src/modules/perl/Server.xs file is using a
> short int, which leads to ports between 32768 and 65535 (inclusive)
> turning up in Perl as negative numbers -
thanks, this should fix the problem..
Index: src/modules/perl/Server.xs
===================================================================
RCS file: /home/cvs/modperl/src/modules/perl/Server.xs,v
retrieving revision 1.7
diff -u -r1.7 Server.xs
--- src/modules/perl/Server.xs 2000/09/26 17:34:32 1.7
+++ src/modules/perl/Server.xs 2001/01/25 07:04:56
@@ -96,7 +96,7 @@
OUTPUT:
RETVAL
-short
+unsigned short
port(server, ...)
Apache::Server server
@@ -104,7 +104,7 @@
RETVAL = server->port;
if(items > 1)
- server->port = (short)SvIV(ST(1));
+ server->port = (unsigned short)SvIV(ST(1));
OUTPUT:
RETVAL
Index: t/net/perl/api.pl
===================================================================
RCS file: /home/cvs/modperl/t/net/perl/api.pl,v
retrieving revision 1.42
diff -u -r1.42 api.pl
--- t/net/perl/api.pl 2000/04/03 21:41:53 1.42
+++ t/net/perl/api.pl 2001/01/25 07:05:19
@@ -16,7 +16,7 @@
my $is_xs = ($r->uri =~ /_xs/);
-my $tests = 68;
+my $tests = 71;
my $is_win32 = WIN32;
$tests += 2 unless $is_win32;
my $test_get_set = Apache->can('set_handlers') && ($tests += 4);
@@ -177,6 +177,14 @@
test ++$i, $s->server_admin;
test ++$i, $s->server_hostname;
test ++$i, $s->port;
+my $port = $s->port;
+for (32768, 65535) {
+ $s->port($_);
+ test ++$i, $s->port == $_;
+}
+$s->port($port);
+test ++$i, $s->port == $port;
+
test ++$i, $s->timeout;
for (my $srv = $r->server; $srv; $srv = $srv->next) {