]> git.ipfire.org Git - thirdparty/nftables.git/commitdiff
parser: use symbolic expression for ether too
authorPablo Neira Ayuso <pablo@netfilter.org>
Tue, 27 May 2014 15:24:39 +0000 (17:24 +0200)
committerPablo Neira Ayuso <pablo@netfilter.org>
Tue, 27 May 2014 16:04:48 +0000 (18:04 +0200)
Like in 0dbced3 ("parser: use symbolic expressions for parsing
keywords as protocol values"), convert `ether' to use a symbolic
expression.

This fixes:

 # nft add rule ip filter input meta iiftype ether
 # nft list table filter
 table ip filter {
...
iiftype 256

which was converted to network byte order.

Reported-by: Ana Rey <anarey@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
src/parser.y

index 20a836e76ff70df4727556b7d38eb2ee22306a49..38b655d77e9e98f4eb04682bc9e140860c35f604 100644 (file)
@@ -1848,10 +1848,9 @@ eth_hdr_expr             :       ETHER   eth_hdr_field
                        }
                        |       ETHER
                        {
-                               uint16_t data = ARPHRD_ETHER;
-                               $$ = constant_expr_alloc(&@$, &arphrd_type,
-                                                        BYTEORDER_BIG_ENDIAN,
-                                                        sizeof(data) * BITS_PER_BYTE, &data);
+                               $$ = symbol_expr_alloc(&@$, SYMBOL_VALUE,
+                                                      current_scope(state),
+                                                      "ether");
                        }
                        ;