diff options
author | Patrick McHardy <kaber@trash.net> | 2014-08-19 00:35:36 +0100 |
---|---|---|
committer | Patrick McHardy <kaber@trash.net> | 2014-08-19 00:35:36 +0100 |
commit | 17ab8231cf9ff2a64c186a8104138688291c0760 (patch) | |
tree | c8e766233917ba3130c11b034538d81c1767fa2a /src | |
parent | 4b2834b7e2334e30352fc1126577df217f351cd5 (diff) |
verdict type: handle verdict flags and encoded additional information
The kernel can handle this, nftables should also.
Signed-off-by: Patrick McHardy <kaber@trash.net>
Diffstat (limited to 'src')
-rw-r--r-- | src/datatype.c | 23 |
1 files changed, 13 insertions, 10 deletions
diff --git a/src/datatype.c b/src/datatype.c index 36d59859..fdfee54a 100644 --- a/src/datatype.c +++ b/src/datatype.c @@ -176,15 +176,6 @@ const struct datatype invalid_type = { static void verdict_type_print(const struct expr *expr) { switch (expr->verdict) { - case NF_ACCEPT: - printf("accept"); - break; - case NF_DROP: - printf("drop"); - break; - case NF_QUEUE: - printf("queue"); - break; case NFT_CONTINUE: printf("continue"); break; @@ -201,7 +192,19 @@ static void verdict_type_print(const struct expr *expr) printf("return"); break; default: - BUG("invalid verdict value %u\n", expr->verdict); + switch (expr->verdict & NF_VERDICT_MASK) { + case NF_ACCEPT: + printf("accept"); + break; + case NF_DROP: + printf("drop"); + break; + case NF_QUEUE: + printf("queue"); + break; + default: + BUG("invalid verdict value %u\n", expr->verdict); + } } } |