]> git.ipfire.org Git - thirdparty/bird.git/commitdiff
Revert "Fixes behavior of defined() on bgp_community attribute."
authorOndrej Zajicek <santiago@crfreenet.org>
Thu, 8 Apr 2010 15:47:14 +0000 (17:47 +0200)
committerOndrej Zajicek <santiago@crfreenet.org>
Thu, 8 Apr 2010 15:47:14 +0000 (17:47 +0200)
This reverts commit 74e9331fe0892c4c96b4c4d7db3f14bb7e9d928e.

filter/filter.c

index ae3b03ab44de3d06fbaccb6c33845d41a796db4e..32306101245998cd36e22195f816500329c754cf 100644 (file)
@@ -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))