From c67f4c2b4c2bb4b7740f988fc0f8a3e911e56afe Mon Sep 17 00:00:00 2001 From: David Cermak Date: Thu, 2 Jun 2022 16:25:20 +0200 Subject: [PATCH] lwip: Remove vanilla-lwip config until it's fully deployable --- components/esp_netif/CMakeLists.txt | 1 - components/esp_netif/Kconfig | 7 -- components/esp_netif/lwip/esp_netif_lwip.c | 83 ++++++++++++-- .../esp_netif/lwip/esp_netif_lwip_defaults.c | 2 +- .../esp_netif/lwip/esp_netif_lwip_internal.h | 2 +- .../esp_netif/lwip/esp_netif_lwip_orig.c | 105 ------------------ .../esp_netif/lwip/esp_netif_lwip_orig.h | 55 --------- .../esp_netif/lwip/esp_netif_lwip_ppp.c | 24 +++- components/lwip/include/lwip/netdb.h | 4 - components/lwip/include/lwip/sockets.h | 4 - components/lwip/port/esp32/include/lwipopts.h | 9 +- .../lwip/port/esp32/include/netif/wlanif.h | 4 +- components/lwip/port/esp32/netif/wlanif.c | 8 +- components/lwip/port/esp32/vfs_lwip.c | 7 ++ 14 files changed, 116 insertions(+), 199 deletions(-) delete mode 100644 components/esp_netif/lwip/esp_netif_lwip_orig.c delete mode 100644 components/esp_netif/lwip/esp_netif_lwip_orig.h diff --git a/components/esp_netif/CMakeLists.txt b/components/esp_netif/CMakeLists.txt index accc6e01a0..44c9ef8e0d 100644 --- a/components/esp_netif/CMakeLists.txt +++ b/components/esp_netif/CMakeLists.txt @@ -13,7 +13,6 @@ set(srcs "vfs_l2tap/esp_vfs_l2tap.c" "lwip/esp_netif_lwip.c" "lwip/esp_netif_lwip_defaults.c" - "lwip/esp_netif_lwip_orig.c" "lwip/esp_netif_sta_list.c") set(include_dirs "include") diff --git a/components/esp_netif/Kconfig b/components/esp_netif/Kconfig index 1c17ff2e94..2bad063a25 100644 --- a/components/esp_netif/Kconfig +++ b/components/esp_netif/Kconfig @@ -29,13 +29,6 @@ menu "ESP NETIF Adapter" Dummy implementation of esp-netif functionality which connects driver transmit to receive function. This option is for testing purpose only - config ESP_NETIF_TCPIP_VANILLA_LWIP - bool "LwIP-orig" - depends on !LWIP_IPV4_NAPT - help - This choice sets the original, vanilla-lwIP as the TCP/IP stack. - Warning: Current implementation does not NAPT features - endchoice config ESP_NETIF_L2_TAP diff --git a/components/esp_netif/lwip/esp_netif_lwip.c b/components/esp_netif/lwip/esp_netif_lwip.c index 5354cbcc28..f6f5e81e58 100644 --- a/components/esp_netif/lwip/esp_netif_lwip.c +++ b/components/esp_netif/lwip/esp_netif_lwip.c @@ -10,13 +10,12 @@ #include "esp_check.h" #include "esp_netif_lwip_internal.h" -#include "esp_netif_lwip_orig.h" #include "esp_netif.h" #include "esp_netif_private.h" #include "esp_random.h" -#if defined(CONFIG_ESP_NETIF_TCPIP_LWIP) || defined(CONFIG_ESP_NETIF_TCPIP_VANILLA_LWIP) +#if defined(CONFIG_ESP_NETIF_TCPIP_LWIP) #include "lwip/tcpip.h" #include "lwip/dhcp.h" @@ -26,6 +25,7 @@ #include "lwip/nd6.h" #include "lwip/priv/tcpip_priv.h" #include "lwip/netif.h" +#include "lwip/etharp.h" #if LWIP_DNS /* don't build if not configured for use in lwipopts.h */ #include "lwip/dns.h" #endif @@ -48,6 +48,8 @@ #define ESP_NETIF_HOSTNAME_MAX_SIZE 32 +#define DHCP_CB_CHANGE (LWIP_NSC_IPV4_SETTINGS_CHANGED | LWIP_NSC_IPV4_ADDRESS_CHANGED | LWIP_NSC_IPV4_GATEWAY_CHANGED | LWIP_NSC_IPV4_NETMASK_CHANGED) + /** * @brief lwip thread safe tcpip function utility macros */ @@ -99,7 +101,75 @@ static const char *TAG = "esp_netif_lwip"; static bool tcpip_initialized = false; static esp_netif_t *s_last_default_esp_netif = NULL; static bool s_is_last_default_esp_netif_overridden = false; +static netif_ext_callback_t netif_callback = { .callback_fn = NULL, .next = NULL }; +static void esp_netif_internal_dhcpc_cb(struct netif *netif); +#if LWIP_IPV6 +static void esp_netif_internal_nd6_cb(struct netif *p_netif, uint8_t ip_index); +#endif /* LWIP_IPV6 */ + +static void netif_callback_fn(struct netif* netif, netif_nsc_reason_t reason, const netif_ext_callback_args_t* args) +{ + if (reason & DHCP_CB_CHANGE) { + esp_netif_internal_dhcpc_cb(netif); + } +#if LWIP_IPV6 + if ((reason & LWIP_NSC_IPV6_ADDR_STATE_CHANGED) && (args != NULL)) { + s8_t addr_idx = args->ipv6_addr_state_changed.addr_index; + if (netif_ip6_addr_state(netif, addr_idx) & IP6_ADDR_VALID) { + /* address is valid -> call the callback function */ + esp_netif_internal_nd6_cb(netif, addr_idx); + } + } +#endif /* #if LWIP_IPV6 */ +} + +static void set_lwip_netif_callback(void) +{ + if (netif_callback.callback_fn == NULL ) { + netif_add_ext_callback(&netif_callback, netif_callback_fn); + } +} + +static void remove_lwip_netif_callback(void) +{ + netif_remove_ext_callback(&netif_callback); + memset(&netif_callback, 0, sizeof(netif_callback)); +} + +static void dns_clear_servers(bool keep_fallback) +{ + u8_t numdns = 0; + + for (numdns = 0; numdns < DNS_MAX_SERVERS; numdns ++) { + if (keep_fallback && numdns == DNS_FALLBACK_SERVER_INDEX) { + continue; + } + + dns_setserver(numdns, NULL); + } +} + +#ifdef CONFIG_LWIP_GARP_TMR_INTERVAL + +static void netif_send_garp(void *arg) +{ + struct netif *netif = arg; + etharp_gratuitous(netif); + sys_timeout(CONFIG_LWIP_GARP_TMR_INTERVAL*1000, netif_send_garp, netif); +} + +static void netif_set_garp_flag(struct netif *netif) +{ + sys_timeout(CONFIG_LWIP_GARP_TMR_INTERVAL*1000, netif_send_garp, netif); +} + +static void netif_unset_garp_flag(struct netif *netif) +{ + sys_untimeout(netif_send_garp, netif); +} + +#endif // CONFIG_LWIP_GARP_TMR_INTERVAL #if !LWIP_TCPIP_CORE_LOCKING static sys_sem_t api_sync_sem = NULL; @@ -947,7 +1017,7 @@ static esp_err_t esp_netif_start_ip_lost_timer(esp_netif_t *esp_netif); // // DHCP: // -void esp_netif_internal_dhcpc_cb(struct netif *netif) +static void esp_netif_internal_dhcpc_cb(struct netif *netif) { if (!netif) { ESP_LOGD(TAG, "null netif=%p", netif); @@ -1145,8 +1215,6 @@ static esp_err_t esp_netif_dhcpc_start_api(esp_netif_api_msg_t *msg) return ESP_ERR_ESP_NETIF_DHCPC_START_FAILED; } - dhcp_set_cb(p_netif, esp_netif_internal_dhcpc_cb); - esp_netif->dhcpc_status = ESP_NETIF_DHCP_STARTED; return ESP_OK; } else { @@ -1647,7 +1715,7 @@ esp_ip6_addr_type_t esp_netif_ip6_get_addr_type(esp_ip6_addr_t* ip6_addr) } -void esp_netif_internal_nd6_cb(struct netif *p_netif, uint8_t ip_index) +static void esp_netif_internal_nd6_cb(struct netif *p_netif, uint8_t ip_index) { ESP_LOGD(TAG, "%s lwip-netif:%p", __func__, p_netif); if (!p_netif) { @@ -1684,7 +1752,6 @@ static esp_err_t esp_netif_create_ip6_linklocal_api(esp_netif_api_msg_t *msg) struct netif *p_netif = esp_netif->lwip_netif; if (p_netif != NULL && netif_is_up(p_netif)) { netif_create_ip6_linklocal_address(p_netif, 1); - nd6_set_cb(p_netif, esp_netif_internal_nd6_cb); return ESP_OK; } else { return ESP_FAIL; @@ -2081,4 +2148,4 @@ esp_err_t esp_netif_remove_ip6_address(esp_netif_t *esp_netif, const esp_ip6_add #endif // CONFIG_LWIP_IPV6 -#endif /* CONFIG_ESP_NETIF_TCPIP_LWIP || CONFIG_ESP_NETIF_TCPIP_VANILLA_LWIP */ +#endif /* CONFIG_ESP_NETIF_TCPIP_LWIP */ diff --git a/components/esp_netif/lwip/esp_netif_lwip_defaults.c b/components/esp_netif/lwip/esp_netif_lwip_defaults.c index 6239a5b41b..ad93d50737 100644 --- a/components/esp_netif/lwip/esp_netif_lwip_defaults.c +++ b/components/esp_netif/lwip/esp_netif_lwip_defaults.c @@ -8,7 +8,7 @@ #include "esp_netif_lwip_internal.h" #include "esp_netif_lwip_ppp.h" -#if defined(CONFIG_ESP_NETIF_TCPIP_LWIP) || defined(CONFIG_ESP_NETIF_TCPIP_VANILLA_LWIP) +#if defined(CONFIG_ESP_NETIF_TCPIP_LWIP) #include "netif/wlanif.h" #include "netif/ethernetif.h" diff --git a/components/esp_netif/lwip/esp_netif_lwip_internal.h b/components/esp_netif/lwip/esp_netif_lwip_internal.h index c6996c7700..47a82f42bc 100644 --- a/components/esp_netif/lwip/esp_netif_lwip_internal.h +++ b/components/esp_netif/lwip/esp_netif_lwip_internal.h @@ -12,7 +12,7 @@ #include "lwip/netif.h" #include "dhcpserver/dhcpserver.h" -#if defined(CONFIG_ESP_NETIF_TCPIP_LWIP) || defined(CONFIG_ESP_NETIF_TCPIP_VANILLA_LWIP) +#if defined(CONFIG_ESP_NETIF_TCPIP_LWIP) struct esp_netif_netstack_lwip_vanilla_config { err_t (*init_fn)(struct netif*); diff --git a/components/esp_netif/lwip/esp_netif_lwip_orig.c b/components/esp_netif/lwip/esp_netif_lwip_orig.c deleted file mode 100644 index 4cce66a614..0000000000 --- a/components/esp_netif/lwip/esp_netif_lwip_orig.c +++ /dev/null @@ -1,105 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#include -#include -#include -#include - -#include "esp_check.h" -#include "esp_netif_lwip_internal.h" -#include "esp_netif_lwip_orig.h" - -#include "esp_netif.h" -#include "esp_netif_private.h" - -#define DHCP_CB_CHANGE (LWIP_NSC_IPV4_SETTINGS_CHANGED | LWIP_NSC_IPV4_ADDRESS_CHANGED | LWIP_NSC_IPV4_GATEWAY_CHANGED | LWIP_NSC_IPV4_NETMASK_CHANGED) - -static netif_ext_callback_t netif_callback = { .callback_fn = NULL, .next = NULL }; - -static void netif_callback_fn(struct netif* netif, netif_nsc_reason_t reason, const netif_ext_callback_args_t* args) -{ - if (reason & DHCP_CB_CHANGE) { - esp_netif_internal_dhcpc_cb(netif); - } -#if LWIP_IPV6 - if ((reason & LWIP_NSC_IPV6_ADDR_STATE_CHANGED) && (args != NULL)) { - s8_t addr_idx = args->ipv6_addr_state_changed.addr_index; - if (netif_ip6_addr_state(netif, addr_idx) & IP6_ADDR_VALID) { - /* address is valid -> call the callback function */ - esp_netif_internal_nd6_cb(netif, addr_idx); - } - } -#endif /* #if LWIP_IPV6 */ -} - -void set_lwip_netif_callback(void) -{ - if (netif_callback.callback_fn == NULL ) { - netif_add_ext_callback(&netif_callback, netif_callback_fn); - } -} - -void remove_lwip_netif_callback(void) -{ - netif_remove_ext_callback(&netif_callback); - memset(&netif_callback, 0, sizeof(netif_callback)); -} - -void dns_clear_servers(bool keep_fallback) -{ - u8_t numdns = 0; - - for (numdns = 0; numdns < DNS_MAX_SERVERS; numdns ++) { - if (keep_fallback && numdns == DNS_FALLBACK_SERVER_INDEX) { - continue; - } - - dns_setserver(numdns, NULL); - } -} -#if PPP_SUPPORT && PPP_AUTH_SUPPORT -typedef struct { - struct tcpip_api_call_data call; - ppp_pcb *ppp; - u8_t authtype; - const char *user; - const char *passwd; -} set_auth_msg_t; - -static err_t pppapi_do_ppp_set_auth(struct tcpip_api_call_data *m) -{ - set_auth_msg_t *msg = (set_auth_msg_t *)m; - ppp_set_auth(msg->ppp, msg->authtype, msg->user, msg->passwd); - return ERR_OK; -} - -void pppapi_set_auth(ppp_pcb *pcb, u8_t authtype, const char *user, const char *passwd) -{ - set_auth_msg_t msg = { .ppp = pcb, .authtype = authtype, .user = user, .passwd = passwd}; - tcpip_api_call(pppapi_do_ppp_set_auth, &msg.call); -} - -#endif // PPP_SUPPORT && PPP_AUTH_SUPPORT - -#ifdef CONFIG_LWIP_GARP_TMR_INTERVAL -void netif_send_garp(void *arg) -{ - struct netif *netif = arg; - etharp_gratuitous(netif); - sys_timeout(CONFIG_LWIP_GARP_TMR_INTERVAL*1000, netif_send_garp, netif); -} - -void netif_set_garp_flag(struct netif *netif) -{ - sys_timeout(CONFIG_LWIP_GARP_TMR_INTERVAL*1000, netif_send_garp, netif); -} - -void netif_unset_garp_flag(struct netif *netif) -{ - sys_untimeout(netif_send_garp, netif); -} -#endif // CONFIG_LWIP_GARP_TMR_INTERVAL diff --git a/components/esp_netif/lwip/esp_netif_lwip_orig.h b/components/esp_netif/lwip/esp_netif_lwip_orig.h deleted file mode 100644 index f5560e055e..0000000000 --- a/components/esp_netif/lwip/esp_netif_lwip_orig.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#pragma once - -#include "esp_netif_lwip_internal.h" - - -#if defined(CONFIG_ESP_NETIF_TCPIP_VANILLA_LWIP) || defined(CONFIG_ESP_NETIF_TCPIP_LWIP) - -#if PPP_SUPPORT -typedef struct ppp_pcb_s ppp_pcb; -#endif - -/** - * @brief Sets one extended lwip netif callbacks for all esp-netif - */ -void set_lwip_netif_callback(void); - -void remove_lwip_netif_callback(void); - -void esp_netif_internal_dhcpc_cb(struct netif *netif); - -void esp_netif_internal_nd6_cb(struct netif *netif, uint8_t index); - -static inline void dhcp_set_cb(struct netif *netif, void (*cb)(struct netif*)) { } - -static inline void nd6_set_cb(struct netif *netif, void (*cb)(struct netif *netif, u8_t ip_index)) { } - -void dns_clear_servers(bool keep_fallback); - -#if PPP_SUPPORT && PPP_AUTH_SUPPORT -void pppapi_set_auth(ppp_pcb *pcb, u8_t authtype, const char *user, const char *passwd); -#endif - -#if ESP_GRATUITOUS_ARP - -void netif_set_garp_flag(struct netif *netif); - -void netif_unset_garp_flag(struct netif *netif); - -#endif // ESP_GRATUITOUS_ARP - -#else // !CONFIG_ESP_NETIF_TCPIP_VANILLA_LWIP and !CONFIG_ESP_NETIF_TCPIP_LWIP - -static inline void set_lwip_netif_callback(void) { } - -static inline void remove_lwip_netif_callback(void) { } - -static inline void netif_unset_garp_flag(struct netif *netif) {} - -#endif // CONFIG_ESP_NETIF_TCPIP_VANILLA_LWIP or CONFIG_ESP_NETIF_TCPIP_LWIP diff --git a/components/esp_netif/lwip/esp_netif_lwip_ppp.c b/components/esp_netif/lwip/esp_netif_lwip_ppp.c index 858603f69c..e7860aefbb 100644 --- a/components/esp_netif/lwip/esp_netif_lwip_ppp.c +++ b/components/esp_netif/lwip/esp_netif_lwip_ppp.c @@ -17,7 +17,6 @@ #include "esp_event.h" #include "esp_netif_ppp.h" #include "esp_netif_lwip_internal.h" -#include "esp_netif_lwip_orig.h" #include #include "lwip/ip6_addr.h" @@ -37,6 +36,29 @@ typedef struct lwip_peer2peer_ctx { ppp_pcb *ppp; } lwip_peer2peer_ctx_t; +#if PPP_SUPPORT && PPP_AUTH_SUPPORT +typedef struct { + struct tcpip_api_call_data call; + ppp_pcb *ppp; + u8_t authtype; + const char *user; + const char *passwd; +} set_auth_msg_t; + +static err_t pppapi_do_ppp_set_auth(struct tcpip_api_call_data *m) +{ + set_auth_msg_t *msg = (set_auth_msg_t *)m; + ppp_set_auth(msg->ppp, msg->authtype, msg->user, msg->passwd); + return ERR_OK; +} + +static void pppapi_set_auth(ppp_pcb *pcb, u8_t authtype, const char *user, const char *passwd) +{ + set_auth_msg_t msg = { .ppp = pcb, .authtype = authtype, .user = user, .passwd = passwd}; + tcpip_api_call(pppapi_do_ppp_set_auth, &msg.call); +} +#endif // PPP_SUPPORT && PPP_AUTH_SUPPORT + /** * @brief lwip callback from PPP client used here to produce PPP error related events, * as well as some IP events diff --git a/components/lwip/include/lwip/netdb.h b/components/lwip/include/lwip/netdb.h index c058e5354b..326fea1ff5 100644 --- a/components/lwip/include/lwip/netdb.h +++ b/components/lwip/include/lwip/netdb.h @@ -13,8 +13,6 @@ extern "C" { #endif -#if defined(CONFIG_ESP_NETIF_TCPIP_VANILLA_LWIP) || defined(CONFIG_ESP_NETIF_TCPIP_LWIP) - static inline int gethostbyname_r(const char *name, struct hostent *ret, char *buf, size_t buflen, struct hostent **result, int *h_errnop) { return lwip_gethostbyname_r(name, ret, buf, buflen, result, h_errnop); } static inline struct hostent *gethostbyname(const char *name) @@ -24,8 +22,6 @@ static inline void freeaddrinfo(struct addrinfo *ai) static inline int getaddrinfo(const char *nodename, const char *servname, const struct addrinfo *hints, struct addrinfo **res) { return lwip_getaddrinfo(nodename, servname, hints, res); } -#endif // CONFIG_ESP_NETIF_TCPIP_VANILLA_LWIP || CONFIG_ESP_NETIF_TCPIP_LWIP - #ifdef __cplusplus } #endif diff --git a/components/lwip/include/lwip/sockets.h b/components/lwip/include/lwip/sockets.h index cbb1f66bc2..b0f3a6febe 100644 --- a/components/lwip/include/lwip/sockets.h +++ b/components/lwip/include/lwip/sockets.h @@ -12,8 +12,6 @@ extern "C" { #endif -#if defined(CONFIG_ESP_NETIF_TCPIP_VANILLA_LWIP) || defined(CONFIG_ESP_NETIF_TCPIP_LWIP) - static inline int accept(int s,struct sockaddr *addr,socklen_t *addrlen) { return lwip_accept(s,addr,addrlen); } static inline int bind(int s,const struct sockaddr *name, socklen_t namelen) @@ -53,8 +51,6 @@ static inline const char *inet_ntop(int af, const void *src, char *dst, socklen_ static inline int inet_pton(int af, const char *src, void *dst) { return lwip_inet_pton(af, src, dst); } -#endif // CONFIG_ESP_NETIF_TCPIP_VANILLA_LWIP || CONFIG_ESP_NETIF_TCPIP_LWIP - #ifdef __cplusplus } #endif diff --git a/components/lwip/port/esp32/include/lwipopts.h b/components/lwip/port/esp32/include/lwipopts.h index f66c4db1b6..7d20a98f79 100644 --- a/components/lwip/port/esp32/include/lwipopts.h +++ b/components/lwip/port/esp32/include/lwipopts.h @@ -632,7 +632,6 @@ static inline uint32_t timeout_from_offered(uint32_t lease, uint32_t min) #define LWIP_NETIF_STATUS_CALLBACK 0 #endif -#if defined(CONFIG_ESP_NETIF_TCPIP_VANILLA_LWIP) || defined(CONFIG_ESP_NETIF_TCPIP_LWIP) /** * LWIP_NETIF_EXT_STATUS_CALLBACK==1: Support an extended callback function * for several netif related event that supports multiple subscribers. @@ -641,8 +640,6 @@ static inline uint32_t timeout_from_offered(uint32_t lease, uint32_t min) * to provide netif related events on IP4/IP6 address/status changes */ #define LWIP_NETIF_EXT_STATUS_CALLBACK 1 -#endif - /** * LWIP_NETIF_TX_SINGLE_PBUF: if this is set to 1, lwIP *tries* to put all data @@ -1440,13 +1437,13 @@ static inline uint32_t timeout_from_offered(uint32_t lease, uint32_t min) * allocate memory for lwip in SPIRAM firstly. If failed, try to allocate * internal memory then. */ -#if CONFIG_WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST +#if CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP #define mem_clib_malloc(size) heap_caps_malloc_prefer(size, 2, MALLOC_CAP_DEFAULT|MALLOC_CAP_SPIRAM, MALLOC_CAP_DEFAULT|MALLOC_CAP_INTERNAL) #define mem_clib_calloc(n, size) heap_caps_calloc_prefer(n, size, 2, MALLOC_CAP_DEFAULT|MALLOC_CAP_SPIRAM, MALLOC_CAP_DEFAULT|MALLOC_CAP_INTERNAL) -#else /* !CONFIG_WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST */ +#else /* !CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP */ #define mem_clib_malloc malloc #define mem_clib_calloc calloc -#endif /* CONFIG_WIFI_LWIP_ALLOCATION_FROM_SPIRAM_FIRST */ +#endif /* CONFIG_SPIRAM_TRY_ALLOCATE_WIFI_LWIP */ #ifdef __cplusplus } diff --git a/components/lwip/port/esp32/include/netif/wlanif.h b/components/lwip/port/esp32/include/netif/wlanif.h index b8e9c8b32e..49bb423b2b 100644 --- a/components/lwip/port/esp32/include/netif/wlanif.h +++ b/components/lwip/port/esp32/include/netif/wlanif.h @@ -21,8 +21,8 @@ extern "C" { err_t wlanif_init_ap(struct netif *netif); err_t wlanif_init_sta(struct netif *netif); err_t set_wifi_netif(int wifi_inx, void* netif); -esp_err_t wifi_rxcb_sta(void *buffer, uint16_t len, void *eb); -esp_err_t wifi_rxcb_ap(void *buffer, uint16_t len, void *eb); +esp_err_t wifi_rxcb_sta(void *buffer, uint16_t len, void *l2_buff); +esp_err_t wifi_rxcb_ap(void *buffer, uint16_t len, void *l2_buff); void wlanif_input(void *netif, void *buffer, size_t len, void* eb); diff --git a/components/lwip/port/esp32/netif/wlanif.c b/components/lwip/port/esp32/netif/wlanif.c index 4824f13751..3c7c8ade85 100644 --- a/components/lwip/port/esp32/netif/wlanif.c +++ b/components/lwip/port/esp32/netif/wlanif.c @@ -244,9 +244,9 @@ sta_output(struct netif *netif, struct pbuf *p) LWIP_DEBUGF(PBUF_DEBUG, ("low_level_output: pbuf is a list, application may has bug")); q = pbuf_alloc(PBUF_RAW_TX, p->tot_len, PBUF_RAM); if (q != NULL) { - pbuf_copy(q, p); + pbuf_copy(q, p); } else { - return ERR_MEM; + return ERR_MEM; } ret = esp_wifi_internal_tx(WIFI_IF_STA, q->payload, q->len); pbuf_free(q); @@ -276,9 +276,9 @@ ap_output(struct netif *netif, struct pbuf *p) LWIP_DEBUGF(PBUF_DEBUG, ("low_level_output: pbuf is a list, application may has bug")); q = pbuf_alloc(PBUF_RAW_TX, p->tot_len, PBUF_RAM); if (q != NULL) { - pbuf_copy(q, p); + pbuf_copy(q, p); } else { - return ERR_MEM; + return ERR_MEM; } ret = esp_wifi_internal_tx(WIFI_IF_AP, q->payload, q->len); pbuf_free(q); diff --git a/components/lwip/port/esp32/vfs_lwip.c b/components/lwip/port/esp32/vfs_lwip.c index ad50fee327..e9fa7a7ec9 100644 --- a/components/lwip/port/esp32/vfs_lwip.c +++ b/components/lwip/port/esp32/vfs_lwip.c @@ -24,6 +24,13 @@ _Static_assert(MAX_FDS >= CONFIG_LWIP_MAX_SOCKETS, "MAX_FDS < CONFIG_LWIP_MAX_SO #ifdef CONFIG_VFS_SUPPORT_SELECT +/** + * @brief This function is implemented only in FreeRTOS port (ingroup sys_sem) + * and has no official API counterpart in lwip's sys.h declarations + * Signals a semaphore from ISR + * @param sem the semaphore to signal + * @return 1 if the signal has caused a high-prio task to unblock (pxHigherPriorityTaskWoken) + */ int sys_sem_signal_isr(sys_sem_t *sem); static void lwip_stop_socket_select(void *sem)