@@ -229,14 +229,17 @@ 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
239
tmpaddr->sin6_scope_id = ip.zone ();
239
- } else {
240
+ } else
241
+ #endif
242
+ {
240
243
struct sockaddr_in *tmpaddr = (struct sockaddr_in *)&serveraddr;
241
244
sockfd = socket (AF_INET, SOCK_STREAM, 0 );
242
245
tmpaddr->sin_family = AF_INET;
@@ -588,6 +591,7 @@ IPAddress WiFiClient::remoteIP(int fd) const
588
591
return IPAddress ((uint32_t )(s->sin_addr .s_addr ));
589
592
}
590
593
594
+ #if LWIP_IPV6
591
595
// IPv6, but it might be IPv4 mapped address
592
596
if (((struct sockaddr *)&addr)->sa_family == AF_INET6) {
593
597
struct sockaddr_in6 *saddr6 = (struct sockaddr_in6 *)&addr;
@@ -597,6 +601,7 @@ IPAddress WiFiClient::remoteIP(int fd) const
597
601
return IPAddress (IPv6, (uint8_t *)(saddr6->sin6_addr .s6_addr ), saddr6->sin6_scope_id );
598
602
}
599
603
}
604
+ #endif
600
605
log_e (" WiFiClient::remoteIP Not AF_INET or AF_INET6?" );
601
606
return (IPAddress (0 ,0 ,0 ,0 ));
602
607
}
0 commit comments