haproxy/src
Thierry FOURNIER 511e9475f2 MEDIUM: acl/pattern: standardisation "of pat_parse_int()" and "pat_parse_dotted_ver()"
The goal of these patch is to simplify the prototype of
"pat_pattern_*()" functions. I want to replace the argument "char
**args" by a simple "char *arg" and remove the "opaque" argument.

"pat_parse_int()" and "pat_parse_dotted_ver()" are the unique pattern
parser using the "opaque" argument and using more than one string
argument of the char **args. These specificities are only used with ACL.
Other systems using this pattern parser (MAP and CLI) just use one
string for describing a range.

This two functions can read a range, but the min and the max must y
specified. This patch extends the syntax to describe a range with
implicit min and max. This is used for operators like "lt", "le", "gt",
and "ge". the syntax is the following:

   ":x" -> no min to "x"
   "x:" -> "x" to no max

This patch moves the parsing of the comparison operator from the
functions "pat_parse_int()" and "pat_parse_dotted_ver()" to the acl
parser. The acl parser read the operator and the values and build a
volatile string readable by the functions "pat_parse_int()" and
"pat_parse_dotted_ver()". The transformation is done with these rules:

If the parser is "pat_parse_int()":

   "eq x" -> "x"
   "le x" -> ":x"
   "lt x" -> ":y" (with y = x - 1)
   "ge x" -> "x:"
   "gt x" -> "y:" (with y = x + 1)

If the parser is "pat_parse_dotted_ver()":

   "eq x.y" -> "x.y"
   "le x.y" -> ":x.y"
   "lt x.y" -> ":w.z" (with w.z = x.y - 1)
   "ge x.y" -> "x.y:"
   "gt x.y" -> "w.z:" (with w.z = x.y + 1)

Note that, if "y" is not present, assume that is "0".

Now "pat_parse_int()" and "pat_parse_dotted_ver()" accept only one
pattern and the variable "opaque" is no longer used. The prototype of
the pattern parsers can be changed.
2014-03-17 18:06:06 +01:00
..
acl.c MEDIUM: acl/pattern: standardisation "of pat_parse_int()" and "pat_parse_dotted_ver()" 2014-03-17 18:06:06 +01:00
appsession.c BUILD: definitely silence some stupid GCC warnings 2013-12-13 15:21:36 +01:00
arg.c MINOR: arg: improve wording on error reporting 2013-12-13 00:38:47 +01:00
auth.c MAJOR: auth: Change the internal authentication system. 2014-03-17 18:06:06 +01:00
backend.c BUG/MEDIUM: http: continue to emit 503 on keep-alive to different server 2014-02-24 18:26:30 +01: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: buffer: align the last output line if there are less than 8 characters left 2013-11-21 08:07:04 +01:00
cfgparse.c MAJOR: auth: Change the internal authentication system. 2014-03-17 18:06:06 +01:00
channel.c MAJOR: channel: add a new flag CF_WAKE_WRITE to notify the task of writes 2013-12-31 18:37:36 +01:00
checks.c BUG/MAJOR: check: fix memory leak in "tcp-check connect" over SSL 2014-02-11 17:55:04 +01:00
chunk.c MINOR: chunks: always initialize the output chunk in get_trash_chunk() 2013-12-14 16:02:18 +01:00
compression.c BUG/MEDIUM: compression: fix the output type of the compressor name 2014-03-11 16:23:05 +01:00
connection.c CLEANUP: connection: use conn_ctrl_ready() instead of checking the flag 2014-01-26 00:42:31 +01:00
cttproxy.c CLEANUP: cttproxy: remove a warning on undeclared close() 2012-10-05 22:18:07 +02:00
dumpstats.c BUG/MEDIUM: stats: the "lastsess" field must appear last in the CSV. 2014-02-10 22:22:49 +01:00
ev_epoll.c MINOR: polling: create function fd_compute_new_polled_status() 2014-01-26 00:42:32 +01:00
ev_kqueue.c MINOR: polling: create function fd_compute_new_polled_status() 2014-01-26 00:42:32 +01:00
ev_poll.c MINOR: polling: create function fd_compute_new_polled_status() 2014-01-26 00:42:32 +01:00
ev_select.c MINOR: polling: create function fd_compute_new_polled_status() 2014-01-26 00:42:32 +01:00
fd.c MEDIUM: polling: centralize polled events processing 2014-01-26 00:42:32 +01:00
freq_ctr.c BUG/MINOR: time: frequency counters are not totally accurate 2012-12-29 21:50:07 +01:00
frontend.c MEDIUM: connection: centralize handling of nolinger in fd management 2013-12-16 02:23:52 +01:00
haproxy-systemd-wrapper.c BUILD/MINOR: systemd: fix compiler warning about unused result 2013-12-10 08:50:55 +01:00
haproxy.c MINOR: sample: add a rand() sample fetch to return a sample. 2014-02-14 11:59:04 +01:00
hash.c MEDIUM: backend: add support for the wt6 hash 2013-11-14 16:37:50 +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
i386-linux-vsys.c MEDIUM: listener: add support for linux's accept4() syscall 2012-10-08 20:11:03 +02:00
lb_chash.c BUG/MAJOR: server: weight calculation fails for map-based algorithms 2013-11-21 15:09:02 +01:00
lb_fas.c BUG/MAJOR: server: weight calculation fails for map-based algorithms 2013-11-21 15:09:02 +01:00
lb_fwlc.c BUG/MAJOR: server: weight calculation fails for map-based algorithms 2013-11-21 15:09:02 +01:00
lb_fwrr.c BUG/MAJOR: server: weight calculation fails for map-based algorithms 2013-11-21 15:09:02 +01:00
lb_map.c BUG/MAJOR: server: weight calculation fails for map-based algorithms 2013-11-21 15:09:02 +01:00
listener.c BUILD: listener: add fcntl.h and unistd.h 2014-02-01 09:29:03 +01:00
log.c BUG/MINOR: http: fix encoding of samples used in http headers 2014-03-17 16:39:03 +01:00
map.c BUG/MEDIUM: map: The map parser includes blank lines. 2014-03-12 19:32:18 +01:00
memory.c MINOR: cli: add the new "show pools" command 2014-01-28 16:50:35 +01:00
pattern.c MEDIUM: acl/pattern: standardisation "of pat_parse_int()" and "pat_parse_dotted_ver()" 2014-03-17 18:06:06 +01:00
payload.c MEDIUM: acl: fix pattern type for payload / payload_lv 2014-02-24 19:01:37 +01:00
peers.c BUG/MEDIUM: peers: fix key consistency for integer stick tables 2014-02-16 08:14:16 +01: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 MAJOR: auth: Change the internal authentication system. 2014-03-17 18:06:06 +01:00
proto_tcp.c MINOR: set IP_FREEBIND on IPv6 sockets in transparent mode 2014-03-03 21:31:10 +01:00
proto_uxst.c MAJOR: listener: support inheriting a listening fd from the parent 2013-03-11 01:30:01 +01:00
protocol.c REORG: split "protocols" files into protocol and listener 2012-09-15 22:29:32 +02:00
proxy.c MEDIUM: proxy: make get_backend_server() use findproxy() to lookup proxies 2014-03-15 07:57:11 +01:00
queue.c MAJOR: connection: replace struct target with a pointer to an enum 2012-11-12 00:42:33 +01:00
raw_sock.c BUG/MINOR: raw_sock: also consider ENOTCONN in addition to EAGAIN for recv() 2014-03-04 07:27:18 +01:00
rbtree.c [MINOR] imported the rbtree function from Linux kernel 2007-01-07 02:12:57 +01:00
regex.c MINOR: regex: Copy the original regex expression into string. 2013-12-12 15:43:34 +01:00
sample.c MEDIUM: sample: change the behavior of the bin2str cast 2014-03-17 17:31:46 +01:00
server.c MINOR: stats: Enhancement to stats page to provide information of last session time. 2014-02-08 01:19:58 +01:00
session.c MINOR: http: release compression context only in http_end_txn() 2014-03-14 19:26:20 +01:00
sessionhash.c [PATCH] appsessions: cleanup DEBUG_HASH and initialize request_counter 2008-08-13 23:43:26 +02:00
shctx.c BUG/MEDIUM: shctx: makes the code independent on SSL runtime version. 2013-04-26 19:15:52 +02:00
signal.c BUG/MEDIUM: signal: signal handler does not properly check for signal bounds 2013-01-24 16:19:19 +01:00
ssl_sock.c BUG/MEDIUM: ssl: always send a full buffer after EAGAIN 2014-02-17 16:02:01 +01:00
standard.c MEDIUM: acl/pattern: standardisation "of pat_parse_int()" and "pat_parse_dotted_ver()" 2014-03-17 18:06:06 +01:00
stick_table.c MEDIUM: stick-table: lookup table names using trees. 2014-03-15 08:03:57 +01:00
stream_interface.c MINOR: config: make the stream interface idle timer user-configurable 2014-02-12 16:36:12 +01:00
task.c [OPTIM] task: don't scan the run queue if we know it's empty 2011-09-10 20:08:49 +02:00
time.c BUG/MINOR: time: frequency counters are not totally accurate 2012-12-29 21:50:07 +01:00
trace.c MINOR: add a new function call tracer for debugging purposes 2012-05-26 00:12:37 +02:00
uri_auth.c BUG/MEDIUM: uri_auth: missing NULL check and memory leak on memory shortage 2013-01-24 16:19:19 +01:00