+1

At 9:42 AM -0500 1/16/03, Jeff Trawick wrote:
>
>I can certainly understand that :)  Here is a new patch along those lines.
>
>Index: main/http_main.c
>===================================================================
>RCS file: /home/cvs/apache-1.3/src/main/http_main.c,v
>retrieving revision 1.599
>diff -u -r1.599 http_main.c
>--- main/http_main.c   9 Jan 2003 09:24:10 -0000       1.599
>+++ main/http_main.c   16 Jan 2003 14:36:38 -0000
>@@ -3555,7 +3555,7 @@
> }
>
> #if defined(TCP_NODELAY) && !defined(MPE) && !defined(TPF)
>-static void sock_disable_nagle(int s)
>+static void sock_disable_nagle(int s, struct sockaddr_in *sin_client)
> {
>     /* The Nagle algorithm says that we should delay sending partial
>      * packets in hopes of getting more data.  We don't want to do
>@@ -3573,13 +3573,20 @@
> #ifdef NETWARE
>         errno = WSAGetLastError();
> #endif
>-      ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf,
>-                  "setsockopt: (TCP_NODELAY)");
>+        if (sin_client) {
>+            ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf,
>+                         "setsockopt: (TCP_NODELAY), client %pA probably "
>+                         "dropped the connection", &sin_client->sin_addr);
>+        }
>+        else {
>+            ap_log_error(APLOG_MARK, APLOG_WARNING, server_conf,
>+                         "setsockopt: (TCP_NODELAY)");
>+        }
>     }
> }
>
> #else
>-#define sock_disable_nagle(s) /* NOOP */
>+#define sock_disable_nagle(s, c)      /* NOOP */
> #endif
>
> static int make_sock(pool *p, const struct sockaddr_in *server)
>@@ -3663,7 +3670,7 @@
>     }
> #endif
>
>-    sock_disable_nagle(s);
>+    sock_disable_nagle(s, NULL);
>     sock_enable_linger(s);
>
>     /*
>@@ -4513,11 +4520,14 @@
>
>       clen = sizeof(sa_server);
>       if (getsockname(csd, &sa_server, &clen) < 0) {
>-          ap_log_error(APLOG_MARK, APLOG_ERR, server_conf, "getsockname");
>+          ap_log_error(APLOG_MARK, APLOG_ERR, server_conf,
>+                         "getsockname, client %pA probably dropped the "
>+                         "connection",
>+                         &((struct sockaddr_in *)&sa_client)->sin_addr);
>           continue;
>       }
>
>-      sock_disable_nagle(csd);
>+      sock_disable_nagle(csd, (struct sockaddr_in *)&sa_client);
>
>       (void) ap_update_child_status(my_child_num, SERVER_BUSY_READ,
>                                  (request_rec *) NULL);
>@@ -5884,7 +5894,7 @@
>           memset(&sa_client, '\0', sizeof(sa_client));
>       }
>
>-      sock_disable_nagle(csd);
>+      sock_disable_nagle(csd, (struct sockaddr_in *)&sa_client);
>
>       (void) ap_update_child_status(child_num, SERVER_BUSY_READ,
>                                  (request_rec *) NULL);


-- 
===========================================================================
   Jim Jagielski   [|]   [EMAIL PROTECTED]   [|]   http://www.jaguNET.com/
      "A society that will trade a little liberty for a little order
             will lose both and deserve neither" - T.Jefferson

Reply via email to