Commit 74e9331f authored by Ondřej Zajíček's avatar Ondřej Zajíček

Fixes behavior of defined() on bgp_community attribute.

parent 1528d30a
......@@ -607,12 +607,6 @@ interpret(struct f_inst *what)
e = ea_find( (*f_rte)->attrs->eattrs, what->a2.i );
if (!e) {
/* A special case: undefined int_set looks like empty int_set */
if ((what->aux & EAF_TYPE_MASK) == EAF_TYPE_INT_SET) {
res.type = T_CLIST;
res.val.ad = adata_empty(f_pool);
break;
}
/* Undefined value */
res.type = T_VOID;
break;
......@@ -821,7 +815,11 @@ interpret(struct f_inst *what)
case P('C','a'): /* Community list add or delete */
TWOARGS;
if (v1.type != T_CLIST)
/* Replace undefined value with empty community list */
if (v1.type == T_VOID)
v1.val.ad = adata_empty(f_pool);
else if (v1.type != T_CLIST)
runtime("Can't add/delete to non-clist");
if (v2.type != T_PAIR)
runtime("Can't add/delete non-pair");
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment