haproxy/src
Willy Tarreau f869095df9 MINOR: cfgcond: start to split the condition parser to introduce terms
The purpose is to build a descendent parser that will split conditions
into expressions made of terms. There are two phases, a parsing phase
and an evaluation phase. Strictly speaking it's not required to cut
that in two right now, but it's likely that in the future we won't want
certain predicates to be evaluated during the parsing (e.g. file system
checks or execution of some external commands).

The cfg_eval_condition() function is now much simpler, it just tries to
parse a single term, and if OK evaluates it, then returns the result.
Errors are unchanged and may still be reported during parsing or
evaluation.

It's worth noting that some invalid expressions such as streq(a,b)zzz
continue to parse correctly for now (what remains after the parenthesis
is simply ignored as not necessary).
2021-07-16 19:18:41 +02:00
..
acl.c CLEANUP: lists/tree-wide: rename some list operations to avoid some confusion 2021-04-21 09:20:17 +02:00
action.c MEDIUM: global: remove dead code from nbproc/bind_proc removal 2021-06-15 16:52:42 +02:00
activity.c MINOR: activity/cli: optionally support sorting by address on "show profiling" 2021-05-13 10:00:17 +02:00
applet.c BUG/MINOR: applet: Notify the other side if data were consumed by an applet 2021-04-28 10:51:08 +02:00
arg.c MINOR: arg: add a free_args() function to free an args array 2021-07-16 19:18:41 +02:00
auth.c BUILD: auth: include missing list.h 2021-05-08 12:29:51 +02:00
backend.c MINOR: http: use http uri parser for path 2021-07-08 17:11:17 +02:00
base64.c MINOR: sample: add ub64dec and ub64enc converters 2021-04-13 17:28:13 +02:00
cache.c BUG/MINOR: cache: Correctly handle existing-but-empty 'accept-encoding' header 2021-06-18 15:48:20 +02:00
calltrace.c BUILD: trace: include tools.h 2020-09-25 17:54:48 +02:00
cfgcond.c MINOR: cfgcond: start to split the condition parser to introduce terms 2021-07-16 19:18:41 +02:00
cfgdiag.c CLEANUP: assorted typo fixes in the code and comments 2021-04-26 10:42:58 +02:00
cfgparse-global.c MINOR: mux_h2: define config to disable h2 websocket support 2021-07-12 10:41:45 +02:00
cfgparse-listen.c MEDIUM: config: warn about "bind-process" deprecation 2021-06-15 16:52:42 +02:00
cfgparse-ssl.c MINOR: ssl: support ssl keyword for dynamic servers 2021-06-18 16:42:26 +02:00
cfgparse-tcp.c MINOR: server: prepare parsing for dynamic servers 2021-03-18 15:51:12 +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 REORG: config: move the condition preprocessing code to its own file 2021-07-16 19:18:41 +02:00
channel.c CLEANUP: channel: fix comment in ci_putblk. 2021-02-13 09:43:17 +01:00
check.c BUG/MINOR: checks: return correct error code for srv_parse_agent_check 2021-06-25 08:55:39 +02:00
chunk.c MINOR: pool: move pool declarations to read_mostly 2021-04-10 19:27:41 +02:00
cli.c BUG/MINOR: cli: fix server name output in "show fd" 2021-07-06 11:41:10 +02:00
compression.c BUG/MINOR: compression: Missing calloc return value check in comp_append_type/algo 2021-05-31 10:51:04 +02:00
connection.c MINOR: connection: add helper conn_append_debug_info() 2021-06-16 18:30:42 +02:00
cpuset.c BUG/MAJOR: fix build on musl with cpu_set_t support 2021-04-27 14:11:26 +02:00
debug.c CLEANUP: cli/tree-wide: properly re-align the CLI commands' help messages 2021-05-07 11:51:26 +02:00
dgram.c REORG: dgram: rename proto_udp to dgram 2020-06-11 10:18:59 +02:00
dict.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
dns.c CLEANUP: dns: Remove a forgotten debug message 2021-06-23 12:21:47 +02:00
dynbuf.c CLEANUP: pools: re-merge pool_refill_alloc() and __pool_refill_alloc() 2021-04-19 15:24:33 +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
errors.c BUG: errors: remove printf positional args for user messages context 2021-06-08 11:40:44 +02:00
ev_epoll.c MINOR: epoll: move epoll_fd to read_mostly 2021-04-10 19:27:41 +02:00
ev_evports.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
ev_kqueue.c MINOR: kqueue: move kqueue_fd to read_mostly 2021-04-10 19:27:41 +02:00
ev_poll.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
ev_select.c CLEANUP: Remove useless malloc() casts 2021-04-08 20:11:58 +02:00
extcheck.c CLEANUP: lists/tree-wide: rename some list operations to avoid some confusion 2021-04-21 09:20:17 +02:00
fcgi-app.c MINOR: errors: specify prefix "config" for parsing output 2021-06-07 17:19:16 +02:00
fcgi.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
fd.c BUILD: fd: include log.h from fd.c 2021-05-08 20:35:39 +02:00
filters.c BUG/MEDIUM: filters: Exec pre/post analysers only one time per filter 2021-05-21 09:59:00 +02:00
fix.c CLEANUP: assorted typo fixes in the code and comments 2020-12-21 11:24:48 +01:00
flt_http_comp.c BUG/MEDIUM: compression: Add a flag to know the filter is still processing data 2021-06-10 08:57:55 +02:00
flt_spoe.c MINOR: server: replace the pendconns-related stuff with a struct queue 2021-06-22 18:43:14 +02:00
flt_trace.c CLEANUP: Use istadv(const struct ist, const size_t) whenever possible 2021-03-03 05:07:10 +01:00
freq_ctr.c CLEANUP: freq_ctr: make arguments of freq_ctr_total() const 2021-04-28 17:44:37 +02:00
frontend.c MINOR: http-ana: Simplify creation/destruction of HTTP transactions 2021-04-01 11:06:48 +02:00
h1.c MINOR: http: use http uri parser for authority 2021-07-08 17:11:17 +02:00
h1_htx.c MEDIUM: h1-htx: apply scheme-based normalization on h1 requests 2021-07-07 15:34:01 +02:00
h2.c MEDIUM: h2: apply scheme-based normalization on h2 requests 2021-07-07 15:34:01 +02:00
haproxy.c REORG: config: move the condition preprocessing code to its own file 2021-07-16 19:18:41 +02: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 CLEANUP: hlua: use free_args() to release args arrays 2021-07-16 19:18:41 +02:00
hlua_fcn.c MINOR: stats: pass the appctx flags to stats_fill_info() 2021-05-08 10:52:12 +02:00
hpack-dec.c CLEANUP: Use isttest(const struct ist) whenever possible 2021-03-03 05:07:10 +01:00
hpack-enc.c CLEANUP: include: tree-wide alphabetical sort of include files 2020-06-11 10:18:59 +02:00
hpack-huff.c CONTRIB: move some dev-specific tools to dev/ 2021-04-02 17:48:42 +02:00
hpack-tbl.c MINOR: pool: move pool declarations to read_mostly 2021-04-10 19:27:41 +02:00
http.c MINOR: http: use http uri parser for path 2021-07-08 17:11:17 +02: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 MINOR: http: use http uri parser for path 2021-07-08 17:11:17 +02:00
http_ana.c BUG/MEDIUM: http_ana: fix crash for http_proxy mode during uri rewrite 2021-07-08 18:09:52 +02:00
http_conv.c MINOR: http-conv: Don't check if argument list is set in sample converters 2021-01-29 13:26:02 +01:00
http_fetch.c MINOR: http: use http uri parser for path 2021-07-08 17:11:17 +02:00
http_htx.c MINOR: http: use http uri parser for path 2021-07-08 17:11:17 +02:00
http_rules.c BUG/MINOR: http: Missing calloc return value check while parsing redirect rule 2021-05-31 10:51:08 +02:00
htx.c BUG/MAJOR: htx: Fix htx_defrag() when an HTX block is expanded 2021-06-11 14:05:34 +02:00
init.c CLEANUP: lists/tree-wide: rename some list operations to avoid some confusion 2021-04-21 09:20:17 +02:00
lb_chash.c MINOR: server: replace the pendconns-related stuff with a struct queue 2021-06-22 18:43:14 +02:00
lb_fas.c MINOR: server: replace the pendconns-related stuff with a struct queue 2021-06-22 18:43:14 +02:00
lb_fwlc.c MINOR: server: replace the pendconns-related stuff with a struct queue 2021-06-22 18:43:14 +02:00
lb_fwrr.c MINOR: server: replace the pendconns-related stuff with a struct queue 2021-06-22 18:43:14 +02:00
lb_map.c MINOR: server: replace the pendconns-related stuff with a struct queue 2021-06-22 18:43:14 +02:00
listener.c MEDIUM: global: remove dead code from nbproc/bind_proc removal 2021-06-15 16:52:42 +02:00
log.c MINOR: http: use http uri parser for path 2021-07-08 17:11:17 +02:00
lru.c CLEANUP: lists/tree-wide: rename some list operations to avoid some confusion 2021-04-21 09:20:17 +02:00
mailers.c MEDIUM: mailers: use "HAProxy" nor "HAproxy" in the subject of messages 2021-05-09 06:45:16 +02:00
map.c MINOR: map/acl: print the count of all the map/acl entries in "show map/acl" 2021-05-25 08:44:45 +02:00
mjson.c MINOR: sample: converter: Add mjson library. 2021-04-15 17:05:38 +02:00
mqtt.c BUG/MINOR: mqtt: Support empty client ID in CONNECT message 2021-06-28 16:29:44 +02:00
mux_fcgi.c MINOR: http: use http uri parser for path 2021-07-08 17:11:17 +02:00
mux_h1.c BUG/MINOR: mux-h1: do not skip the error response on bad requests 2021-06-16 15:06:43 +02:00
mux_h2.c MINOR: mux_h2: define config to disable h2 websocket support 2021-07-12 10:41:45 +02:00
mux_pt.c MINOR: trace: make trace sources read_mostly 2021-04-10 19:29:26 +02:00
mworker-prog.c MEDIUM: global: remove the relative_pid from global and mworker 2021-06-15 16:52:42 +02:00
mworker.c MEDIUM: global: remove the relative_pid from global and mworker 2021-06-15 16:52:42 +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 MINOR: map/acl: print the count of all the map/acl entries in "show map/acl" 2021-05-25 08:44:45 +02:00
payload.c BUILD: payload: include tools.h in payload.c 2021-05-08 13:55:40 +02:00
peers.c MEDIUM: peers: handle arrays of std types in peers protocol 2021-07-06 07:24:42 +02:00
pipe.c CLEANUP: atomic/tree-wide: replace single increments/decrements with inc/dec 2021-04-07 18:18:37 +02:00
pool.c MEDIUM: pools: remove the locked pools implementation 2021-06-10 17:46:50 +02:00
proto_quic.c MINOR: fd: move .linger_risk into fdtab[].state 2021-04-07 18:07:49 +02:00
proto_sockpair.c MINOR: fd: move .linger_risk into fdtab[].state 2021-04-07 18:07:49 +02:00
proto_tcp.c MINOR: fd: move .linger_risk into fdtab[].state 2021-04-07 18:07:49 +02:00
proto_udp.c BUILD: udp: include tools.h from proto_udp.c 2021-05-08 13:59:56 +02:00
proto_uxdg.c BUG/MINOR: protocol: add missing support of dgram unix socket. 2021-03-18 18:30:29 +01:00
proto_uxst.c MINOR: fd: move .linger_risk into fdtab[].state 2021-04-07 18:07:49 +02:00
protocol.c MEDIUM: proxy: remove the deprecated "grace" keyword 2021-06-11 16:57:34 +02:00
proxy.c MINOR: queue: add a pointer to the server and the proxy in the queue 2021-06-24 10:52:31 +02:00
qpack-tbl.c CLEANUP: qpack: Wrong comment about the draft for QPACK static header table. 2021-01-04 12:31:28 +01:00
queue.c BUG/MINOR: queue/debug: use the correct lock labels on the queue lock 2021-06-24 16:00:18 +02:00
quic_cc.c MINOR: quic: Import C source code files for QUIC protocol. 2020-12-23 11:57:26 +01:00
quic_cc_newreno.c MINOR: quic: Add traces to congestion avoidance NewReno callback. 2020-12-23 11:57:26 +01:00
quic_frame.c CLEANUP: assorted typo fixes in the code and comments 2021-01-06 16:26:50 +01:00
quic_sock.c CLEANUP: lists/tree-wide: rename some list operations to avoid some confusion 2021-04-21 09:20:17 +02:00
quic_tls.c MINOR: quic: Update the initial salt to that of draft-29. 2020-12-23 11:57:26 +01:00
raw_sock.c MINOR: fd: move .linger_risk into fdtab[].state 2021-04-07 18:07:49 +02:00
regex.c OPTIM: regex: PCRE2 use JIT match when JIT optimisation occured. 2020-08-14 07:53:40 +02:00
resolvers.c BUG/MINOR: resolvers: Always attach server on matching record on resolution 2021-06-24 17:15:33 +02:00
ring.c CLEANUP: lists/tree-wide: rename some list operations to avoid some confusion 2021-04-21 09:20:17 +02:00
sample.c MEDIUM: global: remove the relative_pid from global and mworker 2021-06-15 16:52:42 +02:00
server.c MEDIUM: server: support track keyword for dynamic servers 2021-07-16 10:22:58 +02:00
server_state.c BUG/MEDIUM: resolvers: Add a task on servers to check SRV resolution status 2021-06-17 16:52:35 +02:00
session.c MINOR: stick-table: make skttable_data_cast to use only std types 2021-07-06 07:24:42 +02:00
sha1.c BUILD: use inttypes.h instead of stdint.h 2019-04-01 07:44:56 +02:00
shctx.c CLEANUP: shctx: remove the different inter-process locking techniques 2021-06-15 16:52:42 +02:00
signal.c CLEANUP: lists/tree-wide: rename some list operations to avoid some confusion 2021-04-21 09:20:17 +02:00
sink.c CLEANUP: server: a separate function for initializing the per_thr field 2021-06-17 16:07:10 +02:00
slz.c IMPORT: slz: use inttypes.h instead of stdint.h 2021-05-14 08:44:52 +02:00
sock.c BUG/MEDIUM: sock: make sure to never miss early connection failures 2021-07-06 10:52:19 +02:00
sock_inet.c MINOR: fd: move .exported into fdtab[].state 2021-04-07 18:10:36 +02:00
sock_unix.c MINOR: fd: move .exported into fdtab[].state 2021-04-07 18:10:36 +02:00
ssl_ckch.c MINOR: ssl: fix typo in usage for 'new ssl ca-file' 2021-06-18 16:42:25 +02:00
ssl_crtlist.c MEDIUM: ssl: Chain ckch instances in ca-file entries 2021-05-17 10:50:24 +02:00
ssl_sample.c BUILD: make tune.ssl.keylog available again 2021-06-09 17:10:13 +02:00
ssl_sock.c MINOR: ssl: render file-access optional on server crt loading 2021-06-18 16:42:25 +02:00
ssl_utils.c BUILD: ssl: ssl_utils requires chunk.h 2021-05-08 12:52:56 +02:00
stats.c MEDIUM: stats: include disabled proxies that hold active sessions to stats 2021-07-06 11:54:08 +02:00
stick_table.c BUILD: stick-table: shut up invalid "uninitialized" warning in gcc 8.3 2021-07-06 18:54:07 +02:00
stream.c CLEANUP: applet: remove unused thread_mask 2021-07-13 18:20:34 +02:00
stream_interface.c CLEANUP: l7-retries: do not test the buffer before calling b_alloc() 2021-06-11 16:04:28 +02:00
task.c MINOR: task: stop including stream.h from task.c 2021-05-08 20:27:08 +02:00
tcp_act.c Revert "MINOR: tcp-act: Add set-src/set-src-port for "tcp-request content" rules" 2021-07-06 11:44:04 +02:00
tcp_rules.c BUG/MINOR: http: Missing calloc return value check while parsing tcp-request rule 2021-05-31 10:51:02 +02:00
tcp_sample.c MINOR: tcp_samples: Be able to call bc_src/bc_dst from the health-checks 2021-04-19 08:31:05 +02:00
tcpcheck.c BUG/MINOR: tcpcheck: Fix numbering of implicit HTTP send/expect rules 2021-06-25 14:03:45 +02:00
thread.c BUILD: thread: include log.h from thread.c 2021-05-08 20:35:39 +02:00
time.c BUG/MEDIUM: time: fix updating of global_now upon clock drift 2021-04-28 17:43:55 +02:00
tools.c CLEANUP: tools: Make errptr const in parse_line() 2021-06-08 10:56:10 +02:00
trace.c CLEANUP: cli/tree-wide: properly re-align the CLI commands' help messages 2021-05-07 11:51:26 +02:00
uri_auth.c CLEANUP: Compare the return value of XXXcmp() functions with zero 2021-01-04 10:09:02 +01:00
uri_normalizer.c MINOR: uri_normalizer: Add fragment-encode normalizer 2021-05-11 17:24:32 +02:00
vars.c BUG/MINOR: vars: Be sure to have a session to get checks variables 2021-06-02 11:55:14 +02:00
version.c BUILD: Fix build by including haproxy/global.h 2020-06-16 23:36:04 +02:00
wdt.c BUILD: wdt: include signal-t.h 2021-05-08 12:29:01 +02:00
xprt_handshake.c MEDIUM: connections: Implement a start() method for xprt_handshake. 2021-03-19 15:33:04 +01:00
xprt_quic.c BUG/MEDIUM: quic: fix null deref on error path in qc_conn_init() 2021-05-10 07:40:27 +02:00