From 6ae104c470eba0f8ccd78177235cb5bc724a39f3 Mon Sep 17 00:00:00 2001 From: Pablo Neira Ayuso Date: Tue, 27 May 2014 17:24:39 +0200 Subject: parser: use symbolic expression for ether too 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 Signed-off-by: Pablo Neira Ayuso --- src/parser.y | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/parser.y b/src/parser.y index 20a836e7..38b655d7 100644 --- a/src/parser.y +++ b/src/parser.y @@ -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"); } ; -- cgit v1.2.3