8000 unix/modsocket: sockaddr(): Handle AF_INET6 addresses. · lispmeister/micropython@ac37e0f · GitHub
[go: up one dir, main page]

Skip to content

Commit ac37e0f

Browse files
committed
unix/modsocket: sockaddr(): Handle AF_INET6 addresses.
1 parent 8f54c08 commit ac37e0f

File tree

1 file changed

+10
-0
lines changed

1 file changed

+10
-0
lines changed

unix/modsocket.c

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -521,6 +521,16 @@ STATIC mp_obj_t mod_socket_sockaddr(mp_obj_t sockaddr_in) {
521521
t->items[2] = MP_OBJ_NEW_SMALL_INT(ntohs(sa->sin_port));
522522
return MP_OBJ_FROM_PTR(t);
523523
}
524+
case AF_INET6: {
525+
struct sockaddr_in6 *sa = (struct sockaddr_in6*)bufinfo.buf;
526+
mp_obj_tuple_t *t = MP_OBJ_TO_PTR(mp_obj_new_tuple(5, NULL));
527+
t->items[0] = MP_OBJ_NEW_SMALL_INT(AF_INET6);
528+
t->items[1] = mp_obj_new_bytes((byte*)&sa->sin6_addr, sizeof(sa->sin6_addr));
529+
t->items[2] = MP_OBJ_NEW_SMALL_INT(ntohs(sa->sin6_port));
530+
t->items[3] = MP_OBJ_NEW_SMALL_INT(ntohl(sa->sin6_flowinfo));
531+
t->items[4] = MP_OBJ_NEW_SMALL_INT(ntohl(sa->sin6_scope_id));
532+
return MP_OBJ_FROM_PTR(t);
533+
}
524534
default: {
525535
struct sockaddr *sa = (struct sockaddr*)bufinfo.buf;
526536
mp_obj_tuple_t *t = MP_OBJ_TO_PTR(mp_obj_new_tuple(2, NULL));

0 commit comments

Comments
 (0)
0