In response to PR# 22805. The buff.c changes reflect the change to force ap_pclosesocket() on all sockets. Since this function call uses closesocket() universally, this allows the changes to http_main.c.
Index: src/main/buff.c
===================================================================
RCS file: /home/cvs/apache-1.3/src/main/buff.c,v
retrieving revision 1.110
diff -u -u -r1.110 buff.c
--- src/main/buff.c 3 Feb 2003 17:13:20 -0000 1.110
+++ src/main/buff.c 16 Oct 2003 17:36:46 -0000
@@ -1497,7 +1497,6 @@
rc1 = ap_bflush(fb);
else
rc1 = 0;
-#if defined(WIN32) || defined(NETWARE) || defined(CYGWIN_WINSOCK)
if (fb->flags & B_SOCKET) {
rc2 = ap_pclosesocket(fb->pool, fb->fd);
if (fb->fd_in != fb->fd) {
@@ -1506,24 +1505,13 @@
else {
rc3 = 0;
}
- }
-#if !defined(NETWARE) && !defined(CYGWIN_WINSOCK)
- else if (fb->hFH != INVALID_HANDLE_VALUE) {
+ } else {
+#if defined(WIN32)
+ if (fb->hFH != INVALID_HANDLE_VALUE) {
rc2 = ap_pcloseh(fb->pool, fb->hFH);
rc3 = 0;
}
-#endif
else {
-#elif defined(BEOS)
- if (fb->flags & B_SOCKET) {
- rc2 = ap_pclosesocket(fb->pool, fb->fd);
- if (fb->fd_in != fb->fd) {
- rc3 = ap_pclosesocket(fb->pool, fb->fd_in);
- }
- else {
- rc3 = 0;
- }
- } else {
#endif
rc2 = ap_pclosef(fb->pool, fb->fd);
if (fb->fd_in != fb->fd) {
@@ -1532,7 +1520,8 @@
else {
rc3 = 0;
}
-#if defined(WIN32) || defined (BEOS) || defined(NETWARE) || defined(CYGWIN_WINSOCK)
+ }
+#if defined(WIN32)
}
#endif
Index: src/main/http_main.c
===================================================================
RCS file: /home/cvs/apache-1.3/src/main/http_main.c,v
retrieving revision 1.604
diff -u -u -r1.604 http_main.c
--- src/main/http_main.c 23 May 2003 15:25:24 -0000 1.604
+++ src/main/http_main.c 16 Oct 2003 17:36:50 -0000
@@ -3703,11 +3703,7 @@
#ifndef _OSD_POSIX
ap_log_error(APLOG_MARK, APLOG_CRIT, server_conf,
"make_sock: for %s, setsockopt: (SO_REUSEADDR)", addr);
-#ifdef BEOS
closesocket(s);
-#else
- close(s);
-#endif
ap_unblock_alarms();
exit(1);
#endif /*_OSD_POSIX*/
@@ -3717,11 +3713,7 @@
if (setsockopt(s, SOL_SOCKET, SO_KEEPALIVE, (char *) &one, sizeof(int)) < 0) {
ap_log_error(APLOG_MARK, APLOG_CRIT, server_conf,
"make_sock: for %s, setsockopt: (SO_KEEPALIVE)", addr);
-#ifdef BEOS
closesocket(s);
-#else
- close(s);
-#endif
ap_unblock_alarms();
exit(1);
@@ -3776,11 +3768,7 @@
GETUSERMODE();
#endif-#ifdef BEOS
closesocket(s);
-#else
- close(s);
-#endif
ap_unblock_alarms();
exit(1);
}
@@ -3792,11 +3780,7 @@
if (listen(s, ap_listenbacklog) == -1) {
ap_log_error(APLOG_MARK, APLOG_ERR, server_conf,
"make_sock: unable to listen for connections on %s", addr);
-#ifdef BEOS
closesocket(s);
-#else
- close(s);
-#endif
ap_unblock_alarms();
exit(1);
}
@@ -3846,11 +3830,7 @@
"larger than FD_SETSIZE (%u) "
"found, you probably need to rebuild Apache with a "
"larger FD_SETSIZE", addr, s, FD_SETSIZE);
-#ifdef BEOS
closesocket(s);
-#else
- close(s);
-#endif
exit(1);
}
#endif