Merge branch 'bugfix/esp_netif_hostname_v4.1' into 'release/v4.1'

esp_netif: fix get/set hostname API to reflect user settings (v4.1)

See merge request espressif/esp-idf!11360
This commit is contained in:
Jiang Jiang Jian 2021-03-23 03:08:21 +00:00
commit 150910ccd8
5 changed files with 16 additions and 6 deletions

View File

@ -262,6 +262,10 @@ esp_err_t esp_netif_set_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.
*

View File

@ -1091,11 +1091,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;

View File

@ -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"

View File

@ -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

View File

@ -225,7 +225,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