diff --git a/include/types/proto_tcp.h b/include/types/proto_tcp.h index ce21daefcb..f41933b5b0 100644 --- a/include/types/proto_tcp.h +++ b/include/types/proto_tcp.h @@ -40,6 +40,7 @@ enum { TCP_ACT_CLOSE, /* close at the sender's */ TCP_ACT_CAPTURE, /* capture a fetched sample */ TCP_ACT_CUSTOM, /* Use for custom registered keywords. */ + TCP_ACT_CUSTOM_CONT, /* Use for custom registered keywords. */ }; struct capture_prm { diff --git a/src/proto_tcp.c b/src/proto_tcp.c index 38883786cf..4a4a806d15 100644 --- a/src/proto_tcp.c +++ b/src/proto_tcp.c @@ -1221,8 +1221,10 @@ int tcp_inspect_request(struct stream *s, struct channel *req, int an_bit) goto missing_data; } - /* otherwise accept */ - break; + /* accept */ + if (rule->action == TCP_ACT_CUSTOM) + break; + /* otherwise continue */ } } } @@ -1342,8 +1344,10 @@ int tcp_inspect_response(struct stream *s, struct channel *rep, int an_bit) return 0; } - /* otherwise accept */ - break; + /* accept */ + if (rule->action == TCP_ACT_CUSTOM) + break; + /* otherwise continue */ } } }