IPv6 support for to_native and from_native
[cascardo/gnio.git] / gnio / gsocketaddress.c
index cd77127..ac5b39f 100644 (file)
@@ -80,7 +80,14 @@ g_socket_address_from_native (gpointer native, gsize len)
 
       return G_SOCKET_ADDRESS (g_inet_socket_address_new (G_INET_ADDRESS (g_inet4_address_from_bytes ((guint8 *) &(addr->sin_addr))), g_ntohs (addr->sin_port)));
     }
-  // TODO: handle AF_INET6 and AF_UNIX
+
+  if (family == AF_INET6)
+    {
+      struct sockaddr_in6 *addr = (struct sockaddr_in6 *) native;
+      return G_SOCKET_ADDRESS (g_inet_socket_address_new (G_INET_ADDRESS (g_inet6_address_from_bytes ((guint8 *) &(addr->sin6_addr))), g_ntohs (addr->sin6_port)));
+    }
+
+  // TODO: handle AF_UNIX
 
   return NULL;
 }