You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by Jeff Trawick <tr...@gmail.com> on 2004/10/31 16:37:10 UTC

[PATCH] remove ap_sock_disable_nagle() API; improve httpd's handling of nagle errors

At best, ap_sock_disable_nagle() is of limited use (just call
apr_socket_option_set and log if it fails), and at worst it hides
information (no retcode) and has no information to know
when/where/what to log.  So yank it.

Also:

Change httpd so that a connection-oriented nagle error (typically
EINVAL which means that client already dropped connection) is logged
with the client IP address and a debug log level.
We filter out not-implemented errors from platforms which don't
support TCP_NODELAY, but it is APR's job to tell us that rather than
trying to figure that out ourself.

Change httpd so that if we're disabling nagle on the listening socket
(so APR won't have to disable it on connected sockets), we consider it
a shooting offense if it fails.

perchild is expected to work as before after this change.

Re: [PATCH] remove ap_sock_disable_nagle() API; improve httpd's handling of nagle errors

Posted by Bill Stoddard <bi...@wstoddard.com>.
Jeff Trawick wrote:

> At best, ap_sock_disable_nagle() is of limited use (just call
> apr_socket_option_set and log if it fails), and at worst it hides
> information (no retcode) and has no information to know
> when/where/what to log.  So yank it.
> 
+1

> Also:
> 
> Change httpd so that a connection-oriented nagle error (typically
> EINVAL which means that client already dropped connection) is logged
> with the client IP address and a debug log level.
> We filter out not-implemented errors from platforms which don't
> support TCP_NODELAY, but it is APR's job to tell us that rather than
> trying to figure that out ourself.
> 
> Change httpd so that if we're disabling nagle on the listening socket
> (so APR won't have to disable it on connected sockets), we consider it
> a shooting offense if it fails.
> 
> perchild is expected to work as before after this change.

+1 all the way around. Please remove the "BillS says..." comment. Got what I was looking for with the 
introduction of the APR_TCP_NODELAY_INHERITED option.

Bill