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