From f0c98d31d59526f3e0347c621123616d32c96027 Mon Sep 17 00:00:00 2001 From: Packit Date: Aug 20 2020 13:31:34 +0000 Subject: Apply patch 0031-src-Set-NFT_SET_CONCAT-flag-for-sets-with-concatenat.patch patch_name: 0031-src-Set-NFT_SET_CONCAT-flag-for-sets-with-concatenat.patch location_in_specfile: 31 present_in_specfile: true --- diff --git a/src/evaluate.c b/src/evaluate.c index 0c84816..f66251b 100644 --- a/src/evaluate.c +++ b/src/evaluate.c @@ -1360,10 +1360,16 @@ static int expr_evaluate_set(struct eval_ctx *ctx, struct expr **expr) set->size += i->size - 1; set->set_flags |= i->set_flags; expr_free(i); - } else if (!expr_is_singleton(i)) + } else if (!expr_is_singleton(i)) { set->set_flags |= NFT_SET_INTERVAL; + if (i->key->etype == EXPR_CONCAT) + set->set_flags |= NFT_SET_CONCAT; + } } + if (ctx->set && (ctx->set->flags & NFT_SET_CONCAT)) + set->set_flags |= NFT_SET_CONCAT; + set->set_flags |= NFT_SET_CONSTANT; datatype_set(set, ctx->ectx.dtype); @@ -3336,6 +3342,7 @@ static int set_evaluate(struct eval_ctx *ctx, struct set *set) memcpy(&set->desc.field_len, &set->key->field_len, sizeof(set->desc.field_len)); set->desc.field_count = set->key->field_count; + set->flags |= NFT_SET_CONCAT; } if (set_is_datamap(set->flags)) {