@@ -229,13 +229,16 @@ int WiFiClient::connect(IPAddress ip, uint16_t port, int32_t timeout_ms)
229
229
_timeout = timeout_ms;
230
230
int sockfd = -1 ;
231
231
232
- if (ip.type () == IPv6) {
232
+ #if LWIP_IPV6
233
+ if (ip.isV6 ()) {
233
234
struct sockaddr_in6 *tmpaddr = (struct sockaddr_in6 *)&serveraddr;
234
235
sockfd = socket (AF_INET6, SOCK_STREAM, 0 );
235
236
tmpaddr->sin6_family = AF_INET6;
236
237
memcpy (tmpaddr->sin6_addr .un .u8_addr , &ip[0 ], 16 );
237
238
tmpaddr->sin6_port = htons (port);
238
- } else {
239
+ } else
240
+ #endif
241
+ {
239
242
struct sockaddr_in *tmpaddr = (struct sockaddr_in *)&serveraddr;
240
243
sockfd = socket (AF_INET, SOCK_STREAM, 0 );
241
244
tmpaddr->sin_family = AF_INET;
@@ -587,6 +590,7 @@ IPAddress WiFiClient::remoteIP(int fd) const
587
590
return IPAddress ((uint32_t )(s->sin_addr .s_addr ));
588
591
}
589
592
593
+ #if LWIP_IPV6
590
594
// IPv6, but it might be IPv4 mapped address
591
595
if (((struct sockaddr *)&addr)->sa_family == AF_INET6) {
592
596
struct sockaddr_in6 *saddr6 = (struct sockaddr_in6 *)&addr;
@@ -596,6 +600,7 @@ IPAddress WiFiClient::remoteIP(int fd) const
596
600
return IPAddress (IPv6, (uint8_t *)(saddr6->sin6_addr .s6_addr ));
597
601
}
598
602
}
603
+ #endif
599
604
log_e (" WiFiClient::remoteIP Not AF_INET or AF_INET6?" );
600
605
return (IPAddress (0 ,0 ,0 ,0 ));
601
606
}
0 commit comments