Sascha Schumann <[EMAIL PROTECTED]> writes:

> On 5 Jan 2001 [EMAIL PROTECTED] wrote:
> 
> > rbb         01/01/05 09:19:57
> >
> >   Modified:    .        configure.in
> >   Log:
> >   Some Linux's do not define TCP_CORK.
> 
>     I guess you are referring to libc 5.x.x systems?  There are
>     still kernels around (2.0.x, early 2.2.x possibly) which
>     don't support TCP_CORK, so I think we should not simply
>     presume that TCP_CORK works.
> 
>     Would anyone mind, if the *linux* portion of the case
>     statement would egrep linux/socket.h for TCP_CORK?

Okay, what you committed looks nice but on RedHat 6.0 and RedHat 6.1
the AC_EGREP_HEADER doesn't find TCP_CORK in the kernel header file
because TCP_CORK is hidden by a check for the libc version.
sendrecv.c won't compile for Linux because APR_HAVE_CORKABLE_TCP is
not set but APR_HAS_SENDFILE is and the Linux-specific code won't
handle that case.

For quite a while we made do with the code below:

#if APR_HAS_SENDFILE
(uninteresting code omitted)

/* Glibc2.1.1 fails to define TCP_CORK.  This is a bug that will be
 *fixed in the next release.  It should be 3
 */
#if !defined(TCP_CORK) && defined(__linux__)
#define TCP_CORK 3
#endif

#endif /* APR_HAS_SENDFILE */

We can put the equivalent logic in configure.in (i.e., if Linux with
sendfile() and we can't find TCP_CORK, fake it).  Nobody found a
problem with that assumption yet, and apache-2.0 has been built on
quite a few Linux distributions while that code was around.  Maybe
some ancient Linux dev kernel has sendfile() but not TCP_CORK, but it
seems remote that somebody would get bit by that problem (don't know
such a kernel exists and it is ancient and whoever had it loves to
upgrade anyway :) ).

I also wonder why we need APR_HAVE_CORKABLE_TCP defined in apr.h.  Do
we expect an APR app to use this?

Have fun...
  
-- 
Jeff Trawick | [EMAIL PROTECTED] | PGP public key at web site:
       http://www.geocities.com/SiliconValley/Park/9289/
             Born in Roswell... married an alien...

Reply via email to