lwip: Add config for DHCP client id; Fix DNS server idx assert issue

This commit brings two esp-lwip fixes to IDF:

1) Add configuration to disable DHCP client identification
https://github.com/espressif/esp-lwip/commit/2195f7416fb3136831babf3e96c027a73075bd4f
This config could be used to disable option 61 in DHCP packets, so that
clients will be identified by their  chaddr only.
(This is the lwip upstream original behaviour)

2) Fix server_idx increasing to DNS_MAX_SERVERS and trigger the LWIP_ASSERT
https://github.com/espressif/esp-lwip/commit/5a567d52f7b97b1f5e61604636bef555fdd84b8f
When lwip doesn't have DNS server and resolve a domain address, the server_idx
will increase to DNS_MAX_SERVERS, which will trigger the LWIP_ASSERT and make device crash.

Closes https://github.com/espressif/esp-idf/issues/6878
This commit is contained in:
David Cermak
2021-05-05 09:14:34 +02:00
parent 58490418ad
commit 49022e99f5
3 changed files with 14 additions and 1 deletions
+9
View File
@@ -239,6 +239,15 @@ menu "LWIP"
Enabling this option performs a check (via ARP request) if the offered IP address
is not already in use by another host on the network.
config LWIP_DHCP_DISABLE_CLIENT_ID
bool "DHCP: Disable Use of HW address as client identification"
default n
help
This option could be used to disable DHCP client identification with its MAC address.
(Client id is used by DHCP servers to uniquely identify clients and are included
in the DHCP packets as an option 61)
Set this option to "y" in order to exclude option 61 from DHCP packets.
config LWIP_DHCP_RESTORE_LAST_IP
bool "DHCP: Restore last IP obtained from DHCP server"
default n
@@ -249,6 +249,10 @@
*/
#define DHCP_DOES_ARP_CHECK CONFIG_LWIP_DHCP_DOES_ARP_CHECK
/**
* LWIP_DHCP_DISABLE_CLIENT_ID==1: Do not add option 61 (client-id) to DHCP packets
*/
#define ESP_DHCP_DISABLE_CLIENT_ID CONFIG_LWIP_DHCP_DISABLE_CLIENT_ID
/**
* CONFIG_LWIP_DHCP_RESTORE_LAST_IP==1: Last valid IP address obtained from DHCP server