diff options
author | Michele Marchetto <michele@cvs.openbsd.org> | 2009-04-16 20:11:13 +0000 |
---|---|---|
committer | Michele Marchetto <michele@cvs.openbsd.org> | 2009-04-16 20:11:13 +0000 |
commit | f1afa167968d41d3e1f4e207258ae903ea8e6170 (patch) | |
tree | dd9bfee4d7c701bb1a7c8d2870e865e9b0037306 /usr.sbin/dvmrpd/rde.c | |
parent | 53a57edf4fd09c7d8a6e6f38bf1f299be55f51ab (diff) |
Notify the rde when a neighbor goes down.
When this happens we have to rebuild the list of downstream
interfaces.
ok claudio@
Diffstat (limited to 'usr.sbin/dvmrpd/rde.c')
-rw-r--r-- | usr.sbin/dvmrpd/rde.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/usr.sbin/dvmrpd/rde.c b/usr.sbin/dvmrpd/rde.c index 92aac1e4a81..2f40a042370 100644 --- a/usr.sbin/dvmrpd/rde.c +++ b/usr.sbin/dvmrpd/rde.c @@ -1,4 +1,4 @@ -/* $OpenBSD: rde.c,v 1.14 2009/04/11 10:21:20 michele Exp $ */ +/* $OpenBSD: rde.c,v 1.15 2009/04/16 20:11:12 michele Exp $ */ /* * Copyright (c) 2004, 2005 Claudio Jeker <claudio@openbsd.org> @@ -193,6 +193,7 @@ rde_dispatch_imsg(int fd, short event, void *bula) struct imsgbuf *ibuf = bula; struct imsg imsg; struct route_report rr; + struct nbr_msg nm; int i, n, connected = 0; struct iface *iface; @@ -297,6 +298,14 @@ rde_dispatch_imsg(int fd, short event, void *bula) rde_group_list_remove(iface, mfc.group); break; + case IMSG_NBR_DEL: + if (imsg.hdr.len - IMSG_HEADER_SIZE != sizeof(nm)) + fatalx("invalid size of OE request"); + + memcpy(&nm, imsg.data, sizeof(nm)); + 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"); |