]> git.ipfire.org Git - thirdparty/haproxy.git/commit
[MAJOR] replaced the client-side HTTP parser with a new one
authorWilly Tarreau <w@1wt.eu>
Mon, 4 Dec 2006 01:26:12 +0000 (02:26 +0100)
committerWilly Tarreau <w@1wt.eu>
Mon, 4 Dec 2006 01:26:12 +0000 (02:26 +0100)
commit58f10d7478639cb820266b4ef8a1f2fc30dec460
tree0cdeda57d1878c5c3b98eee66d4881c623e671c1
parentb7eba103048b82bc5740cf660c40948506354540
[MAJOR] replaced the client-side HTTP parser with a new one

The new parser uses an FSM to strictly follow RFC2616.
Headers are indexed and parsed only once they're all available.
That way, complex regexes make more sense.

HTTP processing is now performed in several phases by calling
multiple functions, making the code cleaner and easier to read.

Note that req[i]pass does not work anymore because it would
require that we mark a header to be ignored. What is really
needed is to have the ability to add an exception to a matching
(match xx except yy).

Several bugs have been fixed in appsession during the conversion
to the new FSM (method length and recovery on malloc errors).

The code does build and work with the debug examples, but is
not usable yet to connect to anything as it does not forward
the requests yet.
TODO
doc/http-parsing.txt [new file with mode: 0644]
include/proto/proto_http.h
include/types/proto_http.h
include/types/session.h
src/client.c
src/proto_http.c