From b35d36407d9316e9d47099b78bff02b1d43c1b15 Mon Sep 17 00:00:00 2001 From: Mark Pizzolato Date: Fri, 10 Dec 2021 18:17:18 -0800 Subject: [PATCH] ETHER: Fix NAT dhcp behavior to properly respond to the MAC of the requestor --- slirp/bootp.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/slirp/bootp.c b/slirp/bootp.c index 3687b7ad..cb3279e1 100644 --- a/slirp/bootp.c +++ b/slirp/bootp.c @@ -170,6 +170,7 @@ static void bootp_reply(Slirp *slirp, const struct bootp_t *bp) rbp = (struct bootp_t *)m->m_data; m->m_data += sizeof(struct udpiphdr); memset(rbp, 0, sizeof(struct bootp_t)); + daddr.sin_addr.s_addr = 0xffffffffu; if (dhcp_msg_type == DHCPDISCOVER) { if (preq_addr.s_addr != htonl(0L)) { @@ -308,8 +309,6 @@ static void bootp_reply(Slirp *slirp, const struct bootp_t *bp) } *q = RFC1533_END; - daddr.sin_addr.s_addr = 0xffffffffu; - m->m_len = sizeof(struct bootp_t) - sizeof(struct ip) - sizeof(struct udphdr); udp_output2(NULL, m, &saddr, &daddr, IPTOS_LOWDELAY);