diff --git a/doc/configuration.txt b/doc/configuration.txt index d53ffae17..cbf3c4ff9 100644 --- a/doc/configuration.txt +++ b/doc/configuration.txt @@ -12179,6 +12179,8 @@ tcp-request content [{if | unless} ] - set-nice - set-priority-class - set-priority-offset + - set-src + - set-src-port - set-tos - set-var() - set-var-fmt() @@ -12397,6 +12399,13 @@ tcp-request content set-priority-offset [ { if | unless } ] request. Please refer to "http-request set-priority-offset" for a complete description. +tcp-request content set-src [ { if | unless } ] +tcp-request content set-src-port [ { if | unless } ] + + These actions are used to set the source IP/Port address to the value of + specified expression. Please refer to "http-request set-src" and + "http-request set-src-port" for a complete description. + tcp-request content set-tos [ { if | unless } ] This is used to set the TOS or DSCP field value of packets sent to the client diff --git a/src/tcp_act.c b/src/tcp_act.c index 25ff44677..b85cf28da 100644 --- a/src/tcp_act.c +++ b/src/tcp_act.c @@ -509,6 +509,8 @@ static struct action_kw_list tcp_req_sess_actions = {ILH, { INITCALL1(STG_REGISTER, tcp_req_sess_keywords_register, &tcp_req_sess_actions); static struct action_kw_list tcp_req_cont_actions = {ILH, { + { "set-src", tcp_parse_set_src_dst }, + { "set-src-port", tcp_parse_set_src_dst }, { "set-dst" , tcp_parse_set_src_dst }, { "set-dst-port", tcp_parse_set_src_dst }, { "set-mark", tcp_parse_set_mark },