struct netif *
ip4_route(const ip4_addr_t *dest)
{
-#if ESP_LWIP
- struct netif *non_default_netif = NULL;
-#if LWIP_HAVE_LOOPIF
- struct netif *loop_default_netif = netif_find("lo0");
-#endif
-#endif
struct netif *netif;
#if LWIP_MULTICAST_TX_OPTIONS
/* return netif on which to forward IP packet */
return netif;
}
-
- if (netif != netif_default){
-#if LWIP_HAVE_LOOPIF
- non_default_netif = (netif == loop_default_netif) ? NULL : netif;
-#else
- non_default_netif = netif;
-#endif
- }
}
}
-
-#if ESP_LWIP
- if (non_default_netif && !ip4_addr_isbroadcast(dest, non_default_netif)){
- return non_default_netif;
- }
-#endif
-
#if LWIP_NETIF_LOOPBACK && !LWIP_HAVE_LOOPIF
/* loopif is disabled, looopback traffic is passed through any netif */
if (ip4_addr_isloopback(dest)) {
#endif
}
+static esp_err_t tcpip_adapter_update_default_netif(void)
+{
+ if (netif_is_up(esp_netif[TCPIP_ADAPTER_IF_STA])) {
+ netif_set_default(esp_netif[TCPIP_ADAPTER_IF_STA]);
+ } else if (netif_is_up(esp_netif[TCPIP_ADAPTER_IF_ETH])) {
+ netif_set_default(esp_netif[TCPIP_ADAPTER_IF_ETH]);
+ } else if (netif_is_up(esp_netif[TCPIP_ADAPTER_IF_AP])) {
+ netif_set_default(esp_netif[TCPIP_ADAPTER_IF_AP]);
+ }
+
+ return ESP_OK;
+}
+
esp_err_t tcpip_adapter_start(tcpip_adapter_if_t tcpip_if, uint8_t *mac, tcpip_adapter_ip_info_t *ip_info)
{
netif_init_fn netif_init;
}
}
- /* if ap is on, choose ap as default if */
- if (netif_is_up(esp_netif[TCPIP_ADAPTER_IF_AP])) {
- netif_set_default(esp_netif[TCPIP_ADAPTER_IF_AP]);
- } else if (netif_is_up(esp_netif[TCPIP_ADAPTER_IF_STA])) {
- netif_set_default(esp_netif[TCPIP_ADAPTER_IF_STA]);
- } else if (netif_is_up(esp_netif[TCPIP_ADAPTER_IF_ETH])) {
- netif_set_default(esp_netif[TCPIP_ADAPTER_IF_ETH]);
- }
+ tcpip_adapter_update_default_netif();
return ESP_OK;
}
netif_set_down(esp_netif[tcpip_if]);
netif_remove(esp_netif[tcpip_if]);
-
- /* in ap + sta mode, if stop ap, choose sta as default if */
- if (tcpip_if == TCPIP_ADAPTER_IF_AP) {
- if (netif_is_up(esp_netif[TCPIP_ADAPTER_IF_STA])) {
- netif_set_default(esp_netif[TCPIP_ADAPTER_IF_STA]);
- } else if (netif_is_up(esp_netif[TCPIP_ADAPTER_IF_ETH])) {
- netif_set_default(esp_netif[TCPIP_ADAPTER_IF_ETH]);
- }
- }
+ tcpip_adapter_update_default_netif();
return ESP_OK;
}
netif_set_up(esp_netif[tcpip_if]);
}
- if (netif_is_up(esp_netif[TCPIP_ADAPTER_IF_AP])) {
- netif_set_default(esp_netif[TCPIP_ADAPTER_IF_AP]);
- } else if (netif_is_up(esp_netif[TCPIP_ADAPTER_IF_STA])) {
- netif_set_default(esp_netif[TCPIP_ADAPTER_IF_STA]);
- } else if (netif_is_up(esp_netif[TCPIP_ADAPTER_IF_ETH])) {
- netif_set_default(esp_netif[TCPIP_ADAPTER_IF_ETH]);
- }
+ tcpip_adapter_update_default_netif();
return ESP_OK;
}