haproxy/include/proto
Willy Tarreau 656859d478 MEDIUM: session: implement a basic atomic buffer allocator
This patch introduces session_alloc_recv_buffer(), session_alloc_buffers()
and session_release_buffers() whose purpose will be to allocate missing
buffers and release unneeded ones around the process_session() and during
I/O operations.

I/O callbacks only need a single buffer for recv operations and none
for send. However we still want to ensure that we don't pick the last
buffer. That's what session_alloc_recv_buffer() is for.

This allocator is atomic in that it always ensures we can get 2 buffers
or fails. Here, if any of the buffers is not ready and cannot be
allocated, the operation is cancelled. The purpose is to guarantee that
we don't enter into the deadlock where all buffers are allocated by the
same size of all sessions.

A queue will have to be implemented for failed allocations. For now
they're just reported as failures.
2014-12-24 23:47:32 +01:00
..
acl.h MINOR: pattern: store configuration reference for each acl or map pattern. 2014-03-17 18:06:07 +01:00
arg.h MAJOR: sample: maintain a per-proxy list of the fetch args to resolve 2013-04-03 02:13:02 +02:00
auth.h MEDIUM: pattern: The match function browse itself the list or the tree. 2014-03-17 18:06:07 +01:00
backend.h MAJOR: checks: add support for a new "drain" administrative mode 2014-05-23 14:29:11 +02:00
channel.h MEDIUM: channel: do not report full when buf_empty is present on a channel 2014-12-24 23:47:32 +01:00
checks.h MEDIUM: checks: simplify server up/down/nolb transitions 2014-05-23 14:29:11 +02:00
compression.h MINOR: compression: CPU usage limit 2012-11-21 02:15:16 +01:00
connection.h MAJOR: namespace: add Linux network namespace support 2014-11-21 07:51:57 +01:00
cttproxy.h
dumpstats.h MEDIUM: stats: reimplement HTTP keep-alive on the stats page 2014-04-24 17:24:56 +02:00
fd.h MAJOR: polling: centralize calls to I/O callbacks 2014-11-21 20:37:32 +01:00
freq_ctr.h MINOR: freq_ctr: introduce a new averaging method 2014-06-17 17:15:51 +02:00
frontend.h REORG: connection: move the PROXY protocol management to connection.c 2012-10-05 00:32:33 +02:00
hdr_idx.h
lb_chash.h
lb_fas.h
lb_fwlc.h
lb_fwrr.h
lb_map.h
listener.h CLEANUP: fix missing include <string.h> in proto/listener.h 2013-06-14 19:52:17 +02:00
log.h MEDIUM: log: support a user-configurable max log line length 2014-06-27 18:13:53 +02:00
map.h MINOR: map: export parse output sample functions 2013-12-12 15:44:05 +01:00
obj_type.h MINOR: obj: introduce a new type appctx 2013-12-09 15:40:22 +01:00
pattern.h BUG/MEDIUM: pattern: don't load more than once a pattern list. 2014-11-24 15:40:16 +01:00
payload.h MINOR: payload: split smp_fetch_rdp_cookie() 2013-08-01 21:17:13 +02:00
peers.h
pipe.h
port_range.h
proto_http.h BUG/MEDIUM: http: adjust close mode when switching to backend 2014-09-30 18:44:22 +02:00
proto_tcp.h MEDIUM: listener: implement a per-protocol pause() function 2014-07-08 01:13:34 +02:00
proto_uxst.h BUG/MEDIUM: unix: completely unbind abstract sockets during a pause() 2014-07-08 01:13:35 +02:00
protocol.h
proxy.h MEDIUM: proxy: create a tree to store proxies by name 2014-03-15 07:48:35 +01:00
queue.h REORG: checks: put the functions in the appropriate files ! 2014-05-22 11:27:00 +02:00
raw_sock.h REORG: connection: rename the data layer the "transport layer" 2012-10-04 22:26:09 +02:00
sample.h MINOR: configuration: File and line propagation 2014-03-17 18:06:08 +01:00
server.h BUG/MINOR: server: move the directive #endif to the end of file 2014-07-29 11:03:14 +02:00
session.h MEDIUM: session: implement a basic atomic buffer allocator 2014-12-24 23:47:32 +01:00
shctx.h BUG/MAJOR: ssl: Fallback to private session cache if current lock mode is not supported. 2014-05-08 22:46:32 +02:00
signal.h
ssl_sock.h BUILD: ssl: use OPENSSL_NO_OCSP to detect OCSP support 2014-12-09 20:49:22 +01:00
stick_table.h MEDIUM: stick-table: make it easier to register extra data types 2014-07-15 19:14:52 +02:00
stream_interface.h MINOR: stream-int: retrieve session pointer from stream-int 2014-12-24 23:47:31 +01:00
task.h MINOR: task: release the task pool when stopping 2014-11-13 16:57:19 +01:00
template.h