diff options
author | Pavel Machek <pavel@ucw.cz> | 2000-04-17 13:49:21 +0200 |
---|---|---|
committer | Pavel Machek <pavel@ucw.cz> | 2000-04-17 13:49:21 +0200 |
commit | 2bd2de0188f6a0c1c9482cfc15e35c2b1b81c81a (patch) | |
tree | ff7459ee6734c293a5ab98071b386030d6421dba /filter | |
parent | 5a2455886db55ae2d1eb8934c7686b4f6586f83c (diff) | |
download | bird-2bd2de0188f6a0c1c9482cfc15e35c2b1b81c81a.tar bird-2bd2de0188f6a0c1c9482cfc15e35c2b1b81c81a.zip |
pair ~ community list matching works.
Diffstat (limited to 'filter')
-rw-r--r-- | filter/filter.c | 2 | ||||
-rw-r--r-- | filter/test.conf | 2 |
2 files changed, 4 insertions, 0 deletions
diff --git a/filter/filter.c b/filter/filter.c index f7b130a..6dc2ffd 100644 --- a/filter/filter.c +++ b/filter/filter.c @@ -63,6 +63,8 @@ val_simple_in_range(struct f_val v1, struct f_val v2) { if ((v1.type == T_PATH) && (v2.type == T_PATH_MASK)) return as_path_match(v1.val.ad, v2.val.path_mask); + if ((v1.type == T_PAIR) && (v2.type == T_CLIST)) + return int_set_contains(v2.val.ad, v1.val.i); if ((v1.type == T_IP) && (v2.type == T_PREFIX)) return !(ipa_compare(ipa_and(v2.val.px.ip, ipa_mkmask(v2.val.px.len)), ipa_and(v1.val.px.ip, ipa_mkmask(v2.val.px.len)))); diff --git a/filter/test.conf b/filter/test.conf index f266828..9e6e31d 100644 --- a/filter/test.conf +++ b/filter/test.conf @@ -52,8 +52,10 @@ clist l; l = add( l, (1,2) ); l = add( l, (2,3) ); print "Community list (1,2) (2,3) ", l; + print "Should be true: ", (2,3) ~ l; l = delete( l, (2,3) ); print "Community list (1,2) ", l; + print "Should be false: ", (2,3) ~ l; } function startup() |