[PATCH]: fix build on uClibc without IPv6 support Updated to glib 2.36 by Thomas Petazzoni. Signed-off-by: Peter Korsgaard Signed-off-by: Thomas Petazzoni --- gio/ginetaddress.c | 9 +++++++++ 1 file changed, 9 insertions(+) Index: b/gio/ginetaddress.c =================================================================== --- a/gio/ginetaddress.c +++ b/gio/ginetaddress.c @@ -21,6 +21,7 @@ * Samuel Cormier-Iijima */ +#include #include #include @@ -423,7 +424,11 @@ return NULL; } +#if defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__) +#define G_INET_ADDRESS_FAMILY_IS_VALID(family) ((family) == AF_INET) +#else #define G_INET_ADDRESS_FAMILY_IS_VALID(family) ((family) == AF_INET || (family) == AF_INET6) +#endif /** * g_inet_address_new_from_bytes: @@ -472,8 +477,10 @@ return g_inet_address_new_from_bytes (addr, family); } +#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__)) else return g_inet_address_new_from_bytes (in6addr_loopback.s6_addr, family); +#endif } /** @@ -499,8 +506,10 @@ return g_inet_address_new_from_bytes (addr, family); } +#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__)) else return g_inet_address_new_from_bytes (in6addr_any.s6_addr, family); +#endif } Index: b/gio/gsocket.c =================================================================== --- a/gio/gsocket.c +++ b/gio/gsocket.c @@ -425,7 +425,9 @@ switch (family) { case G_SOCKET_FAMILY_IPV4: +#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__)) case G_SOCKET_FAMILY_IPV6: +#endif socket->priv->family = address.ss_family; switch (socket->priv->type) { @@ -1321,11 +1323,13 @@ g_socket_get_option (socket, IPPROTO_IP, IP_TTL, &value, &error); } +#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__)) else if (socket->priv->family == G_SOCKET_FAMILY_IPV6) { g_socket_get_option (socket, IPPROTO_IPV6, IPV6_UNICAST_HOPS, &value, &error); } +#endif else g_return_val_if_reached (0); @@ -1362,6 +1366,7 @@ g_socket_set_option (socket, IPPROTO_IP, IP_TTL, ttl, &error); } +#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__)) else if (socket->priv->family == G_SOCKET_FAMILY_IPV6) { g_socket_set_option (socket, IPPROTO_IP, IP_TTL, @@ -1369,6 +1374,7 @@ g_socket_set_option (socket, IPPROTO_IPV6, IPV6_UNICAST_HOPS, ttl, &error); } +#endif else g_return_if_reached (); @@ -1470,11 +1476,13 @@ g_socket_get_option (socket, IPPROTO_IP, IP_MULTICAST_LOOP, &value, &error); } +#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__)) else if (socket->priv->family == G_SOCKET_FAMILY_IPV6) { g_socket_get_option (socket, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, &value, &error); } +#endif else g_return_val_if_reached (FALSE); @@ -1515,6 +1523,7 @@ g_socket_set_option (socket, IPPROTO_IP, IP_MULTICAST_LOOP, loopback, &error); } +#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__)) else if (socket->priv->family == G_SOCKET_FAMILY_IPV6) { g_socket_set_option (socket, IPPROTO_IP, IP_MULTICAST_LOOP, @@ -1522,6 +1531,7 @@ g_socket_set_option (socket, IPPROTO_IPV6, IPV6_MULTICAST_LOOP, loopback, &error); } +#endif else g_return_if_reached (); @@ -1559,11 +1569,13 @@ g_socket_get_option (socket, IPPROTO_IP, IP_MULTICAST_TTL, &value, &error); } +#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__)) else if (socket->priv->family == G_SOCKET_FAMILY_IPV6) { g_socket_get_option (socket, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, &value, &error); } +#endif else g_return_val_if_reached (FALSE); @@ -1601,6 +1613,7 @@ g_socket_set_option (socket, IPPROTO_IP, IP_MULTICAST_TTL, ttl, &error); } +#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__)) else if (socket->priv->family == G_SOCKET_FAMILY_IPV6) { g_socket_set_option (socket, IPPROTO_IP, IP_MULTICAST_TTL, @@ -1608,6 +1621,7 @@ g_socket_set_option (socket, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, ttl, &error); } +#endif else g_return_if_reached (); @@ -1965,6 +1979,7 @@ result = setsockopt (socket->priv->fd, IPPROTO_IP, optname, &mc_req, sizeof (mc_req)); } +#if !(defined(__UCLIBC__) && !defined(__UCLIBC_HAS_IPV6__)) else if (g_inet_address_get_family (group) == G_SOCKET_FAMILY_IPV6) { struct ipv6_mreq mc_req_ipv6; @@ -1982,6 +1997,7 @@ result = setsockopt (socket->priv->fd, IPPROTO_IPV6, optname, &mc_req_ipv6, sizeof (mc_req_ipv6)); } +#endif else g_return_val_if_reached (FALSE); @@ -2089,8 +2105,8 @@ case G_SOCKET_FAMILY_IPV4: return TRUE; - case G_SOCKET_FAMILY_IPV6: #if defined (IPPROTO_IPV6) && defined (IPV6_V6ONLY) + case G_SOCKET_FAMILY_IPV6: { gint v6_only; @@ -2101,8 +2117,6 @@ return !v6_only; } -#else - return FALSE; #endif default: