summaryrefslogtreecommitdiff
path: root/usr.sbin/dvmrpd/rde.c
diff options
context:
space:
mode:
authorMichele Marchetto <michele@cvs.openbsd.org>2009-09-06 09:52:15 +0000
committerMichele Marchetto <michele@cvs.openbsd.org>2009-09-06 09:52:15 +0000
commit3facc6da357ea27fa205af3b8c1ea870e0af2a28 (patch)
treeb233e737023af7b6604b978d7c59aa4f39ef52e2 /usr.sbin/dvmrpd/rde.c
parentf77080228e4c6c599926bf9750366c6b9f3021f9 (diff)
When dvmrpd receives a prune, it must checks if every downstream member
on that interfaces has already sent prunes. If so (and there are no local groups) removes the interface from the downstream list. ok claudio@
Diffstat (limited to 'usr.sbin/dvmrpd/rde.c')
-rw-r--r--usr.sbin/dvmrpd/rde.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/usr.sbin/dvmrpd/rde.c b/usr.sbin/dvmrpd/rde.c
index 97000ff082a..301bb443410 100644
--- a/usr.sbin/dvmrpd/rde.c
+++ b/usr.sbin/dvmrpd/rde.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rde.c,v 1.20 2009/06/06 07:52:04 pyr Exp $ */
+/* $OpenBSD: rde.c,v 1.21 2009/09/06 09:52:14 michele Exp $ */
/*
* Copyright (c) 2004, 2005 Claudio Jeker <claudio@openbsd.org>
@@ -303,14 +303,15 @@ rde_dispatch_imsg(int fd, short event, void *bula)
fatalx("invalid size of OE request");
memcpy(&nm, imsg.data, sizeof(nm));
- srt_expire_nbr(nm.address, nm.ifindex);
+ srt_expire_nbr(nm.address, nm.ifindex);
break;
case IMSG_RECV_PRUNE:
if (imsg.hdr.len - IMSG_HEADER_SIZE != sizeof(p))
fatalx("invalid size of OE request");
memcpy(&p, imsg.data, sizeof(p));
+ mfc_recv_prune(&p);
break;
default:
log_debug("rde_dispatch_msg: unexpected imsg %d",