@@ -229,13 +229,16 @@ int WiFiClient::connect(IPAddress ip, uint16_t port, int32_t timeout_ms)
229229 _timeout = timeout_ms;
230230 int sockfd = -1 ;
231231
232- if (ip.type () == IPv6) {
232+ #if LWIP_IPV6
233+ if (ip.isV6 ()) {
233234 struct sockaddr_in6 *tmpaddr = (struct sockaddr_in6 *)&serveraddr;
234235 sockfd = socket (AF_INET6, SOCK_STREAM, 0 );
235236 tmpaddr->sin6_family = AF_INET6;
236237 memcpy (tmpaddr->sin6_addr .un .u8_addr , &ip[0 ], 16 );
237238 tmpaddr->sin6_port = htons (port);
238- } else {
239+ } else
240+ #endif
241+ {
239242 struct sockaddr_in *tmpaddr = (struct sockaddr_in *)&serveraddr;
240243 sockfd = socket (AF_INET, SOCK_STREAM, 0 );
241244 tmpaddr->sin_family = AF_INET;
@@ -587,6 +590,7 @@ IPAddress WiFiClient::remoteIP(int fd) const
587590 return IPAddress ((uint32_t )(s->sin_addr .s_addr ));
588591 }
589592
593+ #if LWIP_IPV6
590594 // IPv6, but it might be IPv4 mapped address
591595 if (((struct sockaddr *)&addr)->sa_family == AF_INET6) {
592596 struct sockaddr_in6 *saddr6 = (struct sockaddr_in6 *)&addr;
@@ -596,6 +600,7 @@ IPAddress WiFiClient::remoteIP(int fd) const
596600 return IPAddress (IPv6, (uint8_t *)(saddr6->sin6_addr .s6_addr ));
597601 }
598602 }
603+ #endif
599604 log_e (" WiFiClient::remoteIP Not AF_INET or AF_INET6?" );
600605 return (IPAddress (0 ,0 ,0 ,0 ));
601606}
0 commit comments