summaryrefslogtreecommitdiffstats
path: root/proto/rip/rip.c
diff options
context:
space:
mode:
authorPavel Machek <pavel@ucw.cz>2000-05-16 16:58:06 +0200
committerPavel Machek <pavel@ucw.cz>2000-05-16 16:58:06 +0200
commit898fdd85dc4568816ac0436c1b012f2fb35ef3e4 (patch)
tree9466289af581602020b475adaf893bd24df2e8a6 /proto/rip/rip.c
parent60de3356ab9b1996a84e3ba2865176a078b6d0ca (diff)
downloadbird-898fdd85dc4568816ac0436c1b012f2fb35ef3e4.tar
bird-898fdd85dc4568816ac0436c1b012f2fb35ef3e4.zip
Rip should now reconfigure itself only if needed.
Diffstat (limited to 'proto/rip/rip.c')
-rw-r--r--proto/rip/rip.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/proto/rip/rip.c b/proto/rip/rip.c
index 44d8ce0..1ac0eff 100644
--- a/proto/rip/rip.c
+++ b/proto/rip/rip.c
@@ -887,14 +887,20 @@ rip_get_attr(eattr *a, byte *buf)
}
static int
+rip_pat_compare(struct rip_patt *a, struct rip_patt *b)
+{
+ return ((a->metric == b->metric) &&
+ (a->mode == b->mode));
+}
+
+static int
rip_reconfigure(struct proto *p, struct proto_config *c)
{
struct rip_proto_config *new = (struct rip_proto_config *) c;
int generic = sizeof(struct proto_config) + sizeof(list) /* + sizeof(struct password_item *) */;
- /* FIXME: patt_same needed */
- return 0;
-
+ if (!iface_patts_equal(&P_CF->iface_list, &new->iface_list, (void *) rip_pat_compare))
+ return 0;
if (!password_same(P_CF->passwords,
new->passwords))
return 0;