diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/parser_bison.y | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/src/parser_bison.y b/src/parser_bison.y index 05861c3e..bdb73911 100644 --- a/src/parser_bison.y +++ b/src/parser_bison.y @@ -2329,9 +2329,16 @@ map_block : /* empty */ { $$ = $<set>-1; } } $1->key = $3; - $1->data = $5; - $1->flags |= NFT_SET_MAP; + if ($5->etype == EXPR_CT && $5->ct.key == NFT_CT_HELPER) { + $1->objtype = NFT_OBJECT_CT_HELPER; + $1->flags |= NFT_SET_OBJECT; + expr_free($5); + } else { + $1->data = $5; + $1->flags |= NFT_SET_MAP; + } + $$ = $1; } | map_block TYPE |