diff options
author | Philip Withnall <philip.withnall@collabora.co.uk> | 2013-11-19 19:05:04 +0000 |
---|---|---|
committer | Philip Withnall <philip.withnall@collabora.co.uk> | 2013-11-19 19:05:04 +0000 |
commit | ed79b05977fec7708177c5abfe9a4ee6dab2135b (patch) | |
tree | 14d3252090768e45d97155ed72bdda2444ba1150 /gdata | |
parent | 8306c87c00ace13633301ca95a9db2e4935ae7da (diff) | |
download | libgdata-ed79b05977fec7708177c5abfe9a4ee6dab2135b.tar.gz |
tests: Fix strict aliasing problems with struct sockaddr
Make it a union and GCC is happy again.
Diffstat (limited to 'gdata')
-rw-r--r-- | gdata/tests/streams.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/gdata/tests/streams.c b/gdata/tests/streams.c index a8c77a4c..7b4fe5f6 100644 --- a/gdata/tests/streams.c +++ b/gdata/tests/streams.c @@ -99,7 +99,10 @@ test_download_stream_download_server_content_length_handler_cb (SoupServer *serv static SoupServer * create_server (SoupServerCallback callback, gpointer user_data, GMainContext **async_context) { - struct sockaddr_in sock; + union { + struct sockaddr_in in; + struct sockaddr norm; + } sock; SoupAddress *addr; SoupServer *server; @@ -107,11 +110,11 @@ create_server (SoupServerCallback callback, gpointer user_data, GMainContext **a /* Create the server */ memset (&sock, 0, sizeof (sock)); - sock.sin_family = AF_INET; - sock.sin_addr.s_addr = htonl (INADDR_LOOPBACK); - sock.sin_port = htons (0); /* random port */ + sock.in.sin_family = AF_INET; + sock.in.sin_addr.s_addr = htonl (INADDR_LOOPBACK); + sock.in.sin_port = htons (0); /* random port */ - addr = soup_address_new_from_sockaddr ((struct sockaddr *) &sock, sizeof (sock)); + addr = soup_address_new_from_sockaddr (&sock.norm, sizeof (sock.norm)); g_assert (addr != NULL); *async_context = g_main_context_new (); |