]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
verdict type: handle verdict flags and encoded additional information
authorPatrick McHardy <kaber@trash.net>
Mon, 18 Aug 2014 23:35:36 +0000 (00:35 +0100)
committerPatrick McHardy <kaber@trash.net>
Mon, 18 Aug 2014 23:35:36 +0000 (00:35 +0100)
The kernel can handle this, nftables should also.

Signed-off-by: Patrick McHardy <kaber@trash.net>
src/datatype.c

index 36d59859e2ef33e18f09fb4b4a4d6dfc94e2805e..fdfee54a753cc5a6fe20e358679e0fe78de08b43 100644 (file)
@@ -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);
+               }
        }
 }