summaryrefslogtreecommitdiff
path: root/nest/a-path.c
diff options
context:
space:
mode:
authorOndrej Zajicek <santiago@crfreenet.org>2013-10-21 14:58:32 +0200
committerOndrej Zajicek <santiago@crfreenet.org>2013-10-21 14:59:35 +0200
commita15dab76f93337b07b4b03a64ac3bac26285dfd9 (patch)
treeef2593148938733814a8b4b1a6fceb60e5c30886 /nest/a-path.c
parentf8cc7396cf25328b002394bbd7af679188b03370 (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.c6
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;
}
}