Ver código fonte

update:dns也要做无LWIP_IPV6兼容

alienwalker 2 anos atrás
pai
commit
17593a2219

+ 6 - 25
components/ethernet/common/dns_client.c

@@ -176,23 +176,13 @@ int32_t dns_get_ip(dns_client_t *client, Buffer_Struct *buf, uint16_t answer_num
 				error = 1;
 				goto NET_DNSGETIP_DONE;
 			}
-#ifdef LUAT_USE_LWIP
-			ip_addr.type = IPADDR_TYPE_V4;
-			ip_addr.u_addr.ip4.addr = BytesGetLe32(buf->Data + buf->Pos);
-			pvUn.u32 = ip_addr.u_addr.ip4.addr;
-//			LLOGD("ipv4 result %s", ipaddr_ntoa(&ip_addr));
-#else
-			ip_addr.ipv4 = BytesGetLe32(buf->Data + buf->Pos);
-			ip_addr.is_ipv6 = 0;
-			pvUn.u32 = ip_addr.ipv4;
-//			LLOGD("ipv4 result %d.%d.%d.%d", pvUn.u8[0], pvUn.u8[1], pvUn.u8[2], pvUn.u8[3] );
-#endif
+			network_set_ip_ipv4(&ip_addr, BytesGetLe32(buf->Data + buf->Pos));
 			buf->Pos += usTemp;
 			if (ttl > 0)
 			{
 				if (process && (process->ip_nums < MAX_DNS_IP))
 				{
-					LLOGD("ipv4 result%d,%d.%d.%d.%d", process->ip_nums, pvUn.u8[0], pvUn.u8[1], pvUn.u8[2], pvUn.u8[3] );
+//					LLOGD("ipv4 result%d,%d.%d.%d.%d", process->ip_nums, pvUn.u8[0], pvUn.u8[1], pvUn.u8[2], pvUn.u8[3] );
 					process->ip_result[process->ip_nums].ip = ip_addr;
 					process->ip_result[process->ip_nums].ttl_end = ttl + ((uint32_t)(luat_mcu_tick64_ms()/1000));
 					process->ip_nums++;
@@ -214,10 +204,12 @@ int32_t dns_get_ip(dns_client_t *client, Buffer_Struct *buf, uint16_t answer_num
 				goto NET_DNSGETIP_DONE;
 			}
 #ifdef LUAT_USE_LWIP
+#if LWIP_IPV6
 			memcpy(ip_addr.u_addr.ip6.addr, buf->Data + buf->Pos, sizeof( uint32_t ) * 4);
 //			ip_addr.u_addr.ip6.zone = 0;
 			ip_addr.type = IPADDR_TYPE_V6;
 //			LLOGI("ipv6 result %s", ipaddr_ntoa(&ip_addr));
+#endif
 #else
 			memcpy(ip_addr.ipv6_u8_addr, buf->Data + buf->Pos, sizeof( uint32_t ) * 4);
 			ip_addr.is_ipv6 = 1;
@@ -226,9 +218,6 @@ int32_t dns_get_ip(dns_client_t *client, Buffer_Struct *buf, uint16_t answer_num
 			{
 				if (process && (process->ip_nums < MAX_DNS_IP))
 				{
-#ifdef LUAT_USE_LWIP
-					LLOGI("ipv6 result%d,%s", process->ip_nums, ipaddr_ntoa(&ip_addr));
-#endif
 					process->ip_result[process->ip_nums].ip = ip_addr;
 					process->ip_result[process->ip_nums].ttl_end = ttl + ((uint32_t)(luat_mcu_tick64_ms()/1000));
 					process->ip_nums++;
@@ -656,11 +645,7 @@ NET_DNS_TX:
 			}
 		}
 NET_DNS_TX_IPV4:
-#ifdef LUAT_USE_LWIP
-		while(0xff == client->dns_server[process->dns_cnt].type)
-#else
-		while(0xff == client->dns_server[process->dns_cnt].is_ipv6)
-#endif
+		while(!network_ip_is_vaild(&client->dns_server[process->dns_cnt]))
 		{
 			process->dns_cnt++;
 			if (process->dns_cnt >= MAX_DNS_SERVER)
@@ -710,11 +695,7 @@ void dns_init_client(dns_client_t *client)
 	{
 		if (!client->is_static_dns[i])
 		{
-#ifdef LUAT_USE_LWIP
-			client->dns_server[i].type = 0xff;
-#else
-			client->dns_server[i].is_ipv6 = 0xff;
-#endif
+			network_set_ip_invaild(&client->dns_server[i]);
 		}
 	}
 }

+ 2 - 2
components/network/adapter/luat_lib_socket.c

@@ -68,7 +68,7 @@ static int l_socket_local_ip(lua_State *L)
 		lua_pushfstring(L, "%s", ipaddr_ntoa(&local_ip));
 		lua_pushfstring(L, "%s", ipaddr_ntoa(&net_mask));
 		lua_pushfstring(L, "%s", ipaddr_ntoa(&gate_way));
-#ifdef LWIP_IPV6
+#if LWIP_IPV6
 		if (IPADDR_TYPE_V6 == ipv6.type)
 		{
 			char *ipv6_string = ip6addr_ntoa(&ipv6.u_addr.ip6);
@@ -648,7 +648,7 @@ static int l_socket_rx(lua_State *L)
 			else
 			{
 #ifdef LUAT_USE_LWIP
-#ifdef LWIP_IPV6
+#if LWIP_IPV6
 				if (IPADDR_TYPE_V4 == ip_addr.type)
 				{
 					ip[0] = 0;