From 3f3f6eee1c1b1bec43933488b27772a9f848c529 Mon Sep 17 00:00:00 2001 From: Jannis Achstetter Date: Tue, 1 Nov 2022 23:42:58 +0100 Subject: [PATCH] dhserver: Support DHCP clients that don't send the MESSAGETYPE as first option Signed-off-by: Jannis Achstetter --- lib/networking/dhserver.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/lib/networking/dhserver.c b/lib/networking/dhserver.c index 590739236..def431f75 100644 --- a/lib/networking/dhserver.c +++ b/lib/networking/dhserver.c @@ -240,7 +240,11 @@ static void udp_recv_proc(void *arg, struct udp_pcb *upcb, struct pbuf *p, const unsigned n = p->len; if (n > sizeof(dhcp_data)) n = sizeof(dhcp_data); memcpy(&dhcp_data, p->payload, n); - switch (dhcp_data.dp_options[2]) + + ptr = find_dhcp_option(dhcp_data.dp_options, sizeof(dhcp_data.dp_options), DHCP_MESSAGETYPE); + if (ptr == NULL) return; + + switch (ptr[2]) { case DHCP_DISCOVER: entry = entry_by_mac(dhcp_data.dp_chaddr);