|
|
|
||||||||||||||||||||||
|
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.
Notes about 10xpatch-1.3.20-0: hi, 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... cheers, Ben O'Shea ----------- Server101.com Fast and Reliable Web Hosting! http://www.server101.com/ 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 normal. 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, http_protocol.c: 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(). 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! |