@@ -486,14 +486,26 @@ nsapi_error_t AT_CellularContext::activate_ip_context()
486
486
while (pdp) {
487
487
SocketAddress addr;
488
488
if (addr.set_ip_address (pdp->dns_secondary_addr )) {
489
- tr_info (" DNS secondary %s" , pdp->dns_secondary_addr );
490
- char ifn[5 ]; // "ce" + two digit _cid + zero
491
- add_dns_server (addr, get_interface_name (ifn));
489
+ nsapi_addr_t taddr = addr.get_addr ();
490
+ for (int i = 0 ; i < ((taddr.version == NSAPI_IPv6) ? NSAPI_IPv6_BYTES : NSAPI_IPv4_BYTES); i++) {
491
+ if (taddr.bytes [i] != 0 ) { // check the address is not all zero
492
+ tr_info (" DNS secondary %s" , pdp->dns_secondary_addr );
493
+ char ifn[5 ]; // "ce" + two digit _cid + zero
494
+ add_dns_server (addr, get_interface_name (ifn));
495
+ break ;
496
+ }
497
+ }
492
498
}
493
499
if (addr.set_ip_address (pdp->dns_primary_addr )) {
494
- tr_info (" DNS primary %s" , pdp->dns_primary_addr );
495
- char ifn[5 ]; // "ce" + two digit _cid + zero
496
- add_dns_server (addr, get_interface_name (ifn));
500
+ nsapi_addr_t taddr = addr.get_addr ();
501
+ for (int i = 0 ; i < ((taddr.version == NSAPI_IPv6) ? NSAPI_IPv6_BYTES : NSAPI_IPv4_BYTES); i++) {
502
+ if (taddr.bytes [i] != 0 ) { // check the address is not all zero
503
+ tr_info (" DNS primary %s" , pdp->dns_primary_addr );
504
+ char ifn[5 ]; // "ce" + two digit _cid + zero
505
+ add_dns_server (addr, get_interface_name (ifn));
506
+ break ;
507
+ }
508
+ }
497
509
}
498
510
pdp = pdp->next ;
499
511
}
0 commit comments