diff --git a/components/esp32/lib b/components/esp32/lib index b01f9683da..2559c73c2c 160000 --- a/components/esp32/lib +++ b/components/esp32/lib @@ -1 +1 @@ -Subproject commit b01f9683daa05bf6cc8ad382787000e4af87263b +Subproject commit 2559c73c2c9c5794b08499f3a559b65b54707d7d diff --git a/components/lwip/Kconfig b/components/lwip/Kconfig index bf7bff15b4..2e7e31a8a9 100644 --- a/components/lwip/Kconfig +++ b/components/lwip/Kconfig @@ -19,7 +19,7 @@ config L2_TO_L3_COPY config LWIP_MAX_SOCKETS int "Max number of open sockets" range 1 16 - default 4 + default 10 help Sockets take up a certain amount of memory, and allowing fewer sockets to be open at the same time conserves memory. Specify diff --git a/components/tcpip_adapter/tcpip_adapter_lwip.c b/components/tcpip_adapter/tcpip_adapter_lwip.c index 25c801bd01..d9fda81d84 100644 --- a/components/tcpip_adapter/tcpip_adapter_lwip.c +++ b/components/tcpip_adapter/tcpip_adapter_lwip.c @@ -392,27 +392,29 @@ esp_err_t tcpip_adapter_dhcps_option(tcpip_adapter_option_mode_t opt_op, tcpip_a uint32_t start_ip = 0; uint32_t end_ip = 0; dhcps_lease_t *poll = opt_val; + + if (poll->enable){ + memset(&info, 0x00, sizeof(tcpip_adapter_ip_info_t)); + tcpip_adapter_get_ip_info(WIFI_IF_AP, &info); + softap_ip = htonl(info.ip.addr); + start_ip = htonl(poll->start_ip.addr); + end_ip = htonl(poll->end_ip.addr); - memset(&info, 0x00, sizeof(tcpip_adapter_ip_info_t)); - tcpip_adapter_get_ip_info(WIFI_IF_AP, &info); - softap_ip = htonl(info.ip.addr); - start_ip = htonl(poll->start_ip.addr); - end_ip = htonl(poll->end_ip.addr); + /*config ip information can't contain local ip*/ + if ((start_ip <= softap_ip) && (softap_ip <= end_ip)) + return ESP_ERR_TCPIP_ADAPTER_INVALID_PARAMS; - /*config ip information can't contain local ip*/ - if ((start_ip <= softap_ip) && (softap_ip <= end_ip)) - return ESP_ERR_TCPIP_ADAPTER_INVALID_PARAMS; + /*config ip information must be in the same segment as the local ip*/ + softap_ip >>= 8; + if ((start_ip >> 8 != softap_ip) + || (end_ip >> 8 != softap_ip)) { + return ESP_ERR_TCPIP_ADAPTER_INVALID_PARAMS; + } - /*config ip information must be in the same segment as the local ip*/ - softap_ip >>= 8; - if ((start_ip >> 8 != softap_ip) - || (end_ip >> 8 != softap_ip)) { - return ESP_ERR_TCPIP_ADAPTER_INVALID_PARAMS; - } - - if (end_ip - start_ip > DHCPS_MAX_LEASE) { - return ESP_ERR_TCPIP_ADAPTER_INVALID_PARAMS; - } + if (end_ip - start_ip > DHCPS_MAX_LEASE) { + return ESP_ERR_TCPIP_ADAPTER_INVALID_PARAMS; + } + } memcpy(opt_info, opt_val, opt_len); break;