haproxy/include
Willy Tarreau b97f199d4b [MEDIUM] http: don't use trash to realign large buffers
The trash buffer may now be smaller than a buffer because we can tune
it at run time. This causes a risk when we're trying to use it as a
temporary buffer to realign unaligned requests, because we may have to
put up to a full buffer into it.

Instead of doing a double copy, we're now relying on an open-coded
bouncing copy algorithm. The principle is that we move one byte at
a time to its final place, and if that place also holds a byte, then
we move it too, and so on. We finish when we've moved all the buffer.
It limits the number of memory accesses, but since it proceeds one
byte at a time and with random walk, it's not cache friendly and
should be slower than a double copy. However, it's only used in
extreme situations and the difference will not be noticeable.

It has been extensively tested and works reliably.
2010-02-25 23:54:31 +01:00
..
common [BUG] uri_auth: do not attemp to convert uri_auth -> http-request more than once 2010-02-23 12:36:10 +01:00
import [MAJOR] replace ultree with ebtree in wait-queues 2008-06-24 08:17:16 +02:00
proto [MEDIUM] http: don't use trash to realign large buffers 2010-02-25 23:54:31 +01:00
types [BUILD] auth: don't use unnamed unions 2010-02-02 11:28:20 +01:00