feat(lwip): Modify lwip according to new wifi APIs

This commit is contained in:
Zhang Jun Hao
2018-06-23 18:24:53 +08:00
parent ffe1e5c9cd
commit 15bf619aed
3 changed files with 24 additions and 29 deletions

View File

@ -18,7 +18,7 @@
#include "esp_libc.h" #include "esp_libc.h"
#include "esp_misc.h" #include "esp_misc.h"
#include "esp_softap.h" #include "esp_wifi.h"
#include "sdkconfig.h" #include "sdkconfig.h"
#include "lwip/inet.h" #include "lwip/inet.h"
@ -186,9 +186,9 @@ static u8_t* add_offer_options(u8_t* optptr)
*optptr++ = ip4_addr4(&ipadd); *optptr++ = ip4_addr4(&ipadd);
if (dhcps_router_enabled(offer)) { if (dhcps_router_enabled(offer)) {
struct ip_info if_ip; tcpip_adapter_ip_info_t if_ip;
bzero(&if_ip, sizeof(struct ip_info)); bzero(&if_ip, sizeof(tcpip_adapter_ip_info_t));
wifi_get_ip_info(SOFTAP_IF, &if_ip); wifi_get_ip_info(ESP_IF_WIFI_AP, &if_ip);
*optptr++ = DHCP_OPTION_ROUTER; *optptr++ = DHCP_OPTION_ROUTER;
*optptr++ = 4; *optptr++ = 4;
@ -971,7 +971,7 @@ static void wifi_softap_init_dhcps_lease(u32_t ip)
// printf("start_ip = 0x%x, end_ip = 0x%x\n",dhcps_lease.start_ip, dhcps_lease.end_ip); // printf("start_ip = 0x%x, end_ip = 0x%x\n",dhcps_lease.start_ip, dhcps_lease.end_ip);
} }
/////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////////////////////////
void dhcps_start(struct ip_info* info) void dhcps_start(tcpip_adapter_ip_info_t* info)
{ {
if (pcb_dhcps != NULL) { if (pcb_dhcps != NULL) {
udp_remove(pcb_dhcps); udp_remove(pcb_dhcps);
@ -1022,14 +1022,15 @@ void dhcps_stop(void)
bool wifi_softap_set_dhcps_lease(struct dhcps_lease* please) bool wifi_softap_set_dhcps_lease(struct dhcps_lease* please)
{ {
struct ip_info info; tcpip_adapter_ip_info_t info;
u32_t softap_ip = 0; u32_t softap_ip = 0;
u32_t start_ip = 0; u32_t start_ip = 0;
u32_t end_ip = 0; u32_t end_ip = 0;
u8_t opmode = wifi_get_opmode(); wifi_mode_t opmode;
esp_wifi_get_mode(&opmode);
if (opmode == STATION_MODE || opmode == NULL_MODE) { if (opmode == WIFI_MODE_STA || opmode == WIFI_MODE_NULL) {
return false; return false;
} }
@ -1038,8 +1039,8 @@ bool wifi_softap_set_dhcps_lease(struct dhcps_lease* please)
} }
if (please->enable) { if (please->enable) {
bzero(&info, sizeof(struct ip_info)); bzero(&info, sizeof(tcpip_adapter_ip_info_t));
wifi_get_ip_info(SOFTAP_IF, &info); wifi_get_ip_info(ESP_IF_WIFI_AP, &info);
softap_ip = htonl(info.ip.addr); softap_ip = htonl(info.ip.addr);
start_ip = htonl(please->start_ip.addr); start_ip = htonl(please->start_ip.addr);
end_ip = htonl(please->end_ip.addr); end_ip = htonl(please->end_ip.addr);
@ -1082,9 +1083,10 @@ bool wifi_softap_set_dhcps_lease(struct dhcps_lease* please)
*******************************************************************************/ *******************************************************************************/
bool wifi_softap_get_dhcps_lease(struct dhcps_lease* please) bool wifi_softap_get_dhcps_lease(struct dhcps_lease* please)
{ {
u8_t opmode = wifi_get_opmode(); wifi_mode_t opmode;
esp_wifi_get_mode(&opmode);
if (opmode == STATION_MODE || opmode == NULL_MODE) { if (opmode == WIFI_MODE_STA || opmode == WIFI_MODE_NULL) {
return false; return false;
} }
@ -1193,9 +1195,10 @@ bool wifi_softap_set_dhcps_offer_option(u8_t level, void* optarg)
bool wifi_softap_set_dhcps_lease_time(u32_t minute) bool wifi_softap_set_dhcps_lease_time(u32_t minute)
{ {
u8_t opmode = wifi_get_opmode(); wifi_mode_t opmode;
esp_wifi_get_mode(&opmode);
if (opmode == STATION_MODE || opmode == NULL_MODE) { if (opmode == WIFI_MODE_STA || opmode == WIFI_MODE_NULL) {
return false; return false;
} }
@ -1213,9 +1216,10 @@ bool wifi_softap_set_dhcps_lease_time(u32_t minute)
bool wifi_softap_reset_dhcps_lease_time(void) bool wifi_softap_reset_dhcps_lease_time(void)
{ {
u8_t opmode = wifi_get_opmode(); wifi_mode_t opmode;
esp_wifi_get_mode(&opmode);
if (opmode == STATION_MODE || opmode == NULL_MODE) { if (opmode == WIFI_MODE_STA || opmode == WIFI_MODE_NULL) {
return false; return false;
} }

View File

@ -83,7 +83,7 @@ extern u32_t dhcps_lease_time;
#define dhcps_router_enabled(offer) ((offer & OFFER_ROUTER) != 0) #define dhcps_router_enabled(offer) ((offer & OFFER_ROUTER) != 0)
void dhcps_start(struct ip_info* info); void dhcps_start(tcpip_adapter_ip_info_t* info);
void dhcps_stop(void); void dhcps_stop(void);
#endif #endif

View File

@ -264,25 +264,16 @@ int8_t ethernetif_init(struct netif* netif)
/* set MAC hardware address */ /* set MAC hardware address */
if (wifi_get_netif(TCPIP_ADAPTER_IF_STA) == TCPIP_ADAPTER_IF_STA) { if (wifi_get_netif(TCPIP_ADAPTER_IF_STA) == TCPIP_ADAPTER_IF_STA) {
wifi_get_macaddr(TCPIP_ADAPTER_IF_STA, mac); esp_wifi_get_mac(TCPIP_ADAPTER_IF_STA, mac);
} else { } else {
wifi_get_macaddr(TCPIP_ADAPTER_IF_AP, mac); esp_wifi_set_mac(TCPIP_ADAPTER_IF_AP, mac);
} }
memcpy(netif->hwaddr, mac, NETIF_MAX_HWADDR_LEN); memcpy(netif->hwaddr, mac, NETIF_MAX_HWADDR_LEN);
#if LWIP_NETIF_HOSTNAME #if LWIP_NETIF_HOSTNAME
if (wifi_get_netif(TCPIP_ADAPTER_IF_STA) == TCPIP_ADAPTER_IF_STA) { netif->hostname = "lwip";
if (default_hostname == 1) {
wifi_station_set_default_hostname(netif->hwaddr);
}
/* Initialize interface hostname */
netif->hostname = hostname;
} else {
netif->hostname = NULL;
}
#endif /* LWIP_NETIF_HOSTNAME */ #endif /* LWIP_NETIF_HOSTNAME */