httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "William A. Rowe, Jr." <wr...@rowe-clan.net>
Subject Re: cvs commit: httpd-2.0 STATUS
Date Thu, 17 Apr 2003 18:40:31 GMT

>wrowe       2003/04/17 11:20:59
>
>         server/mpm_common.c 1.107
>         +1: ake, trawick, stoddard
>  +      -1: wrowe

Ok, make that +1 with an interim commit noted below...

>  +          wrowe notes: I don't dislike the patch - but the breakage illustrates
>  +                       breakage in APR.  Why?  Because APR is not in the business
>  +                       of exposing undecorated names.  I suggest we go back to
>  +                       square one, decorate the change to apr.hw, and when we
>  +                       start patching for 2.1-dev/2.0 - test for APR_TCP_NODELAY
>  +                       as well as TCP_NODELAY.
>  +                       

Ok, so we fail because we #defined a noop incorrectly... the code that invokes
the fn;

#if APR_TCP_NODELAY_INHERITED
    ap_sock_disable_nagle(s);
#endif

didn't 'really' need to be protected.  However, the real bug is here, in 
mpm_common.c, we have

#if defined(TCP_NODELAY) && !defined(MPE) && !defined(TPF) && !defined(WIN32)
void ap_sock_disable_nagle(apr_socket_t *s)
{
[...].

while in mpm_common.h we had;

#if defined(TCP_NODELAY) && !defined(MPE) && !defined(TPF)
[...]
void ap_sock_disable_nagle(apr_socket_t *s);
#else
#define ap_sock_disable_nagle(s)        /* NOOP */
#endif

Plain old httpd bug.

In order to record the 'evolution', and what happened here in CVS history,
could we please apply the following patch -before- we commit Allen's patch 
to fix the whole problem for good?  I'm just looking to document what
was broken here and what the pre-2.0.46 side-effects were...

changelog:
  Correct a mis-correlation between mpm_common.c and mpm_common.h;
  This patch reverts us to pre-2.0.46 behavior, using the ap_sock_disable_nagle
  noop macro, because ap_sock_disable_nagle was never compiled on Win32.

  The next patch introduces ap_sock_disable_nagle for the first time on Win32.

--- include/mpm_common.h        3 Feb 2003 17:31:30 -0000       1.39.2.1
+++ include/mpm_common.h        17 Apr 2003 18:31:06 -0000
@@ -139,7 +139,7 @@
 int ap_process_child_status(apr_proc_t *pid, apr_exit_why_e why, int status);
 #endif

-#if defined(TCP_NODELAY) && !defined(MPE) && !defined(TPF)
+#if defined(TCP_NODELAY) && !defined(MPE) && !defined(TPF) && !defined(WIN32)
 /**
  * Turn off the nagle algorithm for the specified socket.  The nagle algorithm
  * says that we should delay sending partial packets in the hopes of getting



Mime
View raw message