【修复】esp8266 部分固件获取 DNS 服务器失败,设置默认 DNS 服务器地址问题
Signed-off-by: chenyong <1521761801@qq.com>
This commit is contained in:
parent
4db8bb797c
commit
b8471cb0f3
|
@ -40,9 +40,14 @@
|
||||||
|
|
||||||
/* ============================= esp8266 network interface operations ============================= */
|
/* ============================= esp8266 network interface operations ============================= */
|
||||||
|
|
||||||
|
static int esp8266_netdev_set_dns_server(struct netdev *netdev, uint8_t dns_num, ip_addr_t *dns_server);
|
||||||
|
|
||||||
static void esp8266_get_netdev_info(struct rt_work *work, void *work_data)
|
static void esp8266_get_netdev_info(struct rt_work *work, void *work_data)
|
||||||
{
|
{
|
||||||
#define AT_ADDR_LEN 32
|
#define AT_ADDR_LEN 32
|
||||||
|
#define AT_ERR_DNS_SERVER "255.255.255.255"
|
||||||
|
#define AT_DEF_DNS_SERVER "114.114.114.114"
|
||||||
|
|
||||||
at_response_t resp = RT_NULL;
|
at_response_t resp = RT_NULL;
|
||||||
char ip[AT_ADDR_LEN] = {0}, mac[AT_ADDR_LEN] = {0};
|
char ip[AT_ADDR_LEN] = {0}, mac[AT_ADDR_LEN] = {0};
|
||||||
char gateway[AT_ADDR_LEN] = {0}, netmask[AT_ADDR_LEN] = {0};
|
char gateway[AT_ADDR_LEN] = {0}, netmask[AT_ADDR_LEN] = {0};
|
||||||
|
@ -125,13 +130,21 @@ static void esp8266_get_netdev_info(struct rt_work *work, void *work_data)
|
||||||
goto __exit;
|
goto __exit;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (rt_strlen(dns_server1) > 0)
|
/* set primary DNS server address */
|
||||||
|
if (rt_strlen(dns_server1) > 0 &&
|
||||||
|
rt_strncmp(dns_server1, AT_ERR_DNS_SERVER, rt_strlen(AT_ERR_DNS_SERVER)) != 0)
|
||||||
{
|
{
|
||||||
inet_aton(dns_server1, &ip_addr);
|
inet_aton(dns_server1, &ip_addr);
|
||||||
netdev_low_level_set_dns_server(netdev, 0, &ip_addr);
|
netdev_low_level_set_dns_server(netdev, 0, &ip_addr);
|
||||||
}
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
inet_aton(AT_DEF_DNS_SERVER, &ip_addr);
|
||||||
|
esp8266_netdev_set_dns_server(netdev, 0, &ip_addr);
|
||||||
|
}
|
||||||
|
|
||||||
if (rt_strlen(dns_server2) > 0)
|
/* set secondary DNS server address */
|
||||||
|
if (rt_strlen(dns_server2) > 0 )
|
||||||
{
|
{
|
||||||
inet_aton(dns_server2, &ip_addr);
|
inet_aton(dns_server2, &ip_addr);
|
||||||
netdev_low_level_set_dns_server(netdev, 1, &ip_addr);
|
netdev_low_level_set_dns_server(netdev, 1, &ip_addr);
|
||||||
|
|
Loading…
Reference in New Issue