diff options
author | Ondrej Zajicek <santiago@crfreenet.org> | 2013-10-21 14:58:32 +0200 |
---|---|---|
committer | Ondrej Zajicek <santiago@crfreenet.org> | 2013-10-21 14:59:35 +0200 |
commit | a15dab76f93337b07b4b03a64ac3bac26285dfd9 (patch) | |
tree | ef2593148938733814a8b4b1a6fceb60e5c30886 /nest/a-path.c | |
parent | f8cc7396cf25328b002394bbd7af679188b03370 (diff) |
Implements 'allow local as' option.
Similar to allowas-in option on other routers.
Diffstat (limited to 'nest/a-path.c')
-rw-r--r-- | nest/a-path.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/nest/a-path.c b/nest/a-path.c index b1812981..dc36e653 100644 --- a/nest/a-path.c +++ b/nest/a-path.c @@ -244,10 +244,11 @@ as_path_get_first(struct adata *path, u32 *last_as) } int -as_path_is_member(struct adata *path, u32 as) +as_path_contains(struct adata *path, u32 as, int min) { u8 *p = path->data; u8 *q = p+path->length; + int num = 0; int i, n; while (p<q) @@ -257,7 +258,8 @@ as_path_is_member(struct adata *path, u32 as) for(i=0; i<n; i++) { if (get_as(p) == as) - return 1; + if (++num == min) + return 1; p += BS; } } |