diff options
author | 2007-01-11 21:43:13 +0000 | |
---|---|---|
committer | 2007-01-11 21:43:13 +0000 | |
commit | 8b1d5e5259a46f70e999fe58d64f5e29f7d2d4ef (patch) | |
tree | 0fab25f5116ed1fcf8bd8ae4707ecc8c3c7519f7 /usr.sbin/ospfd/rde.c | |
parent | acpimadt(4) and acpiprt(4) attach to acpi(4) so add them here before jmc (diff) | |
download | wireguard-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.c | 21 |
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)) |