1919#define  NETX_TX_POOL_SIZE  ((NETX_PACKET_SIZE + sizeof(NX_PACKET)) * NETX_TX_PACKET_COUNT)
2020#define  NETX_RX_POOL_SIZE  ((NETX_PACKET_SIZE + sizeof(NX_PACKET)) * NETX_RX_PACKET_COUNT)
2121#define  NETX_ARP_CACHE_SIZE  512
22+ #define  NETX_DNS_COUNT  6
2223
2324#define  NETX_IPV4_ADDRESS  IP_ADDRESS(0, 0, 0, 0)
2425#define  NETX_IPV4_MASK  IP_ADDRESS(255, 255, 255, 0)
@@ -128,8 +129,8 @@ static UINT dhcp_connect(void)
128129static  UINT  dns_connect ()
129130{
130131 UINT  status ;
131-  ULONG  dns_server_address [3 ]   =  {0 };
132-  UINT  dns_server_address_size  = 12 ;
132+  ULONG  dns_server_address [NETX_DNS_COUNT ]  =  {0 };
133+  UINT  dns_server_address_size  = sizeof ( UINT )  * NETX_DNS_COUNT ;
133134
134135 printf ("\r\nInitializing DNS client\r\n" );
135136
@@ -141,21 +142,22 @@ static UINT dns_connect()
141142 return  status ;
142143 }
143144
144-  // Output DNS Server address 
145-  print_address ("DNS address 1" , dns_server_address [0 ]);
146-  print_address ("DNS address 2" , dns_server_address [1 ]);
147- 148145 if  ((status  =  nx_dns_server_remove_all (& nx_dns_client )))
149146 {
150147 printf ("ERROR: nx_dns_server_remove_all (0x%08x)\r\n" , status );
151148 return  status ;
152149 }
153150
154-  // Add an IPv4 server address to the Client list 
155-  if  ((status  =  nx_dns_server_add (& nx_dns_client , dns_server_address [0 ])))
151+  for  (int  i  =  0 ; i  <  dns_server_address_size  / sizeof (UINT ); ++ i )
156152 {
157-  printf ("ERROR: nx_dns_server_add (0x%08x)\r\n" , status );
158-  return  status ;
153+  print_address ("DNS address" , dns_server_address [i ]);
154+ 155+  // Add an IPv4 server address to the Client list 
156+  if  ((status  =  nx_dns_server_add (& nx_dns_client , dns_server_address [i ])))
157+  {
158+  printf ("ERROR: nx_dns_server_add (0x%08x)\r\n" , status );
159+  return  status ;
160+  }
159161 }
160162
161163 printf ("SUCCESS: DNS client initialized\r\n" );
@@ -245,7 +247,6 @@ UINT wwd_network_init(CHAR* ssid, CHAR* password, WiFi_Mode mode)
245247 nx_packet_pool_delete (& nx_pool [0 ]);
246248 nx_packet_pool_delete (& nx_pool [1 ]);
247249 printf ("ERROR: nx_tcp_enable (0x%08x)\r\n" , status );
248-  return  status ;
249250 }
250251
251252 // Enable UDP traffic 
@@ -312,6 +313,11 @@ UINT wwd_network_init(CHAR* ssid, CHAR* password, WiFi_Mode mode)
312313 else  if  ((status  =  sntp_init ()))
313314 {
314315 printf ("ERROR: Failed to init the SNTP client (0x%08x)\r\n" , status );
316+  nx_dns_delete (& nx_dns_client );
317+  nx_dhcp_delete (& nx_dhcp_client );
318+  nx_ip_delete (& nx_ip );
319+  nx_packet_pool_delete (& nx_pool [0 ]);
320+  nx_packet_pool_delete (& nx_pool [1 ]); 
315321 }
316322
317323 // Initialize TLS 
0 commit comments