Get Accelerating Apache
	Project at Fast, secure and Free Open Source
	software downloads
Accelerating Apache Patches for Apache/1.3.20
Patch Information
Mailing Lists
SourceForge Project Info

This page explains what you'll find in the 1.3.20 release of the download area for this project.

The following patches are available for Apache/1.3.20.

WARNING: These patches were contributed by well-meaning fans but neither SGI nor the AAP has examined or tested them. Neither SGI nor the AAP will support them. They are posted here only for your convenience. Please direct all inquiries to their contributors. For the latest tested, supported patches use Apache/1.3.14.

Patch Description Base
10xpatch-1.3.20-0 All of the earlier patches ported to Apache/1.3.20.
Contributed by Ben O'Shea. Thanks Ben! See his notes below.
11 Jul 2001
10xpatch-1.3.20-1 Same as 10xpatch-1.3.20-0 but with all references to this project's old location on updated to the new location on SourceForge.
3 Nov 2001
10xpatch-1.3.20-2 Fix keep-alive POST problem with quickly_read_request_line(). See the notes below.
27 Jun 2002
Apache/1.3.20 +

Notes about 10xpatch-1.3.20-0:


i recently ported the accelerated apache patches from 1.3.14 apache tree 
to the 1.3.20 tree, just thought u might want to stick a copy on the 
projects (former?) page for anyone else who may be interested. There we're
lots of large changes to certain portions of the apache internals, 
between 1.3.14, and 1.3.20, so most of it i had to hack in by hand with a
bit of guesswork and a little help from the rejects from patch, but as 
far as i have tested (benchmarked pretty heavily with ab, etc...) on
i386 systems (SMP and non-SMP) it seems to be stable,  i cant make
any guarentees about other arch's though..

damn i wish the ASF would merge this path set and save everyone the time
and hassle of making this patch work between versions....

comments/corrections etc welcome... 


Ben O'Shea
Fast and Reliable Web Hosting!

Notes about 10xpatch-1.3.20-2:

The quickly_read_request_line() function in src/main/http_protocol.c
always tries to read RQBUF_SIZE into r->rqbuf, then parses the request.
If shortcut parsing fails (e.g., request is "POST"), it copies the
already-read data into fb and falls back to regular processing.  This is

Now, imagine that the request is keep-alive "POST".  The first "POST"
will work fine -- it copies the already-read data (say, 3 KB) into fb.
The second "POST" over the same connection causes problems, however,
because there is not enough room left in fb and the assertion fails:

ap_assert(&fb->inptr[n] <= &fb->inbase[fb->bufsiz]);

Process aborts.

This patch fixes this problem by changing four things in one file,

Change #1:  Make RQBUF_SIZE == fb->bufsiz always.  That's the only way
	    to guarantee that all the data will fit in BUFF when falling
	    back to regular processing.

Change #2:  Change to unbuffered read by unsetting the B_RD flag (and
	    setting it back after ap_bread).  It is guaranteed that BUFF
	    is empty (fb->incnt is zero) after unbuffered ap_bread().

Change #3:  Reset the BUFF cursor when falling back to regular
	    processing.  This is OK because fb->incnt is zero.

Change #4:  Same as #3 for quickly_get_mime_headers().

SSL Reference Port

Lots of folks have trouble manually resolving the conflicts that arise when mixing the 10x patches and mod_ssl. (For example, see the mail archive for September 2001. For your reference only, a complete merge is now available. This code is not supported or guaranteed to work; it exists only to ease your patch conflict resolution.

This reference merge combines these elements, which you must download separately:

Good luck!