diff options
author | Michele Marchetto <michele@cvs.openbsd.org> | 2009-09-06 09:52:15 +0000 |
---|---|---|
committer | Michele Marchetto <michele@cvs.openbsd.org> | 2009-09-06 09:52:15 +0000 |
commit | 3facc6da357ea27fa205af3b8c1ea870e0af2a28 (patch) | |
tree | b233e737023af7b6604b978d7c59aa4f39ef52e2 /usr.sbin/dvmrpd/rde.c | |
parent | f77080228e4c6c599926bf9750366c6b9f3021f9 (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.c | 5 |
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", |