Same comment as in the kernel patch: parsing and argument checking should be done better here.
Signed-off-by: Marcelo Ricardo Leitner <mleit...@redhat.com> --- include/uapi/linux/tc_act/tc_ct.h | 1 + tc/m_ct.c | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/include/uapi/linux/tc_act/tc_ct.h b/include/uapi/linux/tc_act/tc_ct.h index 009e53ee83fb3125bc5c4ca86954af3bf6a0287a..636f435b86e006aa36034f86c65fd5c220ca8a13 100644 --- a/include/uapi/linux/tc_act/tc_ct.h +++ b/include/uapi/linux/tc_act/tc_ct.h @@ -26,6 +26,7 @@ enum { enum { TC_CT_COMMIT, TC_CT_FORCE, + TC_CT_CLEAR, __TC_CT_MAX }; #define TC_CT_MAX (__TC_CT_MAX - 1) diff --git a/tc/m_ct.c b/tc/m_ct.c index c3c1a66848ae52c4522ac7e07822febf2b52e5f1..0221fc666a84dc3df73eff97beca997b9b11a9f0 100644 --- a/tc/m_ct.c +++ b/tc/m_ct.c @@ -27,7 +27,7 @@ static void explain(void) { fprintf(stderr, - "Usage: ct [mark <mark>] [zone <zone>] [label <label>] [chain <chain>] [commit [force]]\n" + "Usage: ct [mark <mark>] [zone <zone>] [label <label>] [chain <chain>] [commit [force]] [clear]\n" "where:\n"); } @@ -239,6 +239,11 @@ out: flags |= BIT(TC_CT_FORCE); goto again; } + if (!matches(*argv, "clear")) { + NEXT_ARG_FWD(); + flags |= BIT(TC_CT_CLEAR); + goto again; + } /* if (!matches(*argv, "state")) { NEXT_ARG(); ct_parse_u8(*argv, -- 2.20.1