From 0277cc0baf1439a779f4c3ed8b2a77f29f5cfed7 Mon Sep 17 00:00:00 2001 From: Ondrej Zajicek Date: Thu, 8 Apr 2010 17:47:14 +0200 Subject: Revert "Fixes behavior of defined() on bgp_community attribute." This reverts commit 74e9331fe0892c4c96b4c4d7db3f14bb7e9d928e. --- filter/filter.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) (limited to 'filter/filter.c') diff --git a/filter/filter.c b/filter/filter.c index ae3b03a..3230610 100644 --- a/filter/filter.c +++ b/filter/filter.c @@ -621,6 +621,12 @@ 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; @@ -836,11 +842,7 @@ interpret(struct f_inst *what) case P('C','a'): /* Community list add or delete */ TWOARGS; - - /* 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) + if (v1.type != T_CLIST) runtime("Can't add/delete to non-clist"); if ((v2.type == T_PAIR) || (v2.type == T_QUAD)) -- cgit v1.2.3