MINOR: tcp: prepare support for the "capture" action
A few minor entries will be needed to capture sample fetches in requests
or responses. This patch just prepares the code for this.
diff --git a/include/types/arg.h b/include/types/arg.h
index 566f174..809f367 100644
--- a/include/types/arg.h
+++ b/include/types/arg.h
@@ -58,6 +58,7 @@
ARGC_HRS, /* http-response */
ARGC_UIF, /* unique-id-format */
ARGC_RDR, /* redirect */
+ ARGC_CAP, /* capture rule */
};
/* some types that are externally defined */
diff --git a/include/types/proto_tcp.h b/include/types/proto_tcp.h
index 7f65244..e8f2d74 100644
--- a/include/types/proto_tcp.h
+++ b/include/types/proto_tcp.h
@@ -38,14 +38,21 @@
TCP_ACT_TRK_SC2 = 6,
TCP_ACT_TRK_SCMAX = TCP_ACT_TRK_SC0 + MAX_SESS_STKCTR - 1,
TCP_ACT_CLOSE, /* close at the sender's */
+ TCP_ACT_CAPTURE, /* capture a fetched sample */
};
+struct capture_prm {
+ struct sample_expr *expr; /* expression used as the key */
+ struct cap_hdr *hdr; /* the capture storage */
+};
+
struct tcp_rule {
struct list list;
struct acl_cond *cond;
int action;
union {
struct track_ctr_prm trk_ctr;
+ struct capture_prm cap;
} act_prm;
};
diff --git a/src/sample.c b/src/sample.c
index 66c9a9c..9f22ef9 100644
--- a/src/sample.c
+++ b/src/sample.c
@@ -971,6 +971,7 @@
case ARGC_HRS: where = "in http-response header format string in"; break;
case ARGC_UIF: where = "in unique-id-format string in"; break;
case ARGC_RDR: where = "in redirect format string in"; break;
+ case ARGC_CAP: where = "in capture rule in"; break;
case ARGC_ACL: ctx = "ACL keyword"; break;
}