haproxy/include/proto
Willy Tarreau 2542b53b19 MAJOR: session: introduce embryonic sessions
When an incoming connection request is accepted, a connection
structure is needed to store its state. However we don't want to
fully initialize a session until the data layer is about to be
ready.

As long as the connection is physically stored into the session,
it's not easy to split both allocations.

As such, we only initialize the minimum requirements of a session,
which results in what we call an embryonic session. Then once the
data layer is ready, we can complete the function's initialization.

Doing so avoids buffers allocation and ensures that a session only
sees ready connections.

The frontend's client timeout is used as the handshake timeout. It
is likely that another timeout will be used in the future.
2012-09-03 20:47:35 +02:00
..
acl.h REORG: rename "pattern" files 2012-05-08 20:57:21 +02:00
arg.h MEDIUM: add a new typed argument list parsing framework 2012-05-08 20:57:10 +02:00
auth.h MAJOR: acl: make use of the new sample struct and get rid of acl_test 2012-05-08 20:57:14 +02:00
backend.h REORG/MAJOR: use "struct channel" instead of "struct buffer" 2012-09-02 21:54:55 +02:00
channel.h CLEANUP: channel: use "channel" instead of "buffer" in function names 2012-09-03 20:47:33 +02:00
checks.h CLEANUP: Make check_statuses, analyze_statuses and process_chk static 2012-03-24 21:54:19 +01:00
connection.h MEDIUM: connection: add an ->init function to data layer 2012-09-03 20:47:34 +02:00
cttproxy.h
dumpstats.h REORG: buffers: split buffers into chunk,buffer,channel 2012-09-03 20:47:32 +02:00
fd.h MEDIUM: fd: add fd_poll_{recv,send} for use when explicit polling is required 2012-09-02 21:53:11 +02:00
freq_ctr.h [MINOR] freq_ctr: add new types and functions for periods different from 1s 2010-08-10 14:01:09 +02:00
frontend.h REORG/MAJOR: use "struct channel" instead of "struct buffer" 2012-09-02 21:54:55 +02:00
hdr_idx.h OPTIM/MINOR: move the hdr_idx pools out of the proxy struct 2011-10-24 18:15:04 +02:00
lb_chash.h [MEDIUM] backend: implement consistent hashing variation 2009-10-09 07:17:58 +02:00
lb_fas.h MEDIUM: backend: add the 'first' balancing algorithm 2012-02-21 22:27:27 +01:00
lb_fwlc.h [CLEANUP] backend: move LB algos to individual files 2009-10-01 11:19:37 +02:00
lb_fwrr.h [CLEANUP] backend: move LB algos to individual files 2009-10-01 11:19:37 +02:00
lb_map.h [MINOR] lb_map: reorder code in order to ease integration of new hash functions 2009-10-01 21:11:15 +02:00
log.h MEDIUM: log: Unique ID 2012-04-07 16:25:26 +02:00
peers.h [CLEANUP] peers.h: fix declarations 2011-06-18 20:27:19 +02:00
pipe.h
port_range.h
proto_http.h REORG/MAJOR: use "struct channel" instead of "struct buffer" 2012-09-02 21:54:55 +02:00
proto_tcp.h MINOR: tcp: replace tcp_src_to_stktable_key with addr_to_stktable_key 2012-09-03 20:47:34 +02:00
proto_uxst.h BUG/MEDIUM: stream_interface: restore get_src/get_dst 2012-05-11 16:48:10 +02:00
protocols.h REORG/MEDIUM: move the default accept function from sockstream to protocols.c 2012-05-08 21:28:15 +02:00
proxy.h MEDIUM: session: add support for tunnel timeouts 2012-05-12 12:50:00 +02:00
queue.h BUG/MEDIUM: zero-weight servers must not dequeue requests from the backend 2012-01-20 16:18:53 +01:00
raw_sock.h CLEANUP: connection: split sock_ops into data_ops, app_cp and si_ops 2012-09-03 20:47:31 +02:00
sample.h REORG: rename "pattern" files 2012-05-08 20:57:21 +02:00
server.h [OPTIM] counters: move some max numbers to the counters struct 2009-10-04 23:26:19 +02:00
session.h MAJOR: session: introduce embryonic sessions 2012-09-03 20:47:35 +02:00
signal.h [MEDIUM] signals: support redistribution of signal zero when stopping 2010-08-27 18:26:11 +02:00
stick_table.h REORG: use the name "sample" instead of "pattern" to designate extracted data 2012-05-08 20:57:20 +02:00
stream_interface.h MEDIUM: proto_tcp: remove any dependence on stream_interface 2012-09-03 20:47:34 +02:00
task.h [MAJOR] proxy: finally get rid of maintain_proxies() 2011-07-25 16:33:49 +02:00
template.h