feat(lwip): Add DNS external hook in TCPIP context(v5.3)

This commit is contained in:
WanqQixiang 2024-08-21 17:44:21 +08:00
parent c72fec55dd
commit 4eac78f675
4 changed files with 28 additions and 4 deletions

View File

@ -1278,6 +1278,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

@ -1 +1 @@
Subproject commit bced058f737eaabea1aa193f3c365ee78ff555f3
Subproject commit 0606eed9d8b98a797514fdf6eabb4daf1c8c8cd9

View File

@ -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);

View File

@ -1,2 +1,2 @@
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C5 | ESP32-C6 | ESP32-H2 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |
| Supported Targets | ESP32 | ESP32-C2 | ESP32-C3 | ESP32-C6 | ESP32-H2 | ESP32-P4 | ESP32-S2 | ESP32-S3 |
| ----------------- | ----- | -------- | -------- | -------- | -------- | -------- | -------- | -------- |