diff options
author | 2005-06-04 22:58:03 +0000 | |
---|---|---|
committer | 2005-06-04 22:58:03 +0000 | |
commit | 195a6a88929ebd5dbcf8cd9f85655cda0624cd79 (patch) | |
tree | 65fe7d5b6a286e39f0062fe118111960bfce69e5 | |
parent | use the recorded error code to prevent sending out multiple notifications (diff) | |
download | wireguard-openbsd-195a6a88929ebd5dbcf8cd9f85655cda0624cd79.tar.xz wireguard-openbsd-195a6a88929ebd5dbcf8cd9f85655cda0624cd79.zip |
do not send out suberrorcodes for cease errors; there are none in the
standard
-rw-r--r-- | usr.sbin/bgpd/session.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/usr.sbin/bgpd/session.c b/usr.sbin/bgpd/session.c index 3c461341842..4c40bfff92d 100644 --- a/usr.sbin/bgpd/session.c +++ b/usr.sbin/bgpd/session.c @@ -1,4 +1,4 @@ -/* $OpenBSD: session.c,v 1.223 2005/06/04 22:54:22 henning Exp $ */ +/* $OpenBSD: session.c,v 1.224 2005/06/04 22:58:03 henning Exp $ */ /* * Copyright (c) 2003, 2004, 2005 Henning Brauer <henning@openbsd.org> @@ -1366,6 +1366,7 @@ session_notification(struct peer *peer, u_int8_t errcode, u_int8_t subcode, struct mrt *mrt; ssize_t len; int errs = 0; + u_int8_t null8 = 0; if (peer->stats.last_sent_errcode) /* some notifctn already sent */ return; @@ -1384,7 +1385,10 @@ session_notification(struct peer *peer, u_int8_t errcode, u_int8_t subcode, errs += buf_add(buf, &msg.len, sizeof(msg.len)); errs += buf_add(buf, &msg.type, sizeof(msg.type)); errs += buf_add(buf, &errcode, sizeof(errcode)); - errs += buf_add(buf, &subcode, sizeof(subcode)); + if (errcode == ERR_CEASE) + errs += buf_add(buf, &null8, sizeof(null8)); + else + errs += buf_add(buf, &subcode, sizeof(subcode)); if (datalen > 0) errs += buf_add(buf, data, datalen); |