Skip to content

Commit

Permalink
Merge branch 'feat/lwip_dns_external_resolve_hook' into 'master'
Browse files Browse the repository at this point in the history
feat(lwip): Add DNS external resolve hook

See merge request espressif/esp-idf!32595
  • Loading branch information
david-cermak committed Sep 5, 2024
2 parents 1d8f1a5 + 9c4ae85 commit 5ef5558
Show file tree
Hide file tree
Showing 3 changed files with 26 additions and 2 deletions.
15 changes: 15 additions & 0 deletions components/lwip/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -1313,6 +1313,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
Expand Down
2 changes: 1 addition & 1 deletion components/lwip/lwip
11 changes: 10 additions & 1 deletion components/lwip/port/include/lwip_default_hooks.h
Original file line number Diff line number Diff line change
@@ -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
*/
Expand All @@ -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"

Expand Down Expand Up @@ -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);

Expand Down

0 comments on commit 5ef5558

Please sign in to comment.