MAJOR: acl: remove the arg_mask from the ACL definition and use the sample fetch's
Now that ACLs solely rely on sample fetch functions, make them use the
same arg mask. All inconsistencies have been fixed separately prior to
this patch, so this patch almost only adds a new pointer indirection
and removes all references to ARG*() in the definitions.
The parsing is still performed by the ACL code though.
diff --git a/include/types/acl.h b/include/types/acl.h
index fb457ca..3e62ae2 100644
--- a/include/types/acl.h
+++ b/include/types/acl.h
@@ -237,7 +237,6 @@
int (*parse)(const char **text, struct acl_pattern *pattern, int *opaque, char **err);
int (*match)(struct sample *smp, struct acl_pattern *pattern);
unsigned int requires; /* bit mask of all ACL_USE_* required to evaluate this keyword */
- int arg_mask; /* mask describing up to 7 arg types */
int (*val_args)(struct arg *arg_p, char **err_msg); /* argument validation function */
/* must be after the config params */
struct sample_fetch *smp; /* the sample fetch we depend on */
diff --git a/src/acl.c b/src/acl.c
index 8e6f97a..a996c63 100644
--- a/src/acl.c
+++ b/src/acl.c
@@ -1023,7 +1023,7 @@
expr->args = empty_arg_list;
arg = strchr(args[0], '(');
- if (aclkw->arg_mask) {
+ if (aclkw->smp->arg_mask) {
int nbargs = 0;
char *end;
@@ -1041,7 +1041,7 @@
* An error is also reported if some mandatory arguments are
* missing.
*/
- nbargs = make_arg_list(arg, end - arg, aclkw->arg_mask, &expr->args,
+ nbargs = make_arg_list(arg, end - arg, aclkw->smp->arg_mask, &expr->args,
err, NULL, NULL);
if (nbargs < 0) {
/* note that make_arg_list will have set <err> here */
@@ -1060,15 +1060,15 @@
goto out_free_expr;
}
}
- else if (ARGM(aclkw->arg_mask) == 1) {
- int type = (aclkw->arg_mask >> 4) & 15;
+ else if (ARGM(aclkw->smp->arg_mask) == 1) {
+ int type = (aclkw->smp->arg_mask >> 4) & 15;
/* If a proxy is noted as a mandatory argument, we'll fake
* an empty one so that acl_find_targets() resolves it as
* the current one later.
*/
if (type != ARGT_FE && type != ARGT_BE && type != ARGT_TAB) {
- memprintf(err, "ACL keyword '%s' expects %d arguments", aclkw->kw, ARGM(aclkw->arg_mask));
+ memprintf(err, "ACL keyword '%s' expects %d arguments", aclkw->kw, ARGM(aclkw->smp->arg_mask));
goto out_free_expr;
}
@@ -1083,9 +1083,9 @@
expr->args[0].data.str.len = 0;
expr->args[1].type = ARGT_STOP;
}
- else if (ARGM(aclkw->arg_mask)) {
+ else if (ARGM(aclkw->smp->arg_mask)) {
/* there were some mandatory arguments */
- memprintf(err, "ACL keyword '%s' expects %d arguments", aclkw->kw, ARGM(aclkw->arg_mask));
+ memprintf(err, "ACL keyword '%s' expects %d arguments", aclkw->kw, ARGM(aclkw->smp->arg_mask));
goto out_free_expr;
}
}
@@ -1977,8 +1977,8 @@
* Please take care of keeping this list alphabetically sorted.
*/
static struct acl_kw_list acl_kws = {{ },{
- { "always_false", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_NOTHING, 0 },
- { "always_true", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_NOTHING, 0 },
+ { "always_false", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_NOTHING },
+ { "always_true", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_NOTHING },
{ /* END */ },
}};
diff --git a/src/backend.c b/src/backend.c
index d0d132b..c4035e5 100644
--- a/src/backend.c
+++ b/src/backend.c
@@ -1599,17 +1599,17 @@
* Please take care of keeping this list alphabetically sorted.
*/
static struct acl_kw_list acl_kws = {{ },{
- { "avg_queue", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, ARG1(1,BE) },
- { "be_conn", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, ARG1(1,BE) },
- { "be_id", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "be_sess_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, ARG1(1,BE) },
- { "connslots", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, ARG1(1,BE) },
- { "nbsrv", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, ARG1(1,BE) },
- { "queue", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, ARG1(1,BE) },
- { "srv_conn", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, ARG1(1,SRV) },
- { "srv_id", NULL, acl_parse_int, acl_match_int, ACL_USE_RTR_INTERNAL, 0 },
- { "srv_is_up", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_NOTHING, ARG1(1,SRV) },
- { "srv_sess_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, ARG1(1,SRV) },
+ { "avg_queue", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "be_conn", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "be_id", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "be_sess_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "connslots", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "nbsrv", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "queue", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "srv_conn", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "srv_id", NULL, acl_parse_int, acl_match_int, ACL_USE_RTR_INTERNAL },
+ { "srv_is_up", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_NOTHING },
+ { "srv_sess_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
{ /* END */ },
}};
diff --git a/src/frontend.c b/src/frontend.c
index 589a541..f259ade 100644
--- a/src/frontend.c
+++ b/src/frontend.c
@@ -268,9 +268,9 @@
* Please take care of keeping this list alphabetically sorted.
*/
static struct acl_kw_list acl_kws = {{ },{
- { "fe_conn", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, ARG1(1,FE) },
- { "fe_id", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "fe_sess_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, ARG1(1,FE) },
+ { "fe_conn", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "fe_id", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "fe_sess_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
{ /* END */ },
}};
diff --git a/src/listener.c b/src/listener.c
index 28c5bf0..862e1e4 100644
--- a/src/listener.c
+++ b/src/listener.c
@@ -653,8 +653,8 @@
* Please take care of keeping this list alphabetically sorted.
*/
static struct acl_kw_list acl_kws = {{ },{
- { "dst_conn", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "so_id", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
+ { "dst_conn", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "so_id", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
{ /* END */ },
}};
diff --git a/src/payload.c b/src/payload.c
index 4a032ed..34b21ed 100644
--- a/src/payload.c
+++ b/src/payload.c
@@ -669,16 +669,16 @@
* Please take care of keeping this list alphabetically sorted.
*/
static struct acl_kw_list acl_kws = {{ },{
- { "payload", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_VOLATILE, ARG2(2,UINT,UINT), val_payload },
- { "payload_lv", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_VOLATILE, ARG3(2,UINT,UINT,SINT), val_payload_lv },
- { "rep_ssl_hello_type", NULL, acl_parse_int, acl_match_int, ACL_USE_L6RTR_VOLATILE, 0 },
- { "req_len", NULL, acl_parse_int, acl_match_int, ACL_USE_L6REQ_VOLATILE, 0 },
- { "req_rdp_cookie", "rdp_cookie", acl_parse_str, acl_match_str, ACL_USE_L6REQ_VOLATILE, ARG1(0,STR) },
- { "req_rdp_cookie_cnt", "rdp_cookie_cnt", acl_parse_int, acl_match_int, ACL_USE_L6REQ_VOLATILE, ARG1(0,STR) },
- { "req_ssl_hello_type", NULL, acl_parse_int, acl_match_int, ACL_USE_L6REQ_VOLATILE, 0 },
- { "req_ssl_sni", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_VOLATILE, 0 },
- { "req_ssl_ver", NULL, acl_parse_dotted_ver, acl_match_int, ACL_USE_L6REQ_VOLATILE, 0 },
- { "wait_end", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_NOTHING, 0 },
+ { "payload", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_VOLATILE, val_payload },
+ { "payload_lv", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_VOLATILE, val_payload_lv },
+ { "rep_ssl_hello_type", NULL, acl_parse_int, acl_match_int, ACL_USE_L6RTR_VOLATILE },
+ { "req_len", NULL, acl_parse_int, acl_match_int, ACL_USE_L6REQ_VOLATILE },
+ { "req_rdp_cookie", "rdp_cookie", acl_parse_str, acl_match_str, ACL_USE_L6REQ_VOLATILE },
+ { "req_rdp_cookie_cnt", "rdp_cookie_cnt", acl_parse_int, acl_match_int, ACL_USE_L6REQ_VOLATILE },
+ { "req_ssl_hello_type", NULL, acl_parse_int, acl_match_int, ACL_USE_L6REQ_VOLATILE },
+ { "req_ssl_sni", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_VOLATILE },
+ { "req_ssl_ver", NULL, acl_parse_dotted_ver, acl_match_int, ACL_USE_L6REQ_VOLATILE },
+ { "wait_end", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_NOTHING },
{ /* END */ },
}};
diff --git a/src/proto_http.c b/src/proto_http.c
index d49b37c..a835fdc 100644
--- a/src/proto_http.c
+++ b/src/proto_http.c
@@ -9522,104 +9522,104 @@
* Please take care of keeping this list alphabetically sorted.
*/
static struct acl_kw_list acl_kws = {{ },{
- { "base", "base", acl_parse_str, acl_match_str, ACL_USE_L7REQ_VOLATILE, 0 },
- { "base_beg", "base", acl_parse_str, acl_match_beg, ACL_USE_L7REQ_VOLATILE, 0 },
- { "base_dir", "base", acl_parse_str, acl_match_dir, ACL_USE_L7REQ_VOLATILE, 0 },
- { "base_dom", "base", acl_parse_str, acl_match_dom, ACL_USE_L7REQ_VOLATILE, 0 },
- { "base_end", "base", acl_parse_str, acl_match_end, ACL_USE_L7REQ_VOLATILE, 0 },
- { "base_len", "base", acl_parse_int, acl_match_len, ACL_USE_L7REQ_VOLATILE, 0 },
- { "base_reg", "base", acl_parse_reg, acl_match_reg, ACL_USE_L7REQ_VOLATILE, 0 },
- { "base_sub", "base", acl_parse_str, acl_match_sub, ACL_USE_L7REQ_VOLATILE, 0 },
+ { "base", "base", acl_parse_str, acl_match_str, ACL_USE_L7REQ_VOLATILE },
+ { "base_beg", "base", acl_parse_str, acl_match_beg, ACL_USE_L7REQ_VOLATILE },
+ { "base_dir", "base", acl_parse_str, acl_match_dir, ACL_USE_L7REQ_VOLATILE },
+ { "base_dom", "base", acl_parse_str, acl_match_dom, ACL_USE_L7REQ_VOLATILE },
+ { "base_end", "base", acl_parse_str, acl_match_end, ACL_USE_L7REQ_VOLATILE },
+ { "base_len", "base", acl_parse_int, acl_match_len, ACL_USE_L7REQ_VOLATILE },
+ { "base_reg", "base", acl_parse_reg, acl_match_reg, ACL_USE_L7REQ_VOLATILE },
+ { "base_sub", "base", acl_parse_str, acl_match_sub, ACL_USE_L7REQ_VOLATILE },
- { "cook", "cook", acl_parse_str, acl_match_str, ACL_USE_L7REQ_VOLATILE, ARG1(0,STR) },
- { "cook_beg", "cook", acl_parse_str, acl_match_beg, ACL_USE_L7REQ_VOLATILE, ARG1(0,STR) },
- { "cook_cnt", "cook_cnt", acl_parse_int, acl_match_int, ACL_USE_L7REQ_VOLATILE, ARG1(0,STR) },
- { "cook_dir", "cook", acl_parse_str, acl_match_dir, ACL_USE_L7REQ_VOLATILE, ARG1(0,STR) },
- { "cook_dom", "cook", acl_parse_str, acl_match_dom, ACL_USE_L7REQ_VOLATILE, ARG1(0,STR) },
- { "cook_end", "cook", acl_parse_str, acl_match_end, ACL_USE_L7REQ_VOLATILE, ARG1(0,STR) },
- { "cook_len", "cook", acl_parse_int, acl_match_len, ACL_USE_L7REQ_VOLATILE, ARG1(0,STR) },
- { "cook_reg", "cook", acl_parse_reg, acl_match_reg, ACL_USE_L7REQ_VOLATILE, ARG1(0,STR) },
- { "cook_sub", "cook", acl_parse_str, acl_match_sub, ACL_USE_L7REQ_VOLATILE, ARG1(0,STR) },
- { "cook_val", "cook_val", acl_parse_int, acl_match_int, ACL_USE_L7REQ_VOLATILE, ARG1(0,STR) },
+ { "cook", "cook", acl_parse_str, acl_match_str, ACL_USE_L7REQ_VOLATILE },
+ { "cook_beg", "cook", acl_parse_str, acl_match_beg, ACL_USE_L7REQ_VOLATILE },
+ { "cook_cnt", "cook_cnt", acl_parse_int, acl_match_int, ACL_USE_L7REQ_VOLATILE },
+ { "cook_dir", "cook", acl_parse_str, acl_match_dir, ACL_USE_L7REQ_VOLATILE },
+ { "cook_dom", "cook", acl_parse_str, acl_match_dom, ACL_USE_L7REQ_VOLATILE },
+ { "cook_end", "cook", acl_parse_str, acl_match_end, ACL_USE_L7REQ_VOLATILE },
+ { "cook_len", "cook", acl_parse_int, acl_match_len, ACL_USE_L7REQ_VOLATILE },
+ { "cook_reg", "cook", acl_parse_reg, acl_match_reg, ACL_USE_L7REQ_VOLATILE },
+ { "cook_sub", "cook", acl_parse_str, acl_match_sub, ACL_USE_L7REQ_VOLATILE },
+ { "cook_val", "cook_val", acl_parse_int, acl_match_int, ACL_USE_L7REQ_VOLATILE },
- { "hdr", "hdr", acl_parse_str, acl_match_str, ACL_USE_L7REQ_VOLATILE, ARG2(0,STR,SINT), val_hdr },
- { "hdr_beg", "hdr", acl_parse_str, acl_match_beg, ACL_USE_L7REQ_VOLATILE, ARG2(0,STR,SINT), val_hdr },
- { "hdr_cnt", "hdr_cnt", acl_parse_int, acl_match_int, ACL_USE_L7REQ_VOLATILE, ARG1(0,STR) },
- { "hdr_dir", "hdr", acl_parse_str, acl_match_dir, ACL_USE_L7REQ_VOLATILE, ARG2(0,STR,SINT), val_hdr },
- { "hdr_dom", "hdr", acl_parse_str, acl_match_dom, ACL_USE_L7REQ_VOLATILE, ARG2(0,STR,SINT), val_hdr },
- { "hdr_end", "hdr", acl_parse_str, acl_match_end, ACL_USE_L7REQ_VOLATILE, ARG2(0,STR,SINT), val_hdr },
- { "hdr_ip", "hdr_ip", acl_parse_ip, acl_match_ip, ACL_USE_L7REQ_VOLATILE, ARG2(0,STR,SINT), val_hdr },
- { "hdr_len", "hdr", acl_parse_int, acl_match_len, ACL_USE_L7REQ_VOLATILE, ARG2(0,STR,SINT), val_hdr },
- { "hdr_reg", "hdr", acl_parse_reg, acl_match_reg, ACL_USE_L7REQ_VOLATILE, ARG2(0,STR,SINT), val_hdr },
- { "hdr_sub", "hdr", acl_parse_str, acl_match_sub, ACL_USE_L7REQ_VOLATILE, ARG2(0,STR,SINT), val_hdr },
- { "hdr_val", "hdr_val", acl_parse_int, acl_match_int, ACL_USE_L7REQ_VOLATILE, ARG2(0,STR,SINT), val_hdr },
+ { "hdr", "hdr", acl_parse_str, acl_match_str, ACL_USE_L7REQ_VOLATILE, val_hdr },
+ { "hdr_beg", "hdr", acl_parse_str, acl_match_beg, ACL_USE_L7REQ_VOLATILE, val_hdr },
+ { "hdr_cnt", "hdr_cnt", acl_parse_int, acl_match_int, ACL_USE_L7REQ_VOLATILE },
+ { "hdr_dir", "hdr", acl_parse_str, acl_match_dir, ACL_USE_L7REQ_VOLATILE, val_hdr },
+ { "hdr_dom", "hdr", acl_parse_str, acl_match_dom, ACL_USE_L7REQ_VOLATILE, val_hdr },
+ { "hdr_end", "hdr", acl_parse_str, acl_match_end, ACL_USE_L7REQ_VOLATILE, val_hdr },
+ { "hdr_ip", "hdr_ip", acl_parse_ip, acl_match_ip, ACL_USE_L7REQ_VOLATILE, val_hdr },
+ { "hdr_len", "hdr", acl_parse_int, acl_match_len, ACL_USE_L7REQ_VOLATILE, val_hdr },
+ { "hdr_reg", "hdr", acl_parse_reg, acl_match_reg, ACL_USE_L7REQ_VOLATILE, val_hdr },
+ { "hdr_sub", "hdr", acl_parse_str, acl_match_sub, ACL_USE_L7REQ_VOLATILE, val_hdr },
+ { "hdr_val", "hdr_val", acl_parse_int, acl_match_int, ACL_USE_L7REQ_VOLATILE, val_hdr },
- { "http_auth", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_L7REQ_VOLATILE, ARG1(1,USR) },
- { "http_auth_group", NULL, acl_parse_strcat, acl_match_auth, ACL_USE_L7REQ_VOLATILE, ARG1(1,USR) },
+ { "http_auth", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_L7REQ_VOLATILE },
+ { "http_auth_group", NULL, acl_parse_strcat, acl_match_auth, ACL_USE_L7REQ_VOLATILE },
- { "http_first_req", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_L7REQ_PERMANENT, 0 },
+ { "http_first_req", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_L7REQ_PERMANENT },
- { "method", NULL, acl_parse_meth, acl_match_meth, ACL_USE_L7REQ_PERMANENT, 0 },
+ { "method", NULL, acl_parse_meth, acl_match_meth, ACL_USE_L7REQ_PERMANENT },
- { "path", "path", acl_parse_str, acl_match_str, ACL_USE_L7REQ_VOLATILE, 0 },
- { "path_beg", "path", acl_parse_str, acl_match_beg, ACL_USE_L7REQ_VOLATILE, 0 },
- { "path_dir", "path", acl_parse_str, acl_match_dir, ACL_USE_L7REQ_VOLATILE, 0 },
- { "path_dom", "path", acl_parse_str, acl_match_dom, ACL_USE_L7REQ_VOLATILE, 0 },
- { "path_end", "path", acl_parse_str, acl_match_end, ACL_USE_L7REQ_VOLATILE, 0 },
- { "path_len", "path", acl_parse_int, acl_match_len, ACL_USE_L7REQ_VOLATILE, 0 },
- { "path_reg", "path", acl_parse_reg, acl_match_reg, ACL_USE_L7REQ_VOLATILE, 0 },
- { "path_sub", "path", acl_parse_str, acl_match_sub, ACL_USE_L7REQ_VOLATILE, 0 },
+ { "path", "path", acl_parse_str, acl_match_str, ACL_USE_L7REQ_VOLATILE },
+ { "path_beg", "path", acl_parse_str, acl_match_beg, ACL_USE_L7REQ_VOLATILE },
+ { "path_dir", "path", acl_parse_str, acl_match_dir, ACL_USE_L7REQ_VOLATILE },
+ { "path_dom", "path", acl_parse_str, acl_match_dom, ACL_USE_L7REQ_VOLATILE },
+ { "path_end", "path", acl_parse_str, acl_match_end, ACL_USE_L7REQ_VOLATILE },
+ { "path_len", "path", acl_parse_int, acl_match_len, ACL_USE_L7REQ_VOLATILE },
+ { "path_reg", "path", acl_parse_reg, acl_match_reg, ACL_USE_L7REQ_VOLATILE },
+ { "path_sub", "path", acl_parse_str, acl_match_sub, ACL_USE_L7REQ_VOLATILE },
- { "req_proto_http", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_L7REQ_PERMANENT, 0 },
- { "req_ver", NULL, acl_parse_ver, acl_match_str, ACL_USE_L7REQ_VOLATILE, 0 },
- { "resp_ver", NULL, acl_parse_ver, acl_match_str, ACL_USE_L7RTR_VOLATILE, 0 },
+ { "req_proto_http", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_L7REQ_PERMANENT },
+ { "req_ver", NULL, acl_parse_ver, acl_match_str, ACL_USE_L7REQ_VOLATILE },
+ { "resp_ver", NULL, acl_parse_ver, acl_match_str, ACL_USE_L7RTR_VOLATILE },
- { "scook", "scook", acl_parse_str, acl_match_str, ACL_USE_L7RTR_VOLATILE, ARG1(0,STR) },
- { "scook_beg", "scook", acl_parse_str, acl_match_beg, ACL_USE_L7RTR_VOLATILE, ARG1(0,STR) },
- { "scook_cnt", "scook_cnt", acl_parse_int, acl_match_int, ACL_USE_L7RTR_VOLATILE, ARG1(0,STR) },
- { "scook_dir", "scook", acl_parse_str, acl_match_dir, ACL_USE_L7RTR_VOLATILE, ARG1(0,STR) },
- { "scook_dom", "scook", acl_parse_str, acl_match_dom, ACL_USE_L7RTR_VOLATILE, ARG1(0,STR) },
- { "scook_end", "scook", acl_parse_str, acl_match_end, ACL_USE_L7RTR_VOLATILE, ARG1(0,STR) },
- { "scook_len", "scook", acl_parse_int, acl_match_len, ACL_USE_L7RTR_VOLATILE, ARG1(0,STR) },
- { "scook_reg", "scook", acl_parse_reg, acl_match_reg, ACL_USE_L7RTR_VOLATILE, ARG1(0,STR) },
- { "scook_sub", "scook", acl_parse_str, acl_match_sub, ACL_USE_L7RTR_VOLATILE, ARG1(0,STR) },
- { "scook_val", "scook_val", acl_parse_int, acl_match_int, ACL_USE_L7RTR_VOLATILE, ARG1(0,STR) },
+ { "scook", "scook", acl_parse_str, acl_match_str, ACL_USE_L7RTR_VOLATILE },
+ { "scook_beg", "scook", acl_parse_str, acl_match_beg, ACL_USE_L7RTR_VOLATILE },
+ { "scook_cnt", "scook_cnt", acl_parse_int, acl_match_int, ACL_USE_L7RTR_VOLATILE },
+ { "scook_dir", "scook", acl_parse_str, acl_match_dir, ACL_USE_L7RTR_VOLATILE },
+ { "scook_dom", "scook", acl_parse_str, acl_match_dom, ACL_USE_L7RTR_VOLATILE },
+ { "scook_end", "scook", acl_parse_str, acl_match_end, ACL_USE_L7RTR_VOLATILE },
+ { "scook_len", "scook", acl_parse_int, acl_match_len, ACL_USE_L7RTR_VOLATILE },
+ { "scook_reg", "scook", acl_parse_reg, acl_match_reg, ACL_USE_L7RTR_VOLATILE },
+ { "scook_sub", "scook", acl_parse_str, acl_match_sub, ACL_USE_L7RTR_VOLATILE },
+ { "scook_val", "scook_val", acl_parse_int, acl_match_int, ACL_USE_L7RTR_VOLATILE },
- { "shdr", "shdr", acl_parse_str, acl_match_str, ACL_USE_L7RTR_VOLATILE, ARG2(0,STR,SINT), val_hdr },
- { "shdr_beg", "shdr", acl_parse_str, acl_match_beg, ACL_USE_L7RTR_VOLATILE, ARG2(0,STR,SINT), val_hdr },
- { "shdr_cnt", "shdr_cnt", acl_parse_int, acl_match_int, ACL_USE_L7RTR_VOLATILE, ARG1(0,STR) },
- { "shdr_dir", "shdr", acl_parse_str, acl_match_dir, ACL_USE_L7RTR_VOLATILE, ARG2(0,STR,SINT), val_hdr },
- { "shdr_dom", "shdr", acl_parse_str, acl_match_dom, ACL_USE_L7RTR_VOLATILE, ARG2(0,STR,SINT), val_hdr },
- { "shdr_end", "shdr", acl_parse_str, acl_match_end, ACL_USE_L7RTR_VOLATILE, ARG2(0,STR,SINT), val_hdr },
- { "shdr_ip", "shdr_ip", acl_parse_ip, acl_match_ip, ACL_USE_L7RTR_VOLATILE, ARG2(0,STR,SINT), val_hdr },
- { "shdr_len", "shdr", acl_parse_int, acl_match_len, ACL_USE_L7RTR_VOLATILE, ARG2(0,STR,SINT), val_hdr },
- { "shdr_reg", "shdr", acl_parse_reg, acl_match_reg, ACL_USE_L7RTR_VOLATILE, ARG2(0,STR,SINT), val_hdr },
- { "shdr_sub", "shdr", acl_parse_str, acl_match_sub, ACL_USE_L7RTR_VOLATILE, ARG2(0,STR,SINT), val_hdr },
- { "shdr_val", "shdr_val", acl_parse_int, acl_match_int, ACL_USE_L7RTR_VOLATILE, ARG2(0,STR,SINT), val_hdr },
+ { "shdr", "shdr", acl_parse_str, acl_match_str, ACL_USE_L7RTR_VOLATILE, val_hdr },
+ { "shdr_beg", "shdr", acl_parse_str, acl_match_beg, ACL_USE_L7RTR_VOLATILE, val_hdr },
+ { "shdr_cnt", "shdr_cnt", acl_parse_int, acl_match_int, ACL_USE_L7RTR_VOLATILE },
+ { "shdr_dir", "shdr", acl_parse_str, acl_match_dir, ACL_USE_L7RTR_VOLATILE, val_hdr },
+ { "shdr_dom", "shdr", acl_parse_str, acl_match_dom, ACL_USE_L7RTR_VOLATILE, val_hdr },
+ { "shdr_end", "shdr", acl_parse_str, acl_match_end, ACL_USE_L7RTR_VOLATILE, val_hdr },
+ { "shdr_ip", "shdr_ip", acl_parse_ip, acl_match_ip, ACL_USE_L7RTR_VOLATILE, val_hdr },
+ { "shdr_len", "shdr", acl_parse_int, acl_match_len, ACL_USE_L7RTR_VOLATILE, val_hdr },
+ { "shdr_reg", "shdr", acl_parse_reg, acl_match_reg, ACL_USE_L7RTR_VOLATILE, val_hdr },
+ { "shdr_sub", "shdr", acl_parse_str, acl_match_sub, ACL_USE_L7RTR_VOLATILE, val_hdr },
+ { "shdr_val", "shdr_val", acl_parse_int, acl_match_int, ACL_USE_L7RTR_VOLATILE, val_hdr },
- { "status", NULL, acl_parse_int, acl_match_int, ACL_USE_L7RTR_PERMANENT, 0 },
+ { "status", NULL, acl_parse_int, acl_match_int, ACL_USE_L7RTR_PERMANENT },
- { "url", "url", acl_parse_str, acl_match_str, ACL_USE_L7REQ_VOLATILE, 0 },
- { "url_beg", "url", acl_parse_str, acl_match_beg, ACL_USE_L7REQ_VOLATILE, 0 },
- { "url_dir", "url", acl_parse_str, acl_match_dir, ACL_USE_L7REQ_VOLATILE, 0 },
- { "url_dom", "url", acl_parse_str, acl_match_dom, ACL_USE_L7REQ_VOLATILE, 0 },
- { "url_end", "url", acl_parse_str, acl_match_end, ACL_USE_L7REQ_VOLATILE, 0 },
- { "url_ip", "url_ip", acl_parse_ip, acl_match_ip, ACL_USE_L7REQ_VOLATILE, 0 },
- { "url_len", "url", acl_parse_int, acl_match_len, ACL_USE_L7REQ_VOLATILE, 0 },
- { "url_port", "url_port", acl_parse_int, acl_match_int, ACL_USE_L7REQ_VOLATILE, 0 },
- { "url_reg", "url", acl_parse_reg, acl_match_reg, ACL_USE_L7REQ_VOLATILE, 0 },
- { "url_sub", "url", acl_parse_str, acl_match_sub, ACL_USE_L7REQ_VOLATILE, 0 },
+ { "url", "url", acl_parse_str, acl_match_str, ACL_USE_L7REQ_VOLATILE },
+ { "url_beg", "url", acl_parse_str, acl_match_beg, ACL_USE_L7REQ_VOLATILE },
+ { "url_dir", "url", acl_parse_str, acl_match_dir, ACL_USE_L7REQ_VOLATILE },
+ { "url_dom", "url", acl_parse_str, acl_match_dom, ACL_USE_L7REQ_VOLATILE },
+ { "url_end", "url", acl_parse_str, acl_match_end, ACL_USE_L7REQ_VOLATILE },
+ { "url_ip", "url_ip", acl_parse_ip, acl_match_ip, ACL_USE_L7REQ_VOLATILE },
+ { "url_len", "url", acl_parse_int, acl_match_len, ACL_USE_L7REQ_VOLATILE },
+ { "url_port", "url_port", acl_parse_int, acl_match_int, ACL_USE_L7REQ_VOLATILE },
+ { "url_reg", "url", acl_parse_reg, acl_match_reg, ACL_USE_L7REQ_VOLATILE },
+ { "url_sub", "url", acl_parse_str, acl_match_sub, ACL_USE_L7REQ_VOLATILE },
- { "urlp", "urlp", acl_parse_str, acl_match_str, ACL_USE_L7REQ_VOLATILE, ARG2(1,STR,STR) },
- { "urlp_beg", "urlp", acl_parse_str, acl_match_beg, ACL_USE_L7REQ_VOLATILE, ARG2(1,STR,STR) },
- { "urlp_dir", "urlp", acl_parse_str, acl_match_dir, ACL_USE_L7REQ_VOLATILE, ARG2(1,STR,STR) },
- { "urlp_dom", "urlp", acl_parse_str, acl_match_dom, ACL_USE_L7REQ_VOLATILE, ARG2(1,STR,STR) },
- { "urlp_end", "urlp", acl_parse_str, acl_match_end, ACL_USE_L7REQ_VOLATILE, ARG2(1,STR,STR) },
- { "urlp_ip", "urlp", acl_parse_ip, acl_match_ip, ACL_USE_L7REQ_VOLATILE, ARG2(1,STR,STR) },
- { "urlp_len", "urlp", acl_parse_int, acl_match_len, ACL_USE_L7REQ_VOLATILE, ARG2(1,STR,STR) },
- { "urlp_reg", "urlp", acl_parse_reg, acl_match_reg, ACL_USE_L7REQ_VOLATILE, ARG2(1,STR,STR) },
- { "urlp_sub", "urlp", acl_parse_str, acl_match_sub, ACL_USE_L7REQ_VOLATILE, ARG2(1,STR,STR) },
- { "urlp_val", "urlp_val", acl_parse_int, acl_match_int, ACL_USE_L7REQ_VOLATILE, ARG2(1,STR,STR) },
+ { "urlp", "urlp", acl_parse_str, acl_match_str, ACL_USE_L7REQ_VOLATILE },
+ { "urlp_beg", "urlp", acl_parse_str, acl_match_beg, ACL_USE_L7REQ_VOLATILE },
+ { "urlp_dir", "urlp", acl_parse_str, acl_match_dir, ACL_USE_L7REQ_VOLATILE },
+ { "urlp_dom", "urlp", acl_parse_str, acl_match_dom, ACL_USE_L7REQ_VOLATILE },
+ { "urlp_end", "urlp", acl_parse_str, acl_match_end, ACL_USE_L7REQ_VOLATILE },
+ { "urlp_ip", "urlp", acl_parse_ip, acl_match_ip, ACL_USE_L7REQ_VOLATILE },
+ { "urlp_len", "urlp", acl_parse_int, acl_match_len, ACL_USE_L7REQ_VOLATILE },
+ { "urlp_reg", "urlp", acl_parse_reg, acl_match_reg, ACL_USE_L7REQ_VOLATILE },
+ { "urlp_sub", "urlp", acl_parse_str, acl_match_sub, ACL_USE_L7REQ_VOLATILE },
+ { "urlp_val", "urlp_val", acl_parse_int, acl_match_int, ACL_USE_L7REQ_VOLATILE },
{ /* END */ },
}};
diff --git a/src/proto_tcp.c b/src/proto_tcp.c
index b939369..8f631f8 100644
--- a/src/proto_tcp.c
+++ b/src/proto_tcp.c
@@ -1612,10 +1612,10 @@
* Please take care of keeping this list alphabetically sorted.
*/
static struct acl_kw_list acl_kws = {{ },{
- { "dst", NULL, acl_parse_ip, acl_match_ip, ACL_USE_TCP4_PERMANENT, 0 },
- { "dst_port", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP_PERMANENT, 0 },
- { "src", NULL, acl_parse_ip, acl_match_ip, ACL_USE_TCP4_PERMANENT, 0 },
- { "src_port", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP_PERMANENT, 0 },
+ { "dst", NULL, acl_parse_ip, acl_match_ip, ACL_USE_TCP4_PERMANENT },
+ { "dst_port", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP_PERMANENT },
+ { "src", NULL, acl_parse_ip, acl_match_ip, ACL_USE_TCP4_PERMANENT },
+ { "src_port", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP_PERMANENT },
{ /* END */ },
}};
diff --git a/src/session.c b/src/session.c
index c0d8da5..0a2d0b2 100644
--- a/src/session.c
+++ b/src/session.c
@@ -3613,59 +3613,59 @@
* Please take care of keeping this list alphabetically sorted.
*/
static struct acl_kw_list acl_kws = {{ },{
- { "sc1_bytes_in_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc1_bytes_out_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc1_clr_gpc0", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc1_conn_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc1_conn_cur", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc1_conn_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc1_get_gpc0", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc1_http_err_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc1_http_err_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc1_http_req_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc1_http_req_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc1_inc_gpc0", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc1_kbytes_in", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE, 0 },
- { "sc1_kbytes_out", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE, 0 },
- { "sc1_sess_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc1_sess_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc1_trackers", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc2_bytes_in_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc2_bytes_out_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc2_clr_gpc0", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc2_conn_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc2_conn_cur", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc2_conn_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc2_get_gpc0", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc2_http_err_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc2_http_err_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc2_http_req_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc2_http_req_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc2_inc_gpc0", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc2_kbytes_in", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE, 0 },
- { "sc2_kbytes_out", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE, 0 },
- { "sc2_sess_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc2_sess_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "sc2_trackers", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, 0 },
- { "src_bytes_in_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE, ARG1(1,TAB) },
- { "src_bytes_out_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE, ARG1(1,TAB) },
- { "src_clr_gpc0", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE, ARG1(1,TAB) },
- { "src_conn_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE, ARG1(1,TAB) },
- { "src_conn_cur", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE, ARG1(1,TAB) },
- { "src_conn_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE, ARG1(1,TAB) },
- { "src_get_gpc0", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE, ARG1(1,TAB) },
- { "src_http_err_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE, ARG1(1,TAB) },
- { "src_http_err_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE, ARG1(1,TAB) },
- { "src_http_req_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE, ARG1(1,TAB) },
- { "src_http_req_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE, ARG1(1,TAB) },
- { "src_inc_gpc0", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE, ARG1(1,TAB) },
- { "src_kbytes_in", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE, ARG1(1,TAB) },
- { "src_kbytes_out", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE, ARG1(1,TAB) },
- { "src_sess_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE, ARG1(1,TAB) },
- { "src_sess_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE, ARG1(1,TAB) },
- { "src_updt_conn_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE, ARG1(1,TAB) },
- { "table_avl", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, ARG1(1,TAB) },
- { "table_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING, ARG1(1,TAB) },
+ { "sc1_bytes_in_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc1_bytes_out_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc1_clr_gpc0", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc1_conn_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc1_conn_cur", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc1_conn_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc1_get_gpc0", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc1_http_err_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc1_http_err_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc1_http_req_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc1_http_req_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc1_inc_gpc0", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc1_kbytes_in", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE },
+ { "sc1_kbytes_out", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE },
+ { "sc1_sess_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc1_sess_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc1_trackers", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc2_bytes_in_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc2_bytes_out_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc2_clr_gpc0", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc2_conn_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc2_conn_cur", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc2_conn_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc2_get_gpc0", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc2_http_err_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc2_http_err_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc2_http_req_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc2_http_req_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc2_inc_gpc0", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc2_kbytes_in", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE },
+ { "sc2_kbytes_out", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE },
+ { "sc2_sess_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc2_sess_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "sc2_trackers", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "src_bytes_in_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE },
+ { "src_bytes_out_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE },
+ { "src_clr_gpc0", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE },
+ { "src_conn_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE },
+ { "src_conn_cur", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE },
+ { "src_conn_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE },
+ { "src_get_gpc0", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE },
+ { "src_http_err_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE },
+ { "src_http_err_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE },
+ { "src_http_req_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE },
+ { "src_http_req_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE },
+ { "src_inc_gpc0", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE },
+ { "src_kbytes_in", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE },
+ { "src_kbytes_out", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE },
+ { "src_sess_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE },
+ { "src_sess_rate", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE },
+ { "src_updt_conn_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_TCP4_VOLATILE },
+ { "table_avl", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
+ { "table_cnt", NULL, acl_parse_int, acl_match_int, ACL_USE_NOTHING },
{ /* END */ },
}};
diff --git a/src/ssl_sock.c b/src/ssl_sock.c
index 1106d1d..ade1fe8 100644
--- a/src/ssl_sock.c
+++ b/src/ssl_sock.c
@@ -2967,40 +2967,40 @@
* Please take care of keeping this list alphabetically sorted.
*/
static struct acl_kw_list acl_kws = {{ },{
- { "ssl_c_ca_err", NULL, acl_parse_int, acl_match_int, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_c_ca_err_depth", NULL, acl_parse_int, acl_match_int, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_c_err", NULL, acl_parse_int, acl_match_int, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_c_i_dn", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT, ARG2(0,STR,SINT) },
- { "ssl_c_key_alg", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_c_notafter", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_c_notbefore", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_c_sig_alg", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_c_s_dn", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT, ARG2(0,STR,SINT) },
- { "ssl_c_serial", NULL, acl_parse_bin, acl_match_bin, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_c_used", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_c_verify", NULL, acl_parse_int, acl_match_int, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_c_version", NULL, acl_parse_int, acl_match_int, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_f_i_dn", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT, ARG2(0,STR,SINT) },
- { "ssl_f_key_alg", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_f_notafter", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_f_notbefore", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_f_sig_alg", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_f_s_dn", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT, ARG2(0,STR,SINT) },
- { "ssl_f_serial", NULL, acl_parse_bin, acl_match_bin, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_f_version", NULL, acl_parse_int, acl_match_int, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_fc", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_fc_alg_keysize", NULL, acl_parse_int, acl_match_int, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_fc_cipher", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_fc_has_crt", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_fc_has_sni", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_L6REQ_PERMANENT, 0 },
+ { "ssl_c_ca_err", NULL, acl_parse_int, acl_match_int, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_c_ca_err_depth", NULL, acl_parse_int, acl_match_int, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_c_err", NULL, acl_parse_int, acl_match_int, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_c_i_dn", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_c_key_alg", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_c_notafter", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_c_notbefore", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_c_sig_alg", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_c_s_dn", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_c_serial", NULL, acl_parse_bin, acl_match_bin, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_c_used", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_c_verify", NULL, acl_parse_int, acl_match_int, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_c_version", NULL, acl_parse_int, acl_match_int, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_f_i_dn", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_f_key_alg", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_f_notafter", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_f_notbefore", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_f_sig_alg", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_f_s_dn", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_f_serial", NULL, acl_parse_bin, acl_match_bin, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_f_version", NULL, acl_parse_int, acl_match_int, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_fc", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_fc_alg_keysize", NULL, acl_parse_int, acl_match_int, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_fc_cipher", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_fc_has_crt", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_fc_has_sni", NULL, acl_parse_nothing, acl_match_nothing, ACL_USE_L6REQ_PERMANENT },
#ifdef OPENSSL_NPN_NEGOTIATED
- { "ssl_fc_npn", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT, 0 },
+ { "ssl_fc_npn", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT },
#endif
- { "ssl_fc_protocol", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_fc_use_keysize", NULL, acl_parse_int, acl_match_int, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_fc_sni", "ssl_fc_sni", acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_fc_sni_end", "ssl_fc_sni", acl_parse_str, acl_match_end, ACL_USE_L6REQ_PERMANENT, 0 },
- { "ssl_fc_sni_reg", "ssl_fc_sni", acl_parse_reg, acl_match_reg, ACL_USE_L6REQ_PERMANENT, 0 },
+ { "ssl_fc_protocol", NULL, acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_fc_use_keysize", NULL, acl_parse_int, acl_match_int, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_fc_sni", "ssl_fc_sni", acl_parse_str, acl_match_str, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_fc_sni_end", "ssl_fc_sni", acl_parse_str, acl_match_end, ACL_USE_L6REQ_PERMANENT },
+ { "ssl_fc_sni_reg", "ssl_fc_sni", acl_parse_reg, acl_match_reg, ACL_USE_L6REQ_PERMANENT },
{ /* END */ },
}};