haproxy/src
Olivier Houchard c2aae74f01 MEDIUM: ssl: Handle early data with OpenSSL 1.1.1
When compiled with Openssl >= 1.1.1, before attempting to do the handshake,
try to read any early data. If any early data is present, then we'll create
the session, read the data, and handle the request before we're doing the
handshake.

For this, we add a new connection flag, CO_FL_EARLY_SSL_HS, which is not
part of the CO_FL_HANDSHAKE set, allowing to proceed with a session even
before an SSL handshake is completed.

As early data do have security implication, we let the origin server know
the request comes from early data by adding the "Early-Data" header, as
specified in this draft from the HTTP working group :

    https://datatracker.ietf.org/doc/html/draft-ietf-httpbis-replay
2017-10-27 10:54:05 +02:00
..
51d.c BUILD/MINOR: 51d: fix warning when building with 51Degrees release version 3.2.12.12 2017-10-05 11:23:38 +02:00
acl.c BUG/MEDIUM: map/acl: fix unwanted flags inheritance. 2017-07-04 10:45:53 +02:00
applet.c MINOR: applet: Check applets_active_queue before processing applets queue 2017-09-05 10:21:29 +02:00
arg.c BUG/MEDIUM: arg: ensure that we properly unlink unresolved arguments on error 2017-04-13 12:20:52 +02:00
auth.c CLEANUP: auth: use the build options list to report its support 2016-12-21 21:30:54 +01:00
backend.c MINOR: backend: use conn_full_close() instead of conn_force_close() 2017-10-22 09:54:18 +02:00
base64.c [MINOR] add encode/decode function for 30-bit integers from/to base64 2010-10-30 19:04:33 +02:00
buffer.c MINOR: buffers: Move swap_buffer into buffer.c and add deinit_buffer function 2017-09-05 10:34:30 +02:00
cfgparse.c MEDIUM: cfgparse: post parsing registration 2017-10-27 10:15:56 +02:00
channel.c MINOR: channel: make the channel be a const in all {ci,co}_get* functions 2017-10-19 15:01:08 +02:00
checks.c BUG/MINOR: checks: Don't forget to release the connection on error case. 2017-10-25 16:01:01 +02:00
chunk.c MINOR: chunks: Use dedicated function to init/deinit trash buffers 2017-09-05 10:22:20 +02:00
cli.c REORG: channel: finally rename the last bi_* / bo_* functions 2017-10-19 15:01:08 +02:00
compression.c MINOR: compression: fix -vv output without zlib/slz 2017-01-11 16:11:11 +01:00
connection.c MINOR: connection: add flag CO_FL_WILL_UPDATE to indicate when updates are granted 2017-10-25 15:52:41 +02:00
da.c CLEANUP: da: move global settings out of the global section 2016-12-21 21:30:54 +01:00
dns.c REORG: channel: finally rename the last bi_* / bo_* functions 2017-10-19 15:01:08 +02:00
ev_epoll.c MINOR: polling: Use fd_update_events to update events seen for a fd 2017-09-05 15:45:11 +02:00
ev_kqueue.c MINOR: polling: Use fd_update_events to update events seen for a fd 2017-09-05 15:45:11 +02:00
ev_poll.c MINOR: polling: Use fd_update_events to update events seen for a fd 2017-09-05 15:45:11 +02:00
ev_select.c MINOR: polling: Use fd_update_events to update events seen for a fd 2017-09-05 15:45:11 +02:00
fd.c MINOR: fd: Move (de)allocation of fdtab and fdinfo in (de)init_pollers 2017-09-05 10:49:45 +02:00
filters.c BUG/MEDIUM: filters: Be sure to call flt_end_analyze for both channels 2017-07-06 23:07:36 +02:00
flt_http_comp.c BUG/MINOR: compression: Check response headers before http-response rules eval 2017-09-15 18:42:23 +02:00
flt_spoe.c MEDIUM: cfgparse: post section callback 2017-10-27 10:14:51 +02:00
flt_trace.c MINOR: filters: Add check_timeouts callback to handle timers expiration on streams 2016-11-21 15:29:58 +01:00
freq_ctr.c BUG/MINOR: time: frequency counters are not totally accurate 2012-12-29 21:50:07 +01:00
frontend.c MINOR: frontend: don't retrieve ALPN on the critical path 2017-09-15 11:49:27 +02:00
h1.c MEDIUM: h1: reimplement the http/1 response parser for the gateway 2017-10-22 09:54:15 +02:00
haproxy.c MAJOR: servers: propagate server status changes asynchronously. 2017-10-13 12:00:27 +02:00
hash.c MINOR: hash: add new function hash_crc32 2015-01-20 19:48:05 +01:00
hdr_idx.c OPTIM/MINOR: move the hdr_idx pools out of the proxy struct 2011-10-24 18:15:04 +02:00
hlua.c REORG: channel: finally rename the last bi_* / bo_* functions 2017-10-19 15:01:08 +02:00
hlua_fcn.c MINOR: hlua: Add regex class 2017-10-27 10:30:44 +02:00
i386-linux-vsys.c MEDIUM: listener: add support for linux's accept4() syscall 2012-10-08 20:11:03 +02:00
lb_chash.c MINOR: server: Handle weight increase in consistent hash. 2017-10-17 18:08:38 +02:00
lb_fas.c MEDIUM: check: server states and weight propagation re-work 2017-09-05 15:23:16 +02:00
lb_fwlc.c MEDIUM: check: server states and weight propagation re-work 2017-09-05 15:23:16 +02:00
lb_fwrr.c MEDIUM: check: server states and weight propagation re-work 2017-09-05 15:23:16 +02:00
lb_map.c MEDIUM: check: server states and weight propagation re-work 2017-09-05 15:23:16 +02:00
listener.c MEDIUM: session: count the frontend's connections at a single place 2017-09-15 11:49:52 +02:00
log.c BUG/MINOR: log: fixing small memory leak in error code path. 2017-09-21 17:44:31 +02:00
lru.c MINOR: lru: new function to delete <nb> least recently used keys 2016-01-11 07:31:35 +01:00
mailers.c MEDIUM: Add parsing of mailers section 2015-02-03 00:24:16 +01:00
map.c REORG: channel: finally rename the last bi_* / bo_* functions 2017-10-19 15:01:08 +02:00
memory.c REORG: channel: finally rename the last bi_* / bo_* functions 2017-10-19 15:01:08 +02:00
namespace.c CLEANUP: namespaces: use the build options list to report it 2016-12-21 21:30:54 +01:00
pattern.c BUG/MEDIUM: map/acl: fix unwanted flags inheritance. 2017-07-04 10:45:53 +02:00
payload.c MINOR: payload: add new sample fetch functions to process distcc protocol 2017-10-13 11:47:19 +02:00
peers.c REORG: channel: finally rename the last bi_* / bo_* functions 2017-10-19 15:01:08 +02:00
pipe.c BUILD/MINOR: silent a build warning in src/pipe.c (fcntl) 2011-10-24 17:09:22 +02:00
proto_http.c MEDIUM: ssl: Handle early data with OpenSSL 1.1.1 2017-10-27 10:54:05 +02:00
proto_tcp.c MEDIUM: ssl: Handle early data with OpenSSL 1.1.1 2017-10-27 10:54:05 +02:00
proto_udp.c CLEANUP: fix inconsistency between fd->iocb, proto->accept and accept() 2016-04-14 11:18:22 +02:00
proto_uxst.c MINOR: unix: use conn_full_close() instead of conn_force_close() 2017-10-22 09:54:17 +02:00
protocol.c BUILD: protocol: fix some build errors on OpenBSD 2016-08-10 19:31:58 +02:00
proxy.c REORG: channel: finally rename the last bi_* / bo_* functions 2017-10-19 15:01:08 +02:00
queue.c MEDIUM: check: server states and weight propagation re-work 2017-09-05 15:23:16 +02:00
raw_sock.c MINOR: raw_sock: make use of CO_FL_WILL_UPDATE 2017-10-25 15:52:41 +02:00
rbtree.c [MINOR] imported the rbtree function from Linux kernel 2007-01-07 02:12:57 +01:00
regex.c MEDIUM: regex: pcre2 support 2016-12-28 12:51:51 +01:00
sample.c MINOR: sample: add the hex2i converter 2017-10-25 04:46:08 +02:00
server.c BUG/MEDIUM: server: Allocate tmptrash before using it. 2017-10-24 19:54:25 +02:00
session.c MEDIUM: ssl: Handle early data with OpenSSL 1.1.1 2017-10-27 10:54:05 +02:00
sha1.c IMPORT: sha1: import SHA1 functions 2017-10-25 04:45:48 +02:00
shctx.c MEDIUM: ssl: Add support for OpenSSL 1.1.0 2016-11-08 20:54:41 +01:00
signal.c MEDIUM: mworker: handle reload and signals 2017-06-02 10:56:32 +02:00
ssl_sock.c MEDIUM: ssl: Handle early data with OpenSSL 1.1.1 2017-10-27 10:54:05 +02:00
standard.c CONTRIB: trace: add the possibility to place trace calls in the code 2017-10-24 19:54:25 +02:00
stats.c BUG/MEDIUM: log: check result details truncated. 2017-10-19 18:51:32 +02:00
stick_table.c REORG: channel: finally rename the last bi_* / bo_* functions 2017-10-19 15:01:08 +02:00
stream.c BUG/MEDIUM: prevent buffers being overwritten during build_logline() execution 2017-10-27 10:02:33 +02:00
stream_interface.c MINOR: stream-int: stop checking for useless connection flags in chk_snd_conn 2017-10-25 14:24:48 +02:00
task.c MINOR: tasks: Move Lua notification from Lua to tasks 2017-09-11 18:59:40 +02:00
tcp_rules.c MINOR: tcp-rules: check that the listener exists before updating its counters 2016-12-22 23:26:37 +01:00
time.c CLEANUP: time: curr_sec_ms doesn't need to be exported 2017-03-29 15:24:33 +02:00
trace.c CONTRIB: trace: try to display the function's return value on exit 2017-10-24 19:54:25 +02:00
uri_auth.c CLEANUP: uniformize last argument of malloc/calloc 2016-04-03 14:17:42 +02:00
vars.c MINOR: samples: Don't allocate memory for SMP_T_METH sample when method is known 2017-07-24 17:16:11 +02:00
wurfl.c CLEANUP: wurfl: move global settings out of the global section 2016-12-21 21:30:54 +01:00
xxhash.c CLEANUP: remove unneeded casts 2016-04-03 14:17:42 +02:00