diff --git a/components/lwip/Kconfig b/components/lwip/Kconfig index f48e071051..e4201511e6 100644 --- a/components/lwip/Kconfig +++ b/components/lwip/Kconfig @@ -1196,6 +1196,21 @@ menu "LWIP" endchoice + choice LWIP_HOOK_DNS_EXTERNAL_RESOLVE + prompt "DNS external resolve Hook" + default LWIP_HOOK_DNS_EXT_RESOLVE_NONE + help + Enables custom DNS resolve hook. + Setting this to "custom" provides hook's declaration + only and expects the application to implement it. + + config LWIP_HOOK_DNS_EXT_RESOLVE_NONE + bool "No hook declared" + config LWIP_HOOK_DNS_EXT_RESOLVE_CUSTOM + bool "Custom implementation" + + endchoice + choice LWIP_HOOK_IP6_INPUT prompt "IPv6 packet input" depends on LWIP_IPV6 diff --git a/components/lwip/port/include/lwip_default_hooks.h b/components/lwip/port/include/lwip_default_hooks.h index bdc54064a9..86d33368d4 100644 --- a/components/lwip/port/include/lwip_default_hooks.h +++ b/components/lwip/port/include/lwip_default_hooks.h @@ -1,5 +1,5 @@ /* - * SPDX-FileCopyrightText: 2020-2022 Espressif Systems (Shanghai) CO LTD + * SPDX-FileCopyrightText: 2020-2024 Espressif Systems (Shanghai) CO LTD * * SPDX-License-Identifier: Apache-2.0 */ @@ -9,6 +9,7 @@ #include "lwip/ip_addr.h" #include "lwip/arch.h" #include "lwip/err.h" +#include "lwip/dns.h" #include "lwip/pbuf.h" #include "netif/dhcp_state.h" @@ -55,6 +56,14 @@ int lwip_hook_netconn_external_resolve(const char *name, ip_addr_t *addr, u8_t a #define LWIP_HOOK_NETCONN_EXTERNAL_RESOLVE lwip_hook_netconn_external_resolve #endif /* CONFIG_LWIP_HOOK_NETCONN_EXTERNAL_RESOLVE... */ +#if defined(CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_CUSTOM) +int lwip_hook_dns_external_resolve(const char *name, ip_addr_t *addr, dns_found_callback found, void *callback_arg, + u8_t addrtype, err_t *err); + +#define LWIP_HOOK_DNS_EXTERNAL_RESOLVE lwip_hook_dns_external_resolve +#endif /* CONFIG_LWIP_HOOK_DNS_EXT_RESOLVE_CUSTOM */ + + #if defined(CONFIG_LWIP_HOOK_IP6_INPUT_CUSTOM) || defined(CONFIG_LWIP_HOOK_IP6_INPUT_DEFAULT) int lwip_hook_ip6_input(struct pbuf *p, struct netif *inp);