@@ -241,7 +241,9 @@ void wifi_reset(void) {
241
241
void ipaddress_ipaddress_to_esp_idf (mp_obj_t ip_address , ip_addr_t * esp_ip_address ) {
242
242
if (mp_obj_is_type (ip_address , & ipaddress_ipv4address_type )) {
243
243
ipaddress_ipaddress_to_esp_idf_ip4 (ip_address , (esp_ip4_addr_t * )esp_ip_address );
244
+ #if LWIP_IPV6
244
245
esp_ip_address -> type = IPADDR_TYPE_V4 ;
246
+ #endif
245
247
} else {
246
248
struct sockaddr_storage addr_storage ;
247
249
socketpool_resolve_host_or_throw (AF_UNSPEC , SOCK_STREAM , mp_obj_str_get_str (ip_address ), & addr_storage , 1 );
@@ -283,10 +285,13 @@ mp_obj_t espaddr6_to_str(const esp_ip6_addr_t *espaddr) {
283
285
284
286
mp_obj_t sockaddr_to_str (const struct sockaddr_storage * sockaddr ) {
285
287
char buf [IPADDR_STRLEN_MAX ];
288
+ #if CIRCUITPY_SOCKETPOOL_IPV6
286
289
if (sockaddr -> ss_family == AF_INET6 ) {
287
290
const struct sockaddr_in6 * addr6 = (const void * )sockaddr ;
288
291
inet_ntop (AF_INET6 , & addr6 -> sin6_addr , buf , sizeof (buf ));
289
- } else {
292
+ } else
293
+ #endif
294
+ {
290
295
const struct sockaddr_in * addr = (const void * )sockaddr ;
291
296
inet_ntop (AF_INET , & addr -> sin_addr , buf , sizeof (buf ));
292
297
}
@@ -298,20 +303,24 @@ mp_obj_t sockaddr_to_tuple(const struct sockaddr_storage *sockaddr) {
298
303
sockaddr_to_str (sockaddr ),
299
304
};
300
305
int n = 2 ;
306
+ #if CIRCUITPY_SOCKETPOOL_IPV6
301
307
if (sockaddr -> ss_family == AF_INET6 ) {
302
308
const struct sockaddr_in6 * addr6 = (const void * )sockaddr ;
303
309
args [1 ] = MP_OBJ_NEW_SMALL_INT (htons (addr6 -> sin6_port ));
304
310
args [2 ] = MP_OBJ_NEW_SMALL_INT (addr6 -> sin6_flowinfo );
305
311
args [3 ] = MP_OBJ_NEW_SMALL_INT (addr6 -> sin6_scope_id );
306
312
n = 4 ;
307
- } else {
313
+ } else
314
+ #endif
315
+ {
308
316
const struct sockaddr_in * addr = (const void * )sockaddr ;
309
317
args [1 ] = MP_OBJ_NEW_SMALL_INT (htons (addr -> sin_port ));
310
318
}
311
319
return mp_obj_new_tuple (n , args );
312
320
}
313
321
314
322
void sockaddr_to_espaddr (const struct sockaddr_storage * sockaddr , esp_ip_addr_t * espaddr ) {
323
+ #if CIRCUITPY_SOCKETPOOL_IPV6
315
324
MP_STATIC_ASSERT (IPADDR_TYPE_V4 == ESP_IPADDR_TYPE_V4 );
316
325
MP_STATIC_ASSERT (IPADDR_TYPE_V6 == ESP_IPADDR_TYPE_V6 );
317
326
MP_STATIC_ASSERT (sizeof (ip_addr_t ) == sizeof (esp_ip_addr_t ));
@@ -323,7 +332,9 @@ void sockaddr_to_espaddr(const struct sockaddr_storage *sockaddr, esp_ip_addr_t
323
332
memcpy (& espaddr -> u_addr .ip6 .addr , & addr6 -> sin6_addr , sizeof (espaddr -> u_addr .ip6 .addr ));
324
333
espaddr -> u_addr .ip6 .zone = addr6 -> sin6_scope_id ;
325
334
espaddr -> type = ESP_IPADDR_TYPE_V6 ;
326
- } else {
335
+ } else
336
+ #endif
337
+ {
327
338
const struct sockaddr_in * addr = (const void * )sockaddr ;
328
339
MP_STATIC_ASSERT (sizeof (espaddr -> u_addr .ip4 .addr ) == sizeof (addr -> sin_addr ));
329
340
memcpy (& espaddr -> u_addr .ip4 .addr , & addr -> sin_addr , sizeof (espaddr -> u_addr .ip4 .addr ));
@@ -332,11 +343,14 @@ void sockaddr_to_espaddr(const struct sockaddr_storage *sockaddr, esp_ip_addr_t
332
343
}
333
344
334
345
void espaddr_to_sockaddr (const esp_ip_addr_t * espaddr , struct sockaddr_storage * sockaddr , int port ) {
346
+ #if CIRCUITPY_SOCKETPOOL_IPV6
335
347
if (espaddr -> type == ESP_IPADDR_TYPE_V6 ) {
336
348
struct sockaddr_in6 * addr6 = (void * )sockaddr ;
337
349
memcpy (& addr6 -> sin6_addr , & espaddr -> u_addr .ip6 .addr , sizeof (espaddr -> u_addr .ip6 .addr ));
338
350
addr6 -> sin6_scope_id = espaddr -> u_addr .ip6 .zone ;
339
- } else {
351
+ } else
352
+ #endif
353
+ {
340
354
struct sockaddr_in * addr = (void * )sockaddr ;
341
355
memcpy (& addr -> sin_addr , & espaddr -> u_addr .ip4 .addr , sizeof (espaddr -> u_addr .ip4 .addr ));
342
356
}
0 commit comments