| [PATCH]: fix build on uClibc without IPv6 support |
| |
| Updated to glib 2.36 by Thomas Petazzoni. |
| |
| Signed-off-by: Peter Korsgaard <jacmet@sunsite.dk> |
| Signed-off-by: Thomas Petazzoni <thomas.petazzoni@free-electrons.com> |
| --- |
| 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 <sciyoshi@gmail.com> |
| */ |
| |
| +#include <features.h> |
| #include <config.h> |
| |
| #include <string.h> |
| @@ -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: |