Changes with Apache 1.3.28
+ *) Change the log messages for setsockopt(TCP_NODELAY) and
+ getsockname() failures to log the client IP address and to
+ change the log level to debug. [Jeff Trawick]
+
*) Correction to mod_negotation for Win32, OS2, Netware etc, where
case insensitive requests such as the HEADER or README search
from autoindex would fail to match HEADER.html (because the
}
#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
#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_DEBUG, server_conf,
+ "setsockopt: (TCP_NODELAY), client %pA probably "
+ "dropped the connection", &sin_client->sin_addr);
+ }
+ else {
+ ap_log_error(APLOG_MARK, APLOG_DEBUG, 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)
}
#endif
- sock_disable_nagle(s);
+ sock_disable_nagle(s, NULL);
sock_enable_linger(s);
/*
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_DEBUG, 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);
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);