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 REORG/MAJOR: session: rename the "session" entity to "stream" 2015-04-06 11:23:56 +02:00
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 MINOR: http/conf: store the use_backend configuration file and line for logs 2016-11-25 07:15:09 +01:00
auth.h MAJOR: auth: Change the internal authentication system. 2014-03-17 18:06:06 +01:00
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 MINOR: cli: add socket commands and config to prepend informational messages with severity 2017-09-13 13:37:59 +02:00
compression.h MAJOR: filters/http: Rewrite the HTTP compression as a filter 2016-02-09 14:53:15 +01:00
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 CLEANUP: counters: move from 3 types to 2 types 2016-11-25 15:03:12 +01:00
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 [MINOR] freq_ctr: add new types and functions for periods different from 1s 2010-08-10 14:01:09 +02:00
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 [BUG] files were missing for hdr_idx in previous commit 2006-12-04 02:20:02 +01:00
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 MINOR: backend: add hash-balance-factor option for hash-type consistent 2016-10-25 20:21:32 +02:00
lb_fas.h MEDIUM: backend: add the 'first' balancing algorithm 2012-02-21 22:27:27 +01:00
lb_fwlc.h [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
lb_fwrr.h [MEDIUM] build: switch ebtree users to use new ebtree version 2009-10-26 21:10:04 +01:00
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 CLEANUP: logs: remove unused log format field definitions 2016-08-23 15:25:28 +02:00
mailers.h MINOR: mailers: make it possible to configure the connection timeout 2016-02-20 15:33:06 +01:00
map.h CLEANUP: map: it seems that the map were planed to be chained 2016-03-30 15:41:15 +02:00
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 [MEDIUM] introduce pipe pools 2009-01-25 13:49:53 +01:00
port_range.h [MEDIUM] add support for binding to source port ranges during connect 2009-06-10 12:23:32 +02:00
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 MEDIUM: protocol: add minimalist UDP protocol client 2015-06-13 22:07:35 +02:00
protocol.h MINOR: protocols: register the ->add function and stop calling them directly 2017-09-15 11:49:52 +02:00
proxy.h CLEANUP: proxy: slightly reorder the struct proxy to reduce holes 2017-11-26 11:10:52 +01:00
queue.h REORG/MAJOR: session: rename the "session" entity to "stream" 2015-04-06 11:23:56 +02:00
sample.h BUG/MEDIUM: samples: make smp_dup() always duplicate the sample 2016-08-09 14:03:23 +02:00
server.h CLEANUP: server: reorder some fields in struct server to save 40 bytes 2017-11-26 11:10:52 +01:00
session.h MINOR: session: remove the list of streams from struct session 2017-10-08 22:32:05 +02:00
shctx.h MEDIUM: shctx: use unsigned int for len and block_count 2017-11-21 21:35:04 +01:00
signal.h [MEDIUM] signals: add support for registering functions and tasks 2010-08-27 18:00:40 +02:00
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 MEDIUM: stats: Add show json schema 2017-03-14 11:14:03 +01:00
stick_table.h MINOR: threads: Use __decl_hathreads to declare locks 2017-11-13 11:38:17 +01:00
stream_interface.h BUG/MEDIUM: stream: fix client-fin/server-fin handling 2017-03-21 15:04:43 +01:00
stream.h MINOR: session: remove the list of streams from struct session 2017-10-08 22:32:05 +02:00
task.h MINOR: threads: Use __decl_hathreads to declare locks 2017-11-13 11:38:17 +01:00
template.h [CLEANUP] included common/version.h everywhere 2006-06-29 18:54:54 +02:00
vars.h MINOR: threads: Use __decl_hathreads to declare locks 2017-11-13 11:38:17 +01:00