diff options
author | Petri Hintukainen <phintuka@users.sourceforge.net> | 2011-11-24 12:44:04 +0200 |
---|---|---|
committer | Petri Hintukainen <phintuka@users.sourceforge.net> | 2011-11-24 12:44:04 +0200 |
commit | 0d1157df4bfbb7722473c5d0214c2024bb98f680 (patch) | |
tree | fe2340447d96813bd4cfc16afc47d46f087681e1 | |
parent | 944ce1be60e6ade88fb41c1914eecaaf54bd2786 (diff) | |
download | xine-lib-0d1157df4bfbb7722473c5d0214c2024bb98f680.tar.gz xine-lib-0d1157df4bfbb7722473c5d0214c2024bb98f680.tar.bz2 |
Fixed aliasing
--HG--
branch : point-release
-rw-r--r-- | src/xine-engine/io_helper.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/src/xine-engine/io_helper.c b/src/xine-engine/io_helper.c index 22f34ffc2..eef843906 100644 --- a/src/xine-engine/io_helper.c +++ b/src/xine-engine/io_helper.c @@ -87,17 +87,19 @@ static int _x_io_tcp_connect_ipv4(xine_stream_t *stream, const char *host, int p for (i = 0; h->h_addr_list[i]; i++) { struct in_addr ia; - struct sockaddr_in sin; - + union { + struct sockaddr sa; + struct sockaddr_in in; + } saddr; memcpy (&ia, h->h_addr_list[i], 4); - sin.sin_family = AF_INET; - sin.sin_addr = ia; - sin.sin_port = htons(port); + saddr.in.sin_family = AF_INET; + saddr.in.sin_addr = ia; + saddr.in.sin_port = htons(port); #ifndef WIN32 - if (connect(s, (struct sockaddr *)&sin, sizeof(sin))==-1 && errno != EINPROGRESS) { + if (connect(s, &saddr.sa, sizeof(saddr.in))==-1 && errno != EINPROGRESS) { #else - if (connect(s, (struct sockaddr *)&sin, sizeof(sin))==-1 && WSAGetLastError() != WSAEWOULDBLOCK) { + if (connect(s, &saddr.sa, sizeof(saddr.in))==-1 && WSAGetLastError() != WSAEWOULDBLOCK) { if (stream) xprintf(stream->xine, XINE_VERBOSITY_DEBUG, "io_helper: WSAGetLastError() = %d\n", WSAGetLastError()); #endif /* WIN32 */ |