From: Florian Westphal Date: Sun, 21 Aug 2016 22:27:48 +0000 (+0200) Subject: ct: display bit number instead of raw value X-Git-Tag: v0.7~109 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=09d27ff9138e4be38b86499e26ad2d1116dd0f02;p=thirdparty%2Fnftables.git ct: display bit number instead of raw value ... and add test cases for ct label. Currently this dumped 'label 0x2', now 'label 1' would be shown. This makes add/list behave the same. Signed-off-by: Florian Westphal Acked-by: Pablo Neira Ayuso --- diff --git a/src/ct.c b/src/ct.c index 018ca0b9..a6829389 100644 --- a/src/ct.c +++ b/src/ct.c @@ -113,7 +113,7 @@ static void ct_label_type_print(const struct expr *expr) return; } /* can happen when connlabel.conf is altered after rules were added */ - gmp_printf("0x%Zx", expr->value); + printf("%ld\n", (long)mpz_scan1(expr->value, 0)); } static struct error_record *ct_label_type_parse(const struct expr *sym, diff --git a/tests/py/any/ct.t b/tests/py/any/ct.t index 4d13213d..7fd4f2cb 100644 --- a/tests/py/any/ct.t +++ b/tests/py/any/ct.t @@ -92,3 +92,7 @@ ct saddr 1.2.3.4;fail ct original mark 42;fail # swapped key and direction ct mark original;fail + +ct label 127;ok +ct label set 127;ok +ct label 128;fail diff --git a/tests/py/any/ct.t.payload b/tests/py/any/ct.t.payload index e64ce2ff..97f292ea 100644 --- a/tests/py/any/ct.t.payload +++ b/tests/py/any/ct.t.payload @@ -332,3 +332,14 @@ ip test-ip4 output [ bitwise reg 1 = (reg=1 & 0x00000020 ) ^ 0x00000000 ] [ cmp neq reg 1 0x00000000 ] +# ct label 127 +ip test-ip4 output + [ ct load label => reg 1 ] + [ bitwise reg 1 = (reg=1 & 0x00000000 0x00000000 0x00000000 0x80000000 ) ^ 0x00000000 0x00000000 0x00000000 0x00000000 ] + [ cmp neq reg 1 0x00000000 0x00000000 0x00000000 0x00000000 ] + +# ct label set 127 +ip test-ip4 output + [ immediate reg 1 0x00000000 0x00000000 0x00000000 0x80000000 ] + [ ct set label with reg 1 ] +