diff options
Diffstat (limited to 'usr.sbin/eigrpd/reply.c')
| -rw-r--r-- | usr.sbin/eigrpd/reply.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/usr.sbin/eigrpd/reply.c b/usr.sbin/eigrpd/reply.c index f12f6dae10a..52dc2c6a789 100644 --- a/usr.sbin/eigrpd/reply.c +++ b/usr.sbin/eigrpd/reply.c @@ -1,4 +1,4 @@ -/* $OpenBSD: reply.c,v 1.4 2016/09/02 16:44:33 renato Exp $ */ +/* $OpenBSD: reply.c,v 1.5 2016/09/02 16:46:29 renato Exp $ */ /* * Copyright (c) 2015 Renato Westphal <renato@openbsd.org> @@ -42,7 +42,6 @@ send_reply(struct nbr *nbr, struct rinfo_head *rinfo_list, int siareply) if (rinfo_list == NULL || TAILQ_EMPTY(rinfo_list)) return; - /* don't exceed the interface's mtu */ do { if ((buf = ibuf_dynamic(PKG_DEF_SIZE, IP_MAXPACKET - sizeof(struct ip))) == NULL) @@ -71,6 +70,7 @@ send_reply(struct nbr *nbr, struct rinfo_head *rinfo_list, int siareply) while ((re = TAILQ_FIRST(rinfo_list)) != NULL) { route_len = len_route_tlv(&re->rinfo); + /* don't exceed the MTU to avoid IP fragmentation */ if (size + route_len > nbr->ei->iface->mtu) { rtp_send_ucast(nbr, buf); break; |
