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) {

Reply via email to