Changes to HTTP request and reply parsing classes, started by Alex,
further hacked by DW. These are forward-ported from ICAP development
on sourceforge.
Alex's original commit message:
- Moved parts common to HttpReply and HttpRequest to HttpMsg. HttpMsg is
needed to be able to pipe HTTP messages using MsgPipe without knowing
whether the message being piped is a request or response. It is also
handy for keeping ICAPXaction mostly independent from the ICAP request
method (and, hence, the primary HTTP message kind). Moving previously
duplicated code to a single location is supposed to be good long-term.
More polishing work is needed (e.g., protocol and protoPrefix need
to be merged and so can be lastmod and last_modified).
- Added reset/parse/pack methods to parse and pack HTTP messages without
knowing their direction/kind. HttpRequest::parse() is not implemented
yet but we have code that should be reusable for that.
DW's additional changes
- HttpRequest didn't really have any parsing methods or state.
Moved the HttpReply parsing methods to HttpMsg and created a
virtual function for parsing the start line (request line or
status line).
- Added full_uri flag to packInto() method because ICAP needs
full URIs in encapsulated requests.