summaryrefslogtreecommitdiff
path: root/usr.sbin/bgpd/rde.h
diff options
context:
space:
mode:
authorClaudio Jeker <claudio@cvs.openbsd.org>2006-01-10 16:11:13 +0000
committerClaudio Jeker <claudio@cvs.openbsd.org>2006-01-10 16:11:13 +0000
commit979d35bc27826ea04c42887dd10973449c449bd0 (patch)
treed406062a85f822add1cd5779f661f6e385d50b51 /usr.sbin/bgpd/rde.h
parent3193574409f162cafce3586f8e32ab5bb7899ee9 (diff)
The attributes cache broke the set community filterset because community_set()
modified the attribute data directly and corrupted the cache by doing it. It is no longer allowed to modify attributes via attr_optget() -> change attr->data. Instead remove the old attribute from the aspath and then add a new modifed one again. Included in this change is the removal of a "feature" that allowed only one community per AS. If you had problems to add multiple communities via filters then this was the problem. Looks good Henning.
Diffstat (limited to 'usr.sbin/bgpd/rde.h')
-rw-r--r--usr.sbin/bgpd/rde.h4
1 files changed, 2 insertions, 2 deletions
diff --git a/usr.sbin/bgpd/rde.h b/usr.sbin/bgpd/rde.h
index 8e4a67dfcb8..ae049bdee7a 100644
--- a/usr.sbin/bgpd/rde.h
+++ b/usr.sbin/bgpd/rde.h
@@ -1,4 +1,4 @@
-/* $OpenBSD: rde.h,v 1.80 2006/01/05 16:00:07 claudio Exp $ */
+/* $OpenBSD: rde.h,v 1.81 2006/01/10 16:11:12 claudio Exp $ */
/*
* Copyright (c) 2003, 2004 Claudio Jeker <claudio@openbsd.org> and
@@ -283,7 +283,7 @@ int aspath_compare(struct aspath *, struct aspath *);
struct aspath *aspath_prepend(struct aspath *, u_int16_t, int);
int aspath_match(struct aspath *, enum as_spec, u_int16_t);
int community_match(void *, u_int16_t, int, int);
-int community_set(struct attr *, int, int);
+int community_set(struct rde_aspath *, int, int);
/* rde_rib.c */
void path_init(u_int32_t);