ESP-NETIF: fix get/set hostname API to reflect user settings

On startup of the common interface (ethernet, wifi), the lwip netif hostname was assigned to confg value .
Fixed to assign to esp-netif hostname if it exists

Closes https://github.com/espressif/esp-idf/issues/4737
pull/4772/head
David Cermak 2020-02-10 13:40:54 +01:00
rodzic 2e8a894ea7
commit 7c8cbe02e4
5 zmienionych plików z 16 dodań i 6 usunięć

Wyświetl plik

@ -277,6 +277,10 @@ esp_err_t esp_netif_get_mac(esp_netif_t *esp_netif, uint8_t mac[]);
/**
* @brief Set the hostname of an interface
*
* The configured hostname overrides the default configuration value CONFIG_LWIP_LOCAL_HOSTNAME.
* Please note that when the hostname is altered after interface started/connected the changes
* would only be reflected once the interface restarts/reconnects
*
* @param[in] esp_netif Handle to esp-netif instance
* @param[in] hostname New hostname for the interface. Maximum length 32 bytes.
*

Wyświetl plik

@ -1048,11 +1048,11 @@ esp_err_t esp_netif_get_hostname(esp_netif_t *esp_netif, const char **hostname)
#if LWIP_NETIF_HOSTNAME
struct netif *p_netif = esp_netif->lwip_netif;
if (p_netif != NULL) {
if (p_netif != NULL && p_netif->hostname != NULL) {
*hostname = p_netif->hostname;
return ESP_OK;
} else {
return ESP_ERR_ESP_NETIF_INVALID_PARAMS;
return ESP_ERR_ESP_NETIF_IF_NOT_READY;
}
#else
return ESP_ERR_ESP_NETIF_IF_NOT_READY;

Wyświetl plik

@ -4,7 +4,8 @@ menu "LWIP"
string "Local netif hostname"
default 'espressif'
help
The name this device will report to other devices on the network
The default name this device will report to other devices on the network.
Could be updated at runtime with esp_netif_set_hostname()
config LWIP_DNS_SUPPORT_MDNS_QUERIES
bool "Enable mDNS queries in resolving host name"

Wyświetl plik

@ -196,11 +196,14 @@ err_t ethernetif_init(struct netif *netif)
{
LWIP_ASSERT("netif != NULL", (netif != NULL));
/* Have to get the esp-netif handle from netif first and then driver==ethernet handle from there */
esp_eth_handle_t eth_handle = esp_netif_get_io_driver(esp_netif_get_handle_from_netif_impl(netif));
esp_netif_t *esp_netif = esp_netif_get_handle_from_netif_impl(netif);
esp_eth_handle_t eth_handle = esp_netif_get_io_driver(esp_netif);
/* Initialize interface hostname */
#if LWIP_NETIF_HOSTNAME
#if ESP_LWIP
netif->hostname = CONFIG_LWIP_LOCAL_HOSTNAME;
if (esp_netif_get_hostname(esp_netif, &netif->hostname) != ESP_OK) {
netif->hostname = CONFIG_LWIP_LOCAL_HOSTNAME;
}
#else
netif->hostname = "lwip";
#endif

Wyświetl plik

@ -219,7 +219,9 @@ wlanif_init(struct netif *netif)
/* Initialize interface hostname */
#if ESP_LWIP
netif->hostname = CONFIG_LWIP_LOCAL_HOSTNAME;
if (esp_netif_get_hostname(esp_netif_get_handle_from_netif_impl(netif), &netif->hostname) != ESP_OK) {
netif->hostname = CONFIG_LWIP_LOCAL_HOSTNAME;
}
#else
netif->hostname = "lwip";
#endif