haproxy/src
Aurelien DARRAGON c7abe7778e MEDIUM: log: postpone the decision to send or not log with empty messages
As reported by Nick Ramirez in GH #2891, it is currently not possible to
use log-profile without a log-format set on the proxy.

This is due to historical reason, because all log sending functions avoid
trying to send a log with empty message. But now with log-profile which
can override log-format, it is possible that some loggers may actually
end up generating a valid log message that should be sent! Yet from the
upper logging functions we don't know about that because loggers are
evaluated in lower API functions.

Thus, to avoid skipping potentially valid messages (thanks to log-profile
overrides), in this patch we postpone the decision to send or not empty
log messages in lower log API layer, ie: _process_send_log_final(), once
the log-profile settings were evaluated for a given logger.

A known side-effect of this change is that fe->log_count statistic may
be increased even if no log message is sent because the message was empty
and even the log-profile didn't help to produce a non empty log message.
But since configurations lacking proxy log-format are not supposed to be
used without log-profile (+ log steps combination) anyway it shouldn't be
an issue.
2025-03-05 15:38:52 +01:00
..
acl.c MINOR: acl: export find_acl_default() 2024-11-18 15:15:54 +01:00
action.c
activity.c BUILD: activity/memprofile: fix a build warning in the posix_memalign handler 2024-11-22 09:42:49 +01:00
applet.c BUG/MEDIUM: applet: Don't handle EOI/EOS/ERROR is applet is waiting for room 2025-02-20 10:00:32 +01:00
arg.c MINOR: arg: add an argument type for identifier 2024-10-18 14:30:24 +02:00
auth.c BUG/MINOR: auth: Fix a leak on error path when parsing user's groups 2025-02-06 16:55:37 +01:00
backend.c BUG/MINOR: server: check for either proxy-protocol v1 or v2 to send hedaer 2025-03-03 04:05:47 +01:00
base64.c
buf.c CLEANUP: buffers: simplify b_get_varint() 2024-10-18 18:28:39 +02:00
cache.c CLEANUP: cache: use ASSUME_NONNULL() instead of DISGUISE() 2024-12-17 17:42:11 +01:00
calltrace.c
cbuf.c
cebtree-prv.h IMPORT: import cebtree (compact elastic binary trees) 2024-09-15 23:44:59 +02:00
cebu32_tree.c IMPORT: import cebtree (compact elastic binary trees) 2024-09-15 23:44:59 +02:00
cebu64_tree.c IMPORT: import cebtree (compact elastic binary trees) 2024-09-15 23:44:59 +02:00
cebua_tree.c IMPORT: import cebtree (compact elastic binary trees) 2024-09-15 23:44:59 +02:00
cebub_tree.c IMPORT: import cebtree (compact elastic binary trees) 2024-09-15 23:44:59 +02:00
cebuib_tree.c IMPORT: import cebtree (compact elastic binary trees) 2024-09-15 23:44:59 +02:00
cebuis_tree.c IMPORT: import cebtree (compact elastic binary trees) 2024-09-15 23:44:59 +02:00
cebul_tree.c IMPORT: import cebtree (compact elastic binary trees) 2024-09-15 23:44:59 +02:00
cebus_tree.c IMPORT: import cebtree (compact elastic binary trees) 2024-09-15 23:44:59 +02:00
cfgcond.c REORG: version: move the remaining BUILD_* stuff from haproxy.c to version.c 2025-01-20 17:53:55 +01:00
cfgdiag.c
cfgparse-global.c MEDIUM: connections: Allow taking over connections from other tgroups. 2025-02-26 13:00:18 +01:00
cfgparse-listen.c CLEANUP: log: removing "log-balance" references 2025-03-05 15:38:34 +01:00
cfgparse-quic.c BUILD: quic: fix overflow in global tune 2025-01-30 18:12:53 +01:00
cfgparse-ssl.c MEDIUM: ssl/crtlist: "crt" keyword in frontend 2025-02-17 18:26:37 +01:00
cfgparse-tcp.c BUG/MINOR: cfgparse-tcp: handle a possible strdup() failure 2025-01-02 14:31:07 +01:00
cfgparse-unix.c
cfgparse.c BUG/MINOR: cfgparse: fix NULL ptr dereference in cfg_parse_peers 2025-02-20 17:10:26 +01:00
channel.c OPTIM: channel: speed up co_getline()'s search of the end of line 2024-09-30 11:36:39 +02:00
check.c MINOR: proxies/servers: Calculate queueslength and use it. 2025-01-28 12:49:41 +01:00
chunk.c BUG/MEDIUM: chunk: make sure to flush the trash pool before resizing 2025-01-29 17:55:18 +01:00
cli.c BUG/MINOR: cli: Wait for the last ACK when FDs are xferred from the old worker 2025-02-17 15:31:07 +01:00
clock.c MINOR: clock: always use atomic ops for global_now_ms 2025-02-21 11:22:35 +01:00
compression.c BUG/MINOR: compression: handle a possible strdup() failure 2025-01-02 14:31:07 +01:00
connection.c MEDIUM: servers: Add strict-maxconn. 2025-02-26 13:00:18 +01:00
cpuset.c CLEANUP: Reapply xalloc_cast.cocci 2024-04-02 07:27:33 +02:00
debug.c DEBUG: init: add a way to register functions for unit tests 2025-03-03 12:43:32 +01:00
dgram.c MINOR: cfgparse: parse tune.{rcvbuf,sndbuf}.{frontend,backend} as sizes 2024-11-18 18:50:02 +01:00
dict.c
dns_ring.c MAJOR: import: update mt_list to support exponential back-off (try #2) 2024-07-09 16:46:38 +02:00
dns.c MEDIUM: socket: always properly use the sock_domain for requested families 2024-08-21 17:36:58 +02:00
dynbuf.c MINOR: cfgparse: parse tune.bufsize.small as a size 2024-11-18 19:07:05 +01:00
eb32sctree.c
eb32tree.c
eb64tree.c
ebimtree.c
ebistree.c
ebmbtree.c
ebpttree.c
ebsttree.c
ebtree.c
errors.c MEDIUM: errors: get rid of shm_open() 2025-01-07 16:42:38 +01:00
ev_epoll.c MEDIUM: pollers: Drop fd events after a takeover to another tgid. 2025-02-26 13:00:18 +01:00
ev_evports.c MEDIUM: pollers: Drop fd events after a takeover to another tgid. 2025-02-26 13:00:18 +01:00
ev_kqueue.c MEDIUM: pollers: Drop fd events after a takeover to another tgid. 2025-02-26 13:00:18 +01:00
ev_poll.c DEBUG: pollers/fd: add thread id suffix to per-thread memory areas name hints 2024-05-24 12:07:18 +02:00
ev_select.c DEBUG: pollers/fd: add thread id suffix to per-thread memory areas name hints 2024-05-24 12:07:18 +02:00
event_hdl.c BUG/MEDIUM: event_hdl: fix uninitialized value in async mode when no data is provided 2024-11-29 10:18:07 +01:00
extcheck.c BUG/MEDIUM: checks: make sure to always apply offsets to now_ms in expiration 2024-11-15 15:39:00 +01:00
fcgi-app.c CLEANUP: tree-wide: define and use acl_match_cond() helper 2025-01-27 11:11:43 +01:00
fcgi.c
fd.c MEDIUM: connections: Allow taking over connections from other tgroups. 2025-02-26 13:00:18 +01:00
filters.c BUG/MEDIUM: filters: Handle filters registered on data with no payload callback 2025-02-17 16:16:29 +01:00
fix.c
flt_bwlim.c MEDIUM: bwlim: Use a read-lock on the sticky session to apply a shared limit 2024-09-02 15:50:25 +02:00
flt_http_comp.c MINOR: compression: Introduce minimum size 2025-02-22 11:32:40 +01:00
flt_spoe.c MINOR: flt-spoe: Report end of input immediately after applet init 2025-02-06 11:19:32 +01:00
flt_trace.c BUG/MINOR: flt-trace: Support only one name option 2025-02-06 17:01:15 +01:00
freq_ctr.c MINOR: freq_ctr: provide non-blocking read functions 2025-02-21 18:26:29 +01:00
frontend.c MINOR: protocol: create abnsz socket address family 2024-10-29 12:14:50 +01:00
guid.c BUG/MINOR: guid/server: ensure thread-safety on GUID insert/delete 2024-11-07 18:17:03 +01:00
h1_htx.c BUG/MINOR: fcgi: Don't set the status to 302 if it is already set 2025-02-17 16:37:53 +01:00
h1.c MINOR: proxy: Rename accept-invalid-http-* options 2024-09-16 22:55:25 +02:00
h2.c BUG/MINOR: h2: always trim leading and trailing LWS in header values 2025-02-24 09:39:57 +01:00
h3_stats.c MINOR: h3/qpack: adjust naming for errors 2024-05-16 10:31:17 +02:00
h3.c CLEANUP: h3: fix documentation of h3_rcv_buf() 2025-02-27 17:31:40 +01:00
haproxy.c DEBUG: init: add a way to register functions for unit tests 2025-03-03 12:43:32 +01:00
hash.c
hlua_fcn.c MINOR: proxies/servers: Calculate queueslength and use it. 2025-01-28 12:49:41 +01:00
hlua.c MINOR: hlua: rename "tune.lua.preserve-smp-bool" to "tune.lua.bool-sample-conversion" 2024-12-20 17:34:05 +01:00
hpack-dec.c
hpack-enc.c
hpack-huff.c
hpack-tbl.c
hq_interop.c BUG/MINOR: hq-interop: fix leak in case of rcv_buf early return 2025-02-28 17:37:00 +01:00
http_acl.c
http_act.c MINOR: pattern: split pat_ref_set() 2024-11-26 16:12:05 +01:00
http_ana.c MEDIUM: stream: interrupt costly rulesets after too many evaluations 2025-02-03 17:09:48 +01:00
http_client.c BUG/MEDIUM: mworker/httpclient: initialization skipped by accident in mworker mode 2024-10-17 12:16:35 +02:00
http_conv.c MINOR: http-conv: Remove unreachable goto statement in sample_conv_q_preferred 2024-11-06 10:06:52 +01:00
http_ext.c CLEANUP: http_ext: remove useless BUG_ON() in http_handle_xot_header() 2024-10-17 17:25:06 +02:00
http_fetch.c BUG/MINOR: http-fetch: Ignore empty argument string for query() 2024-12-11 10:00:01 +01:00
http_htx.c MINOR: config: Alert about extra arguments for errorfile and errorloc 2025-01-03 10:10:09 +01:00
http_rules.c MINOR: http-ana: Add support for "set-cookie-fmt" option to redirect rules 2024-11-19 15:20:02 +01:00
http.c MINOR: http: Add support for HTTP 414/431 status codes 2024-11-19 15:29:40 +01:00
htx.c MEDIUM: htx: prevent <mark> to copy incomplete headers in htx_xfer_blks() 2025-01-31 15:51:51 +01:00
init.c
jws.c MINOR: jws: conversion to NIST curves name 2025-03-03 12:43:32 +01:00
jwt.c BUG/MEDIUM: jwt: Clear SSL error queue on error when checking the signature 2024-07-26 16:59:00 +02:00
lb_chash.c MINOR: proxies/servers: Calculate queueslength and use it. 2025-01-28 12:49:41 +01:00
lb_fas.c MINOR: proxies/servers: Calculate queueslength and use it. 2025-01-28 12:49:41 +01:00
lb_fwlc.c MAJOR: leastconn: postpone the server's repositioning under contention 2025-02-12 11:48:10 +01:00
lb_fwrr.c MINOR: proxies/servers: Calculate queueslength and use it. 2025-01-28 12:49:41 +01:00
lb_map.c MINOR: proxies/servers: Calculate queueslength and use it. 2025-01-28 12:49:41 +01:00
lb_ss.c MINOR: lbprm: implement true "sticky" balance algo 2024-03-29 17:08:37 +01:00
limits.c REORG: startup: move nofile limit checks in limits.c 2024-12-16 10:44:01 +01:00
linuxcap.c MINOR: startup: use global progname variable 2024-11-21 19:55:21 +01:00
listener.c MINOR: quic: remove unused pacing burst in bind_conf/quic_cc_path 2025-01-23 17:40:48 +01:00
log.c MEDIUM: log: postpone the decision to send or not log with empty messages 2025-03-05 15:38:52 +01:00
lru.c BUG/MINOR: lru: fix the standalone test case for invalid revision 2024-04-13 08:43:12 +02:00
mailers.c BUG/MEDIUM: mailers: make sure to always apply offsets to now_ms in expiration 2024-11-15 15:39:58 +01:00
map.c MINOR: pattern: split pat_ref_set() 2024-11-26 16:12:05 +01:00
mjson.c
mqtt.c CLEANUP: mqtt: fix typo in MQTT_REMAINING_LENGHT_MAX_SIZE 2024-08-30 14:58:59 +02:00
mux_fcgi.c BUG/MEDIUM: mux-fcgi: Try to fully fill demux buffer on receive if not empty 2025-02-28 16:07:05 +01:00
mux_h1.c MINOR: h1: permit to relax the websocket checks for missing mandatory headers 2025-02-28 17:31:20 +01:00
mux_h2.c BUG/MINOR: h2: always trim leading and trailing LWS in header values 2025-02-24 09:39:57 +01:00
mux_pt.c MEDIUM: tevt/muxes: Add dedicated termination events for muxc/se locations 2025-01-31 10:41:50 +01:00
mux_quic.c MINOR: mux-quic/h3: support temporary blocking on control stream sending 2025-02-19 11:08:02 +01:00
mux_spop.c BUG/MEDIUM: spoe/mux-spop: Introduce an NOOP action to deal with empty ACK 2025-02-20 11:56:27 +01:00
mworker-prog.c BUG/MINOR: mworker-prog: don't warn about deprecated section with expose-deprecated-directives 2024-11-19 14:13:30 +01:00
mworker.c MEDIUM: errors: get rid of shm_open() 2025-01-07 16:42:38 +01:00
namespace.c BUG/MINOR: namespace: handle a possible strdup() failure 2024-12-10 08:05:34 +01:00
ncbuf.c
pattern.c MINOR: pattern: publish event_hdl events on pat_ref updates 2024-11-29 07:22:25 +01:00
payload.c
peers.c MINOR: stktable: implement "recv-only" table option 2024-12-05 12:15:24 +01:00
pipe.c
pool.c BUG/MINOR: pool: handle a possible strdup() failure 2025-01-02 14:31:07 +01:00
proto_quic.c MINOR: quic: implement build options report 2024-12-06 18:34:10 +01:00
proto_rhttp.c BUG/MINOR: server: check for either proxy-protocol v1 or v2 to send hedaer 2025-03-03 04:05:47 +01:00
proto_sockpair.c MINOR: proto_sockpair: send_fd_uxst: init iobuf, cmsghdr, cmsgbuf to zeros 2024-11-25 15:20:24 +01:00
proto_tcp.c MEDIUM: protocol: add MPTCP per address support 2024-08-30 18:53:49 +02:00
proto_udp.c CLEANUP: protocol: no longer initialize .receivers nor .nb_receivers 2024-08-21 17:37:46 +02:00
proto_uxdg.c MINOR: protocol: create abnsz socket address family 2024-10-29 12:14:50 +01:00
proto_uxst.c BUG/MEDIUM: uxst: fix outgoing abns address family in connect() 2025-02-21 07:59:08 +01:00
protocol.c MEDIUM: protocol: add MPTCP per address support 2024-08-30 18:53:49 +02:00
proxy.c MINOR: compression: Introduce minimum size 2025-02-22 11:32:40 +01:00
qmux_http.c
qmux_trace.c MINOR: mux-quic/h3: emit SETTINGS via MUX tasklet handler 2025-02-19 11:03:40 +01:00
qpack-dec.c MINOR: h3/qpack: adjust naming for errors 2024-05-16 10:31:17 +02:00
qpack-enc.c
qpack-tbl.c
queue.c BUILD: queues: Use unsigned int when needed 2025-01-28 17:44:54 +01:00
quic_ack.c
quic_cc_bbr.c MINOR: quic: rename pacing_rate cb to pacing_inter 2025-01-23 14:49:35 +01:00
quic_cc_cubic.c MINOR: quic: transform pacing settings into a global option 2025-01-30 17:19:38 +01:00
quic_cc_drs.c BUG/MINOR: quic: remove max_bw filter from delivery rate sampling 2024-12-13 14:42:43 +01:00
quic_cc_newreno.c MINOR: quic: transform pacing settings into a global option 2025-01-30 17:19:38 +01:00
quic_cc_nocc.c MINOR: quic: transform pacing settings into a global option 2025-01-30 17:19:38 +01:00
quic_cc.c MINOR: quic: remove unused pacing burst in bind_conf/quic_cc_path 2025-01-23 17:40:48 +01:00
quic_cid.c CLEANUP: assorted typo fixes in the code and comments 2024-09-03 17:49:21 +02:00
quic_cli.c MINOR: cli/quic: Add a "help" keyword to show quic 2024-11-26 14:55:30 +01:00
quic_conn.c MINOR: quic: remove unused pacing burst in bind_conf/quic_cc_path 2025-01-23 17:40:48 +01:00
quic_fctl.c
quic_frame.c MINOR: quic: support frame type as a varint 2025-02-14 09:00:05 +01:00
quic_loss.c BUILD: quic: remove GCC undefined error in qc_release_lost_pkts() 2025-01-31 15:34:30 +01:00
quic_openssl_compat.c
quic_pacing.c MINOR: quic: adapt credit based pacing to BBR 2025-01-23 17:41:07 +01:00
quic_retransmit.c MINOR: quic: implement dedicated type for out-of-order stream ACK 2024-10-04 17:56:45 +02:00
quic_retry.c BUG/MEDIUM: quic: always validate sender address on 0-RTT 2024-08-30 17:04:09 +02:00
quic_rules.c CLEANUP: tree-wide: define and use acl_match_cond() helper 2025-01-27 11:11:43 +01:00
quic_rx.c BUG/MINOR: quic: do not increase congestion window if app limited 2025-01-23 14:49:35 +01:00
quic_sock.c CLEANUP: quic: replace ALREADY_CHECKED() with ASSUME_NONNULL() at a few places 2024-12-17 17:47:57 +01:00
quic_ssl.c BUG/MEDIUM: quic: avoid freezing 0RTT connections 2024-10-17 15:04:06 +02:00
quic_stats.c MINOR: stats: introduce a more expressive stat definition method 2024-04-26 10:20:57 +02:00
quic_stream.c BUG/MEDIUM: quic: properly decount out-of-order ACK on stream release 2024-10-09 17:47:16 +02:00
quic_tls.c MINOR: quic: refactor STREAM room notification 2024-10-01 16:19:25 +02:00
quic_token.c MINOR: quic: Token for future connections implementation. 2024-08-30 17:04:09 +02:00
quic_tp.c BUG/MEDIUM: quic: don't blindly rely on unaligned accesses 2024-04-06 00:07:49 +02:00
quic_trace.c MINOR: quic: implement dedicated type for out-of-order stream ACK 2024-10-04 17:56:45 +02:00
quic_tx.c MINOR: quic: refactor CRYPTO encoding and splitting 2025-02-12 15:10:54 +01:00
raw_sock.c MINOR: tevt/connection: Add support for POLL_HUP/POLL_ERR events 2025-01-31 10:41:50 +01:00
regex.c
resolvers.c BUG/MEDIUM: promex/resolvers: Don't dump metrics if no nameserver is defined 2025-01-06 09:08:38 +01:00
ring.c MINOR: ring: count processed messages in ring_dispatch_messages() 2024-07-24 17:59:03 +02:00
sample.c MINOR: sample: extend the "when" converter to support an ACL 2024-11-18 16:11:55 +01:00
server_state.c BUG/MINOR: server-state: Fix expiration date of srvrq_check tasks 2024-12-11 10:00:01 +01:00
server.c BUG/MINOR: server: fix the "server-template" prefix memory leak 2025-02-27 04:21:01 +01:00
session.c MEDIUM: protocol: rely on AF_CUST_ABNS family to recognize ABNS sockets 2024-10-29 12:14:37 +01:00
sha1.c
shctx.c DEBUG: shctx: name shared memory using vma_set_name() 2024-05-21 17:55:03 +02:00
signal.c MINOR: tinfo: add a new thread flag to indicate a call from a sig handler 2025-02-21 17:41:38 +01:00
sink.c BUG/MINOR: sink: add tempo between 2 connection attempts for sft servers 2025-02-21 11:22:35 +01:00
slz.c
sock_inet.c MEDIUM: protocol: add MPTCP per address support 2024-08-30 18:53:49 +02:00
sock_unix.c MEDIUM: socket: add zero-terminated ABNS alternative 2024-10-29 12:15:24 +01:00
sock.c MINOR: tevt/connection: Add support for POLL_HUP/POLL_ERR events 2025-01-31 10:41:50 +01:00
ssl_ckch.c MINOR: ssl/ckch: return from ckch_conf_clean() when conf is NULL 2025-02-17 18:26:37 +01:00
ssl_clienthello.c BUG/MEDIUM: ssl: chosing correct certificate using RSA-PSS with TLSv1.3 2025-02-07 20:56:42 +01:00
ssl_crtlist.c MINOR: ssl/crtlist: handle crt_path == cc->crt in crtlist_load_crt() 2025-02-17 18:26:37 +01:00
ssl_gencert.c MINOR: ssl: store the filenames resulting from a lookup in ckch_conf 2025-02-13 17:44:00 +01:00
ssl_ocsp.c BUG/MAJOR: ssl/ocsp: fix NULL conn object dereferencing to access QUIC TLS counters 2025-01-07 15:19:42 +01:00
ssl_sample.c MEDIUM: ssl/sample: add ssl_fc_sigalgs_bin sample fetch 2024-08-26 15:17:40 +02:00
ssl_sock.c MINOR: tevt/connection: Add dedicated termination events for lower locations 2025-01-31 10:41:50 +01:00
ssl_utils.c MINOR: ssl: add utils functions to extract X509 notAfter date 2024-12-16 14:54:53 +01:00
stats-file.c MEDIUM: stats-file: silently ignore be/fe mistmatch 2024-11-19 16:44:51 +01:00
stats-html.c BUG/MEDIUM: stats/server: use watcher to track server during stats dump 2024-12-10 16:19:33 +01:00
stats-json.c BUG/MINOR: stats-json: Define JSON_INT_MAX as a signed integer 2025-02-06 17:19:49 +01:00
stats-proxy.c MINOR: proxies/servers: Calculate queueslength and use it. 2025-01-28 12:49:41 +01:00
stats.c BUG/MINOR: stats: fix segfault caused by uninitialized value in "show schema json" 2024-12-23 17:32:07 +01:00
stconn.c MINOR: tevt/applet: Add limited support for termination event logs for applets 2025-01-31 10:41:50 +01:00
stick_table.c MINOR: stktable: add table_{inc,clr}_gpc* converters 2025-01-16 11:50:33 +01:00
stream.c MEDIUM: servers: Add strict-maxconn. 2025-02-26 13:00:18 +01:00
systemd.c BUILD: systemd: fix usage of reserved name "sun" in the address field 2024-11-25 08:09:09 +01:00
task.c CLEANUP: task: move the barrier after clearing th_ctx->current 2025-02-21 18:31:46 +01:00
tcp_act.c MINOR: action: add do-log action 2024-10-04 21:38:14 +02:00
tcp_rules.c MEDIUM: stream: interrupt costly rulesets after too many evaluations 2025-02-03 17:09:48 +01:00
tcp_sample.c MINOR: sample: allow custom date format in error-log-format 2025-03-04 18:57:29 +01:00
tcpcheck.c BUG/MINOR: http-check: Don't pretend a C-L heeader is set before adding it 2025-02-03 18:46:41 +01:00
thread.c DEBUG: thread: reduce the struct lock_stat to store only 30 buckets 2025-02-10 18:34:43 +01:00
time.c
tools.c MINOR: tools: use only opportunistic symbols resolution 2025-02-21 18:26:29 +01:00
trace.c MINOR: trace: support all source alias on -dt 2025-01-10 14:50:59 +01:00
uri_auth.c MEDIUM: uri_auth: implement clean uri_auth cleaning 2024-11-14 15:03:38 +01:00
uri_normalizer.c BUILD: tree-wide: cast arguments to tolower/toupper to unsigned char (2) 2024-07-18 13:29:52 +02:00
vars.c OPTIM: vars: use multiple name heads in the vars struct 2024-09-15 23:51:51 +02:00
version.c REORG: version: move the remaining BUILD_* stuff from haproxy.c to version.c 2025-01-20 17:53:55 +01:00
wdt.c MINOR: tinfo: split the signal handler report flags into 3 2025-02-24 13:37:52 +01:00
xprt_handshake.c
xprt_quic.c BUG/MINOR: quic: prevent crash on conn access after MUX init failure 2025-02-18 10:43:56 +01:00