diff options
author | Pablo Neira Ayuso <pablo@netfilter.org> | 2014-05-27 17:24:39 +0200 |
---|---|---|
committer | Pablo Neira Ayuso <pablo@netfilter.org> | 2014-05-27 18:04:48 +0200 |
commit | 6ae104c470eba0f8ccd78177235cb5bc724a39f3 (patch) | |
tree | 8cae623393ca5ae15f8a3b0f17cb1eb1f3bf4262 | |
parent | dcb0a6141f4d4c6f7ad9a051a7c129bc136caf0c (diff) |
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 <anarey@gmail.com>
Signed-off-by: Pablo Neira Ayuso <pablo@netfilter.org>
-rw-r--r-- | src/parser.y | 7 |
1 files 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"); } ; |