haproxy/src
Christopher Faulet 198ef8b1de BUG/MEDIUM: http-ana: Never for sending data in TUNNEL mode
When a channel is set in TUNNEL mode, we now always set the CF_NEVER_WAIT flag,
to be sure to never wait for sending data. It is important because in TUNNEL
mode, we have no idea if more data are expected or not. Setting this flag
prevent the MSG_MORE flag to be set on the connection.

It is only a problem with the HTX, since the 2.2. On previous versions, the
MSG_MORE flag is only set on the mux initiative. In fact, the problem arises
because there is an ambiguity in tunnel mode about the HTX_FL_EOI flag. In this
mode, from the mux point of view, while the SHUTR is not received more data are
expected. But from the channel point of view, we want to send data asap.

At short term, this fix is good enough and is valid anyway. But for the long
term more reliable solution must be found. At least, the to_forward field must
regain its original meaning.

This patch must be backported as far as 2.2.
2020-12-18 15:05:57 +01:00
..
51d.c CLEANUP: config: Return ERR_NONE from config callbacks instead of 0 2020-11-13 16:26:10 +01:00
acl.c CLEANUP: pattern: remove pat_delete_fcts[] and pattern_head->delete() 2020-11-05 19:27:09 +01:00
action.c MEDIUM: http_act: define set-timeout server/tunnel action 2020-12-11 12:01:07 +01:00
activity.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
applet.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
arg.c CLEANUP: Do not use a fixed type for 'sizeof' in 'calloc' 2020-09-12 20:31:25 +02:00
auth.c BUG/MINOR: auth: report valid crypto(3) support depending on build options 2020-09-08 14:34:04 +02:00
backend.c MINOR: backend: add timeout sample fetches 2020-12-11 12:01:07 +01:00
base64.c REORG: include: move base64.h, errors.h and hash.h from common to to haproxy/ 2020-06-11 10:18:56 +02:00
cache.c MINOR: cache: Add a max-secondary-entries cache option 2020-12-15 16:35:09 +01:00
calltrace.c BUILD: trace: include tools.h 2020-09-25 17:54:48 +02:00
cfgparse-global.c MINOR: config: Add a warning if tune.chksize is used 2020-11-27 10:30:23 +01:00
cfgparse-listen.c MEDIUM: proxy: remove obsolete "monitor-net" 2020-10-15 21:47:04 +02:00
cfgparse-ssl.c BUILD: SSL: guard TLS13 ciphersuites with HAVE_SSL_CTX_SET_CIPHERSUITES 2020-11-21 11:04:36 +01:00
cfgparse-tcp.c CLEANUP: cfgparse: remove duplicate registration for transparent build options 2020-11-05 19:27:16 +01:00
cfgparse-unix.c MINOR: listener: create a new struct "settings" in bind_conf 2020-09-16 20:13:13 +02:00
cfgparse.c MEDIUM: cli/ssl: configure ssl on server at runtime 2020-11-18 17:22:28 +01:00
channel.c MINOR: channel: new getword and getchar functions on channel. 2020-10-07 17:17:27 +02:00
check.c MINOR: checks: don't call conn_cond_update_polling() anymore 2020-12-11 11:11:06 +01:00
chunk.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
cli.c REORG: connection: move the socket iocb (conn_fd_handler) to sock.c 2020-12-11 16:26:00 +01:00
compression.c BUILD: compression: make gcc 10 happy with free_zlib() 2020-06-14 08:00:19 +02:00
connection.c MEDIUM: connection: make use of the control layer check_events/ignore_events 2020-12-11 17:06:11 +01:00
da.c CLEANUP: config: Return ERR_NONE from config callbacks instead of 0 2020-11-13 16:26:10 +01:00
debug.c MINOR: debug: add a trivial PRNG for scheduler stress-tests 2020-11-30 17:07:32 +01:00
dgram.c REORG: dgram: rename proto_udp to dgram 2020-06-11 10:18:59 +02:00
dict.c REORG: include: move THREAD_LOCAL and __decl_thread() to compiler.h 2020-06-11 10:18:59 +02:00
dns.c MINOR: dns/stats: integrate dns counters in stats 2020-10-05 12:02:14 +02:00
dynbuf.c REORG: buffer: rename buffer.c to dynbuf.c 2020-06-29 09:26:59 +02:00
eb32sctree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
eb32tree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
eb64tree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebimtree.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
ebistree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebmbtree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebpttree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebsttree.c REORG: ebtree: move the include files from ebtree to include/import/ 2020-06-11 09:31:11 +02:00
ebtree.c BUG/MEDIUM: ebtree: use a byte-per-byte memcmp() to compare memory blocks 2020-06-16 11:30:33 +02:00
ev_epoll.c MINOR: debug: add a new DEBUG_FD build option 2020-06-23 10:04:54 +02:00
ev_evports.c MINOR: debug: add a new DEBUG_FD build option 2020-06-23 10:04:54 +02:00
ev_kqueue.c MINOR: debug: add a new DEBUG_FD build option 2020-06-23 10:04:54 +02:00
ev_poll.c MINOR: debug: add a new DEBUG_FD build option 2020-06-23 10:04:54 +02:00
ev_select.c MINOR: debug: add a new DEBUG_FD build option 2020-06-23 10:04:54 +02:00
extcheck.c BUG/MINOR: extcheck: add missing checks on extchk_setenv() 2020-10-24 13:07:39 +02:00
fcgi-app.c BUG/MEDIUM: fcgi-app: fix memory leak in fcgi_flt_http_headers 2020-07-15 20:23:29 +02:00
fcgi.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
fd.c MINOR: fd/threads: silence a build warning with threads disabled 2020-11-26 22:28:41 +01:00
filters.c BUG/MAJOR: filters: Always keep all offsets up to date during data filtering 2020-11-24 14:17:32 +01:00
fix.c MINOR: sample: Add converters to parse FIX messages 2020-11-05 19:26:30 +01:00
flt_http_comp.c CLEANUP: compression: Make use of http_get_etag_type() 2020-10-22 16:59:36 +02:00
flt_spoe.c MINOR: stream: Pass an optional input buffer when a stream is created 2020-12-04 14:41:48 +01:00
flt_trace.c MINOR: flt-trace: Use a bitfield for the trace options 2020-11-17 11:34:36 +01:00
freq_ctr.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
frontend.c MINOR: frontend: add client timeout sample fetch 2020-12-11 12:01:07 +01:00
h1.c BUILD: tree-wide: cast arguments to tolower/toupper to unsigned char 2020-07-05 21:50:02 +02:00
h1_htx.c BUG/MINOR: http: Establish a tunnel for all 2xx responses to a CONNECT 2020-12-18 15:05:57 +01:00
h2.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
haproxy.c BUILD/MINOR: haproxy DragonFlyBSD affinity build update. 2020-12-02 22:43:57 +01:00
hash.c REORG: include: move base64.h, errors.h and hash.h from common to to haproxy/ 2020-06-11 10:18:56 +02:00
hlua.c MINOR: stream: Pass an optional input buffer when a stream is created 2020-12-04 14:41:48 +01:00
hlua_fcn.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
hpack-dec.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
hpack-enc.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
hpack-huff.c REORG: include: move hpack*.h to haproxy/ and split hpack-tbl 2020-06-11 10:18:57 +02:00
hpack-tbl.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
http.c BUG/MINOR: http-fetch: Extract cookie value even when no cookie name 2020-11-13 16:26:10 +01:00
http_acl.c CLEANUP: acl: don't reference the generic pattern deletion function anymore 2020-11-05 19:27:09 +01:00
http_act.c MEDIUM: http_act: define set-timeout server/tunnel action 2020-12-11 12:01:07 +01:00
http_ana.c BUG/MEDIUM: http-ana: Never for sending data in TUNNEL mode 2020-12-18 15:05:57 +01:00
http_conv.c CLEANUP: assorted typo fixes in the code and comments 2020-07-06 14:34:32 +02:00
http_fetch.c BUG/MINOR: http-fetch: Fix smp_fetch_body() when called from a health-check 2020-11-27 10:30:23 +01:00
http_htx.c BUG/MINOR: http_htx: Fix searching headers by substring 2020-11-21 15:54:26 +01:00
http_rules.c MINOR: actions: Export actions lookup functions 2020-12-02 09:45:18 +01:00
htx.c CLEANUP: assorted typo fixes in the code and comments 2020-07-06 14:34:32 +02:00
lb_chash.c MINOR: lb/chash: use a read lock in chash_get_server_hash() 2020-10-17 20:15:49 +02:00
lb_fas.c MINOR: lb/first: use a read lock in fas_get_next_server() 2020-10-17 19:49:49 +02:00
lb_fwlc.c BUG/MEDIUM: lb-leastconn: Reposition a server using the right eweight 2020-12-14 09:52:34 +01:00
lb_fwrr.c MINOR: backend: replace the lbprm lock with an rwlock 2020-10-17 18:51:41 +02:00
lb_map.c MINOR: lb/map: use seek lock and read locks where appropriate 2020-10-17 19:04:27 +02:00
listener.c MINOR: listener: now use a generic add_listener() function 2020-12-04 15:08:00 +01:00
log.c MINOR: opentracing: add ARGC_OT enum 2020-12-16 15:49:53 +01:00
lru.c MINOR: lru: new function to delete <nb> least recently used keys 2016-01-11 07:31:35 +01:00
mailers.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
map.c MEDIUM: pattern: only match patterns that match the current generation 2020-11-05 19:27:09 +01:00
mqtt.c MINOR: sample: Add converts to parses MQTT messages 2020-11-05 19:27:03 +01:00
mux_fcgi.c MINOR: mux: Add a ctl parameter to get the exit status of the multiplexers 2020-12-04 14:41:49 +01:00
mux_h1.c BUG/MINOR: mux-h1: Don't set CS_FL_EOI too early for protocol upgrade requests 2020-12-18 15:05:57 +01:00
mux_h2.c MINOR: mux: Add a ctl parameter to get the exit status of the multiplexers 2020-12-04 14:41:49 +01:00
mux_pt.c MINOR: connection: make conn_sock_drain() use the control layer's ->drain() 2020-12-11 16:26:01 +01:00
mworker-prog.c REORG: include: move the error reporting functions to from log.h to errors.h 2020-06-11 10:18:59 +02:00
mworker.c MINOR: protocol: register the receiver's I/O handler and not the protocol's 2020-10-15 21:47:56 +02:00
namespace.c REORG: include: move the error reporting functions to from log.h to errors.h 2020-06-11 10:18:59 +02:00
pattern.c BUG/MINOR: pattern: a sample marked as const could be written 2020-11-11 10:43:15 +01:00
payload.c MINOR: config: Deprecate and ignore tune.chksize global option 2020-11-27 10:30:23 +01:00
peers.c MINOR: stream: Pass an optional input buffer when a stream is created 2020-12-04 14:41:48 +01:00
pipe.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
pool.c MEDIUM: pools: call malloc_trim() from pool_gc() 2020-11-05 19:27:08 +01:00
proto_sockpair.c MINOR: protocol: add a pair of check_events/ignore_events functions at the ctrl layer 2020-12-11 17:02:50 +01:00
proto_tcp.c MINOR: protocol: add a pair of check_events/ignore_events functions at the ctrl layer 2020-12-11 17:02:50 +01:00
proto_udp.c MINOR: udp: export udp_suspend_receiver() and udp_resume_receiver() 2020-12-08 18:10:18 +01:00
proto_uxst.c MINOR: protocol: add a pair of check_events/ignore_events functions at the ctrl layer 2020-12-11 17:02:50 +01:00
protocol.c MINOR: protocol: remove the redundant ->sock_domain field 2020-12-08 12:13:54 +01:00
proxy.c MINOR: stream: Add level 7 retries on http error 401, 403 2020-11-23 09:33:14 +01:00
queue.c BUG/MEDIUM: queue: fix unsafe proxy pointer when counting nbpend 2020-10-24 12:57:41 +02:00
raw_sock.c MINOR: raw_sock: Report the number of bytes emitted using the splicing 2020-07-15 14:08:14 +02:00
regex.c OPTIM: regex: PCRE2 use JIT match when JIT optimisation occured. 2020-08-14 07:53:40 +02:00
ring.c CLEANUP: fix all duplicated semicolons 2020-08-10 08:49:38 +02:00
sample.c MINOR: opentracing: add ARGC_OT enum 2020-12-16 15:49:53 +01:00
server.c MEDIUM: cli/ssl: configure ssl on server at runtime 2020-11-18 17:22:28 +01:00
session.c MINOR: session: Add the idle duration field into the session 2020-12-04 14:41:48 +01:00
sha1.c BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
shctx.c REORG: include: split global.h into haproxy/global{,-t}.h 2020-06-11 10:18:58 +02:00
signal.c REORG: include: move the error reporting functions to from log.h to errors.h 2020-06-11 10:18:59 +02:00
sink.c MINOR: stream: Pass an optional input buffer when a stream is created 2020-12-04 14:41:48 +01:00
sock.c MINOR: protocol: add a pair of check_events/ignore_events functions at the ctrl layer 2020-12-11 17:02:50 +01:00
sock_inet.c MINOR: protocol: add a ->set_port() helper to address families 2020-12-04 15:08:00 +01:00
sock_unix.c CLEANUP: protocol: remove the now unused <handler> field of proto_fam->bind() 2020-10-15 21:47:56 +02:00
ssl_ckch.c BUG/MEDIUM: ssl/crt-list: bad behavior with "commit ssl cert" 2020-12-15 15:13:21 +01:00
ssl_crtlist.c MEDIUM: ssl: fatal error with bundle + openssl < 1.1.1 2020-12-04 15:45:02 +01:00
ssl_sample.c BUILD: ssl: use HAVE_OPENSSL_KEYLOG instead of OpenSSL versions 2020-11-03 14:54:15 +01:00
ssl_sock.c BUILD: SSL: fine guard for SSL_CTX_add_server_custom_ext call 2020-12-15 16:13:35 +01:00
ssl_utils.c CLEANUP: ssl: ssl_sock_crt2der semicolon and spaces 2020-08-07 15:38:40 +02:00
stats.c BUG/MEDIUM: stats: prevent crash if counters not alloc with dummy one 2020-11-12 15:16:05 +01:00
stick_table.c BUG/MEDIUM: stick-table: limit the time spent purging old entries 2020-11-03 18:02:42 +01:00
stream.c MINOR: stream: add timeout sample fetches 2020-12-11 12:01:07 +01:00
stream_interface.c MINOR: connection: remove sock-specific code from conn_sock_send() 2020-12-11 16:25:11 +01:00
task.c BUG/MEDIUM: task: close a possible data race condition on a tasklet's list link 2020-11-30 18:17:59 +01:00
tcp_act.c MINOR: connection: make conn_sock_drain() use the control layer's ->drain() 2020-12-11 16:26:01 +01:00
tcp_rules.c MINOR: actions: Export actions lookup functions 2020-12-02 09:45:18 +01:00
tcp_sample.c MINOR: listener: prefer to retrieve the socket's settings via the receiver 2020-09-16 22:08:07 +02:00
tcpcheck.c MINOR: tcpcheck: Only wait for more payload data on HTTP expect rules 2020-12-11 11:48:15 +01:00
thread.c CLEANUP: threads: don't register an initcall when not debugging 2020-10-19 14:08:13 +02:00
time.c CLEANUP: assorted typo fixes in the code and comments 2020-07-06 14:34:32 +02:00
tools.c REORG: connection: move the socket iocb (conn_fd_handler) to sock.c 2020-12-11 16:26:00 +01:00
trace.c BUG/MINOR: trace: Wrong displayed trace level 2020-12-02 17:44:40 +01:00
uri_auth.c CLEANUP: Do not use a fixed type for 'sizeof' in 'calloc' 2020-09-12 20:31:25 +02:00
vars.c MINOR: vars: replace static functions with global ones 2020-12-16 14:20:08 +01:00
version.c BUILD: Fix build by including haproxy/global.h 2020-06-16 23:36:04 +02:00
wdt.c CLEANUP: config: Return ERR_NONE from config callbacks instead of 0 2020-11-13 16:26:10 +01:00
wurfl.c CLEANUP: config: Return ERR_NONE from config callbacks instead of 0 2020-11-13 16:26:10 +01:00
xprt_handshake.c REORG: include: move stream_interface.h to haproxy/stream_interface{,-t}.h 2020-06-11 10:18:58 +02:00
xxhash.c BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00