haproxy/include/types
Willy Tarreau 3c8294b607 MINOR: conn_stream: add new flag CS_FL_RCV_MORE to indicate pending data
Due to the nature of multiplexed protocols, it will often happen that
some operations are only performed on full frames, preventing any partial
operation from being performed. HTTP/2 is one such example. The current
MUX API causes a problem here because the rcv_buf() function has no way
to let the stream layer know that some data could not be read due to a
lack of room in the buffer, but that data are definitely present. The
problem with this is that the stream layer might not know it needs to
call the function again after it has made some room. And if the frame
in the buffer is not followed by any other, nothing will move anymore.

This patch introduces a new conn_stream flag CS_FL_RCV_MORE whose purpose
is to indicate on the stream that more data than what was received are
already available for reading as soon as more room will be available in
the buffer.

This patch doesn't make use of this flag yet, it only declares it. It is
expected that other similar flags may come in the future, such as reports
of pending end of stream, errors or any such event that might save the
caller from having to poll, or simply let it know that it can take some
actions after having processed data.
2017-12-10 21:13:25 +01:00
..
acl.h
action.h MINOR: action: Add a function pointer in act_rule struct to check its validity 2017-10-31 11:36:12 +01:00
applet.h MEDIUM: cache: deliver objects from cache 2017-10-31 21:17:19 +01:00
arg.h
auth.h
backend.h MINOR: threads: Use __decl_hathreads to declare locks 2017-11-13 11:38:17 +01:00
cache.h MEDIUM: cache: enable the HTTP analysers 2017-11-20 19:22:27 +01:00
capture.h CLEANUP: pools: rename all pool functions and pointers to remove this "2" 2017-11-24 17:49:53 +01:00
channel.h BUG/MEDIUM: stream-int: Don't loss write's notifs when a stream is woken up 2017-11-09 15:16:05 +01:00
checks.h BUILD: checks: don't include server.h 2017-11-29 10:54:05 +01:00
cli.h
compression.h
connection.h MINOR: conn_stream: add new flag CS_FL_RCV_MORE to indicate pending data 2017-12-10 21:13:25 +01:00
counters.h
dns.h MINOR: threads: Use __decl_hathreads to declare locks 2017-11-13 11:38:17 +01:00
fd.h CLEANUP: fd: place the lock at the beginning of struct fdtab 2017-11-26 11:10:53 +01:00
filters.h MEDIUM: threads/filters: Add init/deinit callback per thread 2017-10-31 13:58:32 +01:00
freq_ctr.h
global.h BUG/MEDIUM: ssl engines: Fix async engines fds were not considered to fix fd limit automatically. 2017-12-06 14:17:41 +01:00
h1.h MINOR: h1: store the status code in the H1 message 2017-10-31 08:43:29 +01:00
hdr_idx.h
hlua.h MEDIUM: threads/lua: Cannot acces to the socket if we try to access from another thread. 2017-10-31 13:58:32 +01:00
lb_chash.h
lb_fas.h
lb_fwlc.h
lb_fwrr.h
lb_map.h MEDIUM: threads/lb: Make LB algorithms (lb_*.c) thread-safe 2017-10-31 13:58:31 +01:00
listener.h MINOR: config: Add threads support for "process" option on "bind" lines 2017-11-24 15:38:50 +01:00
log.h
mailers.h
map.h
obj_type.h MINOR: connection: introduce conn_stream 2017-10-31 18:03:23 +01:00
pattern.h MINOR: threads: Use __decl_hathreads to declare locks 2017-11-13 11:38:17 +01:00
peers.h MINOR: threads: Use __decl_hathreads to declare locks 2017-11-13 11:38:17 +01:00
pipe.h
port_range.h
proto_http.h CLEANUP: pools: rename all pool functions and pointers to remove this "2" 2017-11-24 17:49:53 +01:00
proto_udp.h
protocol.h
proxy.h CLEANUP: proxy: slightly reorder the struct proxy to reduce holes 2017-11-26 11:10:52 +01:00
queue.h
sample.h
server.h CLEANUP: server: reorder some fields in struct server to save 40 bytes 2017-11-26 11:10:52 +01:00
session.h
shctx.h MEDIUM: shctx: use unsigned int for len and block_count 2017-11-21 21:35:04 +01:00
signal.h
spoe.h MINOR: threads: Use __decl_hathreads to declare locks 2017-11-13 11:38:17 +01:00
ssl_sock.h MEDIUM: shctx: separate ssl and shctx 2017-10-31 03:49:40 +01:00
stats.h
stick_table.h MINOR: threads: Use __decl_hathreads to declare locks 2017-11-13 11:38:17 +01:00
stream_interface.h
stream.h
task.h MINOR: threads: Use __decl_hathreads to declare locks 2017-11-13 11:38:17 +01:00
template.h
vars.h MINOR: threads: Use __decl_hathreads to declare locks 2017-11-13 11:38:17 +01:00