summaryrefslogtreecommitdiffstats
path: root/usr.sbin/ospfd/rde.c
diff options
context:
space:
mode:
authorclaudio <claudio@openbsd.org>2007-01-11 21:43:13 +0000
committerclaudio <claudio@openbsd.org>2007-01-11 21:43:13 +0000
commit8b1d5e5259a46f70e999fe58d64f5e29f7d2d4ef (patch)
tree0fab25f5116ed1fcf8bd8ae4707ecc8c3c7519f7 /usr.sbin/ospfd/rde.c
parentacpimadt(4) and acpiprt(4) attach to acpi(4) so add them here before jmc (diff)
downloadwireguard-openbsd-8b1d5e5259a46f70e999fe58d64f5e29f7d2d4ef.tar.xz
wireguard-openbsd-8b1d5e5259a46f70e999fe58d64f5e29f7d2d4ef.zip
Silently ignore unknown neighbors in the rde and ospfe imsg handler. This
is needed for upcomming reload support -- it can happen that a message to a just deleted neighbor is still pending.
Diffstat (limited to 'usr.sbin/ospfd/rde.c')
-rw-r--r--usr.sbin/ospfd/rde.c21
1 files changed, 7 insertions, 14 deletions
diff --git a/usr.sbin/ospfd/rde.c b/usr.sbin/ospfd/rde.c
index fd446650f90..7acef538711 100644
--- a/usr.sbin/ospfd/rde.c
+++ b/usr.sbin/ospfd/rde.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: rde.c,v 1.51 2007/01/11 21:35:15 claudio Exp $ */
+/* $OpenBSD: rde.c,v 1.52 2007/01/11 21:43:13 claudio Exp $ */
/*
* Copyright (c) 2004, 2005 Claudio Jeker <claudio@openbsd.org>
@@ -290,9 +290,7 @@ rde_dispatch_imsg(int fd, short event, void *bula)
nbr = rde_nbr_find(imsg.hdr.peerid);
if (nbr == NULL)
- fatalx("rde_dispatch_imsg: "
- "neighbor does not exist");
-
+ break;
if (state != nbr->state && (nbr->state & NBR_STA_FULL ||
state & NBR_STA_FULL))
@@ -305,8 +303,7 @@ rde_dispatch_imsg(int fd, short event, void *bula)
case IMSG_DB_SNAPSHOT:
nbr = rde_nbr_find(imsg.hdr.peerid);
if (nbr == NULL)
- fatalx("rde_dispatch_imsg: "
- "neighbor does not exist");
+ break;
lsa_snap(nbr->area, imsg.hdr.peerid);
@@ -316,8 +313,7 @@ rde_dispatch_imsg(int fd, short event, void *bula)
case IMSG_DD:
nbr = rde_nbr_find(imsg.hdr.peerid);
if (nbr == NULL)
- fatalx("rde_dispatch_imsg: "
- "neighbor does not exist");
+ break;
buf = imsg.data;
for (l = imsg.hdr.len - IMSG_HEADER_SIZE;
@@ -354,8 +350,7 @@ rde_dispatch_imsg(int fd, short event, void *bula)
case IMSG_LS_REQ:
nbr = rde_nbr_find(imsg.hdr.peerid);
if (nbr == NULL)
- fatalx("rde_dispatch_imsg: "
- "neighbor does not exist");
+ break;
buf = imsg.data;
for (l = imsg.hdr.len - IMSG_HEADER_SIZE;
@@ -382,8 +377,7 @@ rde_dispatch_imsg(int fd, short event, void *bula)
case IMSG_LS_UPD:
nbr = rde_nbr_find(imsg.hdr.peerid);
if (nbr == NULL)
- fatalx("rde_dispatch_imsg: "
- "neighbor does not exist");
+ break;
lsa = malloc(imsg.hdr.len - IMSG_HEADER_SIZE);
if (lsa == NULL)
@@ -480,8 +474,7 @@ rde_dispatch_imsg(int fd, short event, void *bula)
case IMSG_LS_MAXAGE:
nbr = rde_nbr_find(imsg.hdr.peerid);
if (nbr == NULL)
- fatalx("rde_dispatch_imsg: "
- "neighbor does not exist");
+ break;
if (imsg.hdr.len != IMSG_HEADER_SIZE +
sizeof(struct lsa_hdr))