MEDIUM: acl: use temp_pattern to store any string-type information
Now strings and data blocks are stored in the temp_pattern's chunk
and matched against this one.
The rdp_cookie currently makes extensive use of acl_fetch_rdp_cookie()
and will be a good candidate for the initial rework so that ACLs use
the patterns framework and not the other way around.
diff --git a/src/proto_tcp.c b/src/proto_tcp.c
index 207fec0..ea3692c 100644
--- a/src/proto_tcp.c
+++ b/src/proto_tcp.c
@@ -1580,11 +1580,10 @@
expr.arg_len = arg_p[0].data.str.len;
ret = acl_fetch_rdp_cookie(px, l4, NULL, ACL_DIR_REQ, &expr, &test);
- if (ret == 0 || (test.flags & ACL_TEST_F_MAY_CHANGE) || test.len == 0)
+ if (ret == 0 || (test.flags & ACL_TEST_F_MAY_CHANGE) || temp_pattern.data.str.len == 0)
return 0;
- /* init chunk as read only */
- chunk_initlen(&data->str, test.ptr, 0, test.len);
+ data->str = temp_pattern.data.str;
return 1;
}