haproxy/src
Willy Tarreau 7f26391bc5 BUG/MINOR: connection: make sure to correctly tag local PROXY connections
As reported in issue #511, when sending an outgoing local connection
(e.g. health check) we must set the "local" tag and not a "proxy" tag.
The issue comes from historic support on v1 which required to steal the
address on the outgoing connection for such ones, creating confusion in
the v2 code which believes it sees the incoming connection.

In order not to risk to break existing setups which might rely on seeing
the LB's address in the connection's source field, let's just change the
connection type from proxy to local and keep the addresses. The protocol
spec states that for local, the addresses must be ignored anyway.

This problem has always existed, this can be backported as far as 1.5,
though it's probably not a good idea to change such setups, thus maybe
2.0 would be more reasonable.
2020-02-25 10:31:37 +01:00
..
51d.c BUG/MINOR: 51d: Fix bug when HTX is enabled 2020-01-20 14:01:52 +01:00
acl.c MINOR: sample: make sample_parse_expr() able to return an end pointer 2020-02-14 19:02:06 +01:00
action.c MINOR: tcp-rules: Make tcp-request capture a custom action 2020-01-20 15:18:45 +01:00
activity.c CLEANUP: cli: replace all occurrences of manual handling of return messages 2019-08-09 11:26:10 +02:00
applet.c BUG/MEDIUM: applet: always check a fast running applet's activity before killing 2019-10-11 16:05:57 +02:00
arg.c BUG/MINOR: arg: fix again incorrect argument length check 2020-02-16 10:49:55 +01:00
auth.c BUILD/MINOR: auth: enabling for osx 2019-09-08 12:20:13 +02:00
backend.c BUG/MEDIUM: connections: Don't forget to unlock when killing a connection. 2020-01-31 17:25:37 +01:00
base64.c BUG/MINOR: base64: dec func ignores padding for output size checking 2019-01-14 19:32:15 +01:00
buffer.c BUILD: general: always pass unsigned chars to is* functions 2020-02-25 08:16:33 +01:00
cache.c CLEANUP: cache: use read_u32/write_u32 to access the cache entry's hash 2020-02-25 09:35:07 +01:00
calltrace.c REORG: trace: rename trace.c to calltrace.c and mention it's not thread-safe 2019-08-22 20:21:00 +02:00
cfgparse-global.c MEDIUM: init: set NO_NEW_PRIVS by default when supported 2019-12-06 17:20:26 +01:00
cfgparse-listen.c BUILD: general: always pass unsigned chars to is* functions 2020-02-25 08:16:33 +01:00
cfgparse.c BUILD: general: always pass unsigned chars to is* functions 2020-02-25 08:16:33 +01:00
channel.c BUG/MINOR: channel: inject output data at the end of output 2020-01-07 10:51:15 +01:00
checks.c MINOR: checks: do not call conn_xprt_stop_send() anymore 2020-02-21 11:21:12 +01:00
chunk.c BUILD: general: always pass unsigned chars to is* functions 2020-02-25 08:16:33 +01:00
cli.c CLEANUP: cli: deduplicate the code in _getsocks 2020-01-16 16:26:41 +01:00
compression.c MINOR: time: move the cpu, mono, and idle time to thread_info 2019-05-20 21:14:14 +02:00
connection.c BUG/MINOR: connection: make sure to correctly tag local PROXY connections 2020-02-25 10:31:37 +01:00
da.c REORG: proto_htx: Move HTX analyzers & co to http_ana.{c,h} files 2019-07-19 09:24:12 +02:00
debug.c MEDIUM: tasks: implement 3 different tasklet classes with their own queues 2020-01-30 18:59:33 +01:00
dict.c BUG/MINOR: dict: race condition fix when inserting dictionary entries. 2019-06-11 09:54:12 +02:00
dns.c MINOR: sample: make sample_parse_expr() able to return an end pointer 2020-02-14 19:02:06 +01:00
ev_epoll.c BUILD: remove obsolete support for -mregparm / USE_REGPARM 2020-02-25 07:41:47 +01:00
ev_evports.c BUILD: remove obsolete support for -mregparm / USE_REGPARM 2020-02-25 07:41:47 +01:00
ev_kqueue.c BUILD: remove obsolete support for -mregparm / USE_REGPARM 2020-02-25 07:41:47 +01:00
ev_poll.c BUILD: remove obsolete support for -mregparm / USE_REGPARM 2020-02-25 07:41:47 +01:00
ev_select.c BUILD: remove obsolete support for -mregparm / USE_REGPARM 2020-02-25 07:41:47 +01:00
fcgi-app.c BUILD: general: always pass unsigned chars to is* functions 2020-02-25 08:16:33 +01:00
fcgi.c BUILD: general: always pass unsigned chars to is* functions 2020-02-25 08:16:33 +01:00
fd.c CLEANUP: fd: use a union in fd_rm_from_fd_list() to shut aliasing warnings 2020-02-25 09:25:53 +01:00
filters.c BUG/MINOR: filters: Count HTTP headers as filtered data but don't forward them 2020-02-18 11:19:57 +01:00
flt_http_comp.c CLEANUP: compression: remove unused deinit_comp_ctx section 2020-01-15 10:58:17 +01:00
flt_spoe.c BUILD: general: always pass unsigned chars to is* functions 2020-02-25 08:16:33 +01:00
flt_trace.c BUILD: general: always pass unsigned chars to is* functions 2020-02-25 08:16:33 +01:00
freq_ctr.c BUG/MAJOR: threads/freq_ctr: use a memory barrier to detect changes 2017-10-31 18:01:18 +01:00
frontend.c MINOR: frontend: switch from conn->addr.{from,to} to conn->{src,dst} 2019-07-19 13:50:09 +02:00
h1_htx.c MEDIUM: h1-htx: Add HTX EOM block when the message is in H1_MSG_DONE state 2019-12-11 16:46:16 +01:00
h1.c CLEANUP: http/h1: rely on HA_UNALIGNED_LE instead of checking for CPU families 2020-02-21 16:32:57 +01:00
h2.c BUG/MAJOR: h2: make header field name filtering stronger 2019-11-25 11:11:32 +01:00
haproxy.c BUILD: general: always pass unsigned chars to is* functions 2020-02-25 08:16:33 +01:00
hash.c BUG/MAJOR: hashes: fix the signedness of the hash inputs 2020-01-16 08:23:42 +01:00
hathreads.c BUILD/MEDIUM: threads: rename thread_info struct to ha_thread_info 2019-10-17 07:15:17 +02:00
hlua_fcn.c CLEANUP: lua: fix aliasing issues in the address matching code 2020-02-25 10:24:51 +01:00
hlua.c BUILD: general: always pass unsigned chars to is* functions 2020-02-25 08:16:33 +01:00
hpack-dec.c CLEANUP: hpack: remove a redundant test in the decoder 2020-02-05 15:39:08 +01:00
hpack-enc.c BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
hpack-huff.c BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
hpack-tbl.c BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
http_acl.c MEDIUM: init: convert all trivial registration calls to initcalls 2018-11-26 19:50:32 +01:00
http_act.c BUG/MINOR: http: http-request replace-path duplicates the query string 2020-02-21 11:52:14 +01:00
http_ana.c CLEANUP: cache: use read_u32/write_u32 to access the cache entry's hash 2020-02-25 09:35:07 +01:00
http_conv.c MINOR: sample: add us/ms support to date/http_date 2019-10-31 08:47:31 +01:00
http_fetch.c CLEANUP: sample: use iststop instead of a for loop 2020-02-21 11:53:18 +01:00
http_htx.c BUILD: general: always pass unsigned chars to is* functions 2020-02-25 08:16:33 +01:00
http_rules.c MEDIUM: http: Add a ruleset evaluated on all responses just before forwarding 2020-02-06 14:55:34 +01:00
http.c CLEANUP: http/h1: rely on HA_UNALIGNED_LE instead of checking for CPU families 2020-02-21 16:32:57 +01:00
htx.c MINOR: htx: Add a function to append an HTX message to another one 2020-02-06 14:54:47 +01:00
i386-linux-vsys.c
lb_chash.c BUG/MEDIUM: lb-chash: Ensure the tree integrity when server weight is increased 2019-08-01 11:35:29 +02:00
lb_fas.c BUG/MEDIUM: lb_fas: Don't test the server's lb_tree from outside the lock 2019-07-05 14:26:15 +02:00
lb_fwlc.c BUG/MINOR: lb/leastconn: ignore the server weights for empty servers 2019-09-06 17:13:44 +02:00
lb_fwrr.c BUG/MAJOR: lb/threads: make sure the avoided server is not full on second pass 2019-05-27 10:29:59 +02:00
lb_map.c MEDIUM: lb/threads: Use the new _HA_ATOMIC_* macros. 2019-03-11 17:02:38 +01:00
listener.c BUG/MEDIUM: listener: only consider running threads when resuming listeners 2020-02-12 10:21:33 +01:00
log.c BUILD: general: always pass unsigned chars to is* functions 2020-02-25 08:16:33 +01:00
lru.c
mailers.c
map.c CLEANUP: cli: replace all occurrences of manual handling of return messages 2019-08-09 11:26:10 +02:00
memory.c BUG/MEDIUM: memory: Add a rwlock before freeing memory. 2020-02-01 18:08:34 +01:00
mux_fcgi.c BUG/MINOR: mux: do not call conn_xprt_stop_recv() on buffer shortage 2020-02-21 11:21:12 +01:00
mux_h1.c MINOR: mux-h1: pass CO_RFL_READ_ONCE to the lower layers when relevant 2020-02-21 11:38:50 +01:00
mux_h2.c BUG/MINOR: mux: do not call conn_xprt_stop_recv() on buffer shortage 2020-02-21 11:21:12 +01:00
mux_pt.c MINOR: connection: remove checks for CO_FL_HANDSHAKE before I/O 2020-01-23 17:30:42 +01:00
mworker-prog.c MEDIUM: mworker-prog: Add user/group options to program section 2019-07-15 16:43:16 +02:00
mworker.c BUG/MINOR: mworker: properly pass SIGTTOU/SIGTTIN to workers 2019-12-11 14:26:53 +01:00
namespace.c BUG/MINOR: namespace: avoid closing fd when socket failed in my_socketat 2020-02-14 04:23:08 +01:00
pattern.c MINOR: pattern: fix all remaining strict aliasing issues 2020-02-25 10:24:51 +01:00
payload.c REORG: proto_htx: Move HTX analyzers & co to http_ana.{c,h} files 2019-07-19 09:24:12 +02:00
peers.c CLEANUP: stick-tables: use read_u32() to display a node's key 2020-02-25 09:41:22 +01:00
pipe.c BUG/MEDIUM: pipe/thread: fix atomicity of pipe counters 2020-01-30 09:15:37 +01:00
proto_sockpair.c MINOR: tcp/uxst/sockpair: use fd_want_send() instead of conn_xprt_want_send() 2020-02-21 11:21:12 +01:00
proto_tcp.c MINOR: tcp/uxst/sockpair: use fd_want_send() instead of conn_xprt_want_send() 2020-02-21 11:21:12 +01:00
proto_udp.c BUG/MEDIUM: proto_udp/threads: recv() and send() must not be exclusive. 2019-12-10 19:09:15 +01:00
proto_uxst.c MINOR: tcp/uxst/sockpair: use fd_want_send() instead of conn_xprt_want_send() 2020-02-21 11:21:12 +01:00
protocol.c BUG/MEDIUM: protocols: add a global lock for the init/deinit stuff 2019-07-24 16:45:02 +02:00
proxy.c MEDIUM: http: Add a ruleset evaluated on all responses just before forwarding 2020-02-06 14:55:34 +01:00
queue.c MINOR: sample: make sample_parse_expr() able to return an end pointer 2020-02-14 19:02:06 +01:00
raw_sock.c MINOR: connection: introduce a new receive flag: CO_RFL_READ_ONCE 2020-02-21 11:22:45 +01:00
regex.c MEDIUM: regex: modify regex_comp() to atomically allocate/free the my_regex struct 2019-05-07 06:58:15 +02:00
ring.c MINOR: ring: make the parse function automatically set the handler/release 2019-11-15 15:48:12 +01:00
sample.c CLEANUP: sample: use read_u64() in ipmask() to apply an IPv6 mask 2020-02-25 10:24:14 +01:00
server.c BUILD: general: always pass unsigned chars to is* functions 2020-02-25 08:16:33 +01:00
session.c MEDIUM: connection: use CO_FL_WAIT_XPRT more consistently than L4/L6/HANDSHAKE 2020-01-23 16:34:26 +01:00
sha1.c BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
shctx.c BUG/MEDIUM: shctx: make sure to keep all blocks aligned 2020-02-21 13:45:58 +01:00
signal.c CLEANUP: Fix a typo in the signal subsystem 2018-12-02 18:39:52 +01:00
sink.c MINOR: ring: make the parse function automatically set the handler/release 2019-11-15 15:48:12 +01:00
ssl_sock.c BUG/MEDIUM: ssl: fix several bad pointer aliases in a few sample fetch functions 2020-02-25 08:59:23 +01:00
standard.c BUILD: general: always pass unsigned chars to is* functions 2020-02-25 08:16:33 +01:00
stats.c BUILD: general: always pass unsigned chars to is* functions 2020-02-25 08:16:33 +01:00
stick_table.c CLEANUP: stick-tables: use read_u32() to display a node's key 2020-02-25 09:41:22 +01:00
stream_interface.c MEDIUM: connection: remove the intermediary polling state from the connection 2020-02-21 11:21:12 +01:00
stream.c BUG/MINOR: stream: Don't incr frontend cum_req counter when stream is closed 2020-02-18 11:56:22 +01:00
task.c MINOR: task: don't set TASK_RUNNING on tasklets 2020-01-31 18:37:03 +01:00
tcp_rules.c MINOR: sample: make sample_parse_expr() able to return an end pointer 2020-02-14 19:02:06 +01:00
time.c BUILD: remove obsolete support for -mregparm / USE_REGPARM 2020-02-25 07:41:47 +01:00
trace.c BUG/MEDIUM: trace: fix a typo causing an incorrect startup error 2019-11-25 19:47:22 +01:00
uri_auth.c MINOR: stats: replace the ST_* uri_auth flags with STAT_* 2019-10-10 11:30:07 +02:00
vars.c BUILD: general: always pass unsigned chars to is* functions 2020-02-25 08:16:33 +01:00
version.c MINOR: version: make the version strings variables, not constants 2019-10-16 09:56:57 +02:00
wdt.c BUILD/MEDIUM: threads: rename thread_info struct to ha_thread_info 2019-10-17 07:15:17 +02:00
wurfl.c BUG/MINOR: WURFL: fix send_log() function arguments 2019-10-15 10:47:31 +02:00
xprt_handshake.c MINOR: connection: remove CO_FL_SSL_WAIT_HS from CO_FL_HANDSHAKE 2020-01-23 16:34:26 +01:00
xxhash.c BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00