Commit Graph

24 Commits

Author SHA1 Message Date
Willy Tarreau c006dab8be DOC: internal: add some reminders about HTTP parsing and pointer states
This is only for development and maintenance.
2014-04-22 23:15:29 +02:00
Thierry FOURNIER 6677959879 DOC: pattern: pattern organisation schematics 2014-03-20 14:10:49 +01:00
Willy Tarreau 8e84c637d1 DOC: add a diagram showing polling state transitions
This is internal stuff.
2014-01-26 00:42:29 +01:00
Bhaskar Maddala 10e26de4ea DOC: Documentation for hashing function, with test results.
Summary:
Added a document for hashing under internal docs explaining
hashing in haproxy along with the results of tests under the test
folder.

These documents together explain the motivation for adding
options for hashing algorithms with the option of enabling or
disabling of avalanche.
2013-11-20 22:14:47 +01:00
Willy Tarreau dbe090a442 DOC: update document describing relations between internal entities
Connections have left the stream interface. fdtab[] has been represented.
2012-10-26 20:40:13 +02:00
Willy Tarreau 0b737a72ef DOC: document relations between internal entities
Links between internal structures have been represented in
entities.fig. The pdf and svg versions were added too.
2012-10-14 14:05:16 +02:00
Willy Tarreau 1122d9c03c DOC: add a diagram to explain how circular buffers work
Also add some thoughts about the existing and new design.

Note: an earlier design used the names "head" and "tail" for both sides
of the buffer, but it appears awkward as these words may be understood
in two forms (feed by head, output by tail, or make the newcomers wait
at the tail of the queue). Also there were already a few functions in the
code making use of either terminology. So better avoid this terminology
and use "input" and "output" instead.
2012-04-30 11:57:00 +02:00
Willy Tarreau 2f1feb99a5 DOC: add some documentation from RFC3986 about URI format 2012-01-07 23:58:54 +01:00
Willy Tarreau 6cee7ddd5e DOC: add minimal documentation on how ACLs work internally
This will help complete the ACL to pattern migration.
2011-12-30 17:33:27 +01:00
Willy Tarreau 8263b91a53 [DOC] add a few old and uncommitted docs
These docs were still lying in my directory uncommitted. They're not
very important but can be useful for developers who seek info about
internals.
2011-09-05 01:04:44 +02:00
Willy Tarreau 1a4186d6a2 [DOC] internal: reflect the fact that SI_ST_ASS is transient
This state might appear before process_session() (eg: when the session is
first initialized), but does not remain after process_session() returns.
2011-03-03 16:40:09 +01:00
Willy Tarreau a168b10a71 [DOC] add a summary about cookie incompatibilities between specs and browsers
As many implementations as browsers, none following at least one of the 4
specs.
2010-08-31 23:58:03 +02:00
Willy Tarreau 6046652253 [MAJOR] http: rework response Connection header handling
This one is the next step of previous patch. It correctly computes
the response mode and the Connection flag transformations depending
on the request mode and version, and the response version and headers.

We're now also able to add "Connection: keep-alive", and to convert
server's close during a keep-alive connection to a server-close
connection.
2010-01-22 11:49:41 +01:00
Willy Tarreau 116f91e7a5 [DOC] add documentation about connection header processing
The connection header is complex to handle, especially in the response
path, depending on request and response HTTP versions, desired mode,
etc... Let's document it. Note that only a subset of this document is
currently implemented.
2010-01-17 11:43:59 +01:00
Willy Tarreau 3e79479348 [CLEANUP] ebtree: remove old unused files 2009-10-26 21:15:10 +01:00
Willy Tarreau f41ffdc1e9 [BUG] stream_interface: SI_ST_CLO must have buffers SHUT
An abort during a connect would go to the SI_ST_CLO state without
the buffers shut. This was causing some sessions to never end if
they would abort before the connect request was initiated. This
bug has been introduced after 1.4-dev2.

The doc has been extended to reflect that too.
2009-09-20 08:34:41 +02:00
Willy Tarreau 74ab2ac7b0 [MEDIUM] stream_interface: added a DISconnected state between CON/EST and CLO
There were rare situations where it was not easy to detect that a failed
session attempt had occurred and needed some server cleanup. In particular,
client aborts sometimes lead to session leaks on the server side.

A new state "SI_ST_DIS" (disconnected) has been introduced for this. When
a session has been closed at a stream interface but the server cleanup has
not occurred, this state is entered instead of CLO. The cleanup is then
performed there and the state goes to CLO.

A new diagram has been added to show possible stream_interface state
transitions that can occur in a stream-sock. It makes debugging easier.
2008-11-23 17:23:07 +01:00
Willy Tarreau f56fd8a285 [BUILD] make ebtree headers multiple-include compatible
ebtree did not support being included multiple times.
2007-11-28 14:23:05 +01:00
Willy Tarreau e6d2e4dbdf [MINOR] merge ebtree version 3.0
Version 3.0 of ebtree has been merged in but is not used yet.
2007-11-28 14:20:44 +01:00
Willy Tarreau 6996e15e16 [BUG] fixed connection establishment detection
Since the introduction of speculative I/O, it was not always possible
to correctly detect a connection establishment. Particularly, in TCP
mode, there is no data to send and getsockopt() returns no error. The
solution consists in trying a connect() again to get its diagnostic.
2007-04-30 14:37:43 +02:00
Willy Tarreau 985fc56734 [DOC] added some docs about http headers storage and acls 2007-04-01 09:44:10 +02:00
Willy Tarreau b326fcc46a [CLEANUP] renamed several HTTP structures
Some parts of HTTP processing were incorrectly called "request" while
they are messages or transactions. The following structure members
have changed :

  http_msg.hdr_state => msg_state
  http_msg.sor => som
  http_req.req_state => removed
  http_req => http_txn
2007-03-03 13:54:32 +01:00
Willy Tarreau 244b47beef [DOC] add some doc about internal naming rules 2007-03-03 11:46:27 +01:00
Willy Tarreau d1142aa073 [DOC] imported lots of internal documentations
Those documentations provide nothing to users nor contributors
but at least now I know where they are.
2007-01-07 13:03:59 +01:00