commit: r1683 - neon/branches/0.28.x/src
joe at manyfish.co.uk
joe at manyfish.co.uk
Tue Aug 18 09:16:07 EDT 2009
Author: joe
Date: Tue Aug 18 06:16:07 2009
New Revision: 1683
Modified:
neon/branches/0.28.x/src/ne_socket.c
Log:
Merge r1675 from trunk:
* src/ne_socket.c (ne_sock_peer): Fix strict-aliasing issue.
Modified: neon/branches/0.28.x/src/ne_socket.c
==============================================================================
--- neon/branches/0.28.x/src/ne_socket.c (original)
+++ neon/branches/0.28.x/src/ne_socket.c Tue Aug 18 06:16:07 2009
@@ -1305,6 +1305,7 @@
ne_inet_addr *ne_sock_peer(ne_socket *sock, unsigned int *port)
{
union saun {
+ struct sockaddr sa;
struct sockaddr_in sin;
#if defined(USE_GETADDRINFO) && defined(AF_INET6)
struct sockaddr_in6 sin6;
@@ -1331,13 +1332,13 @@
ia->ai_addr = ne_malloc(sizeof *ia);
ia->ai_addrlen = len;
memcpy(ia->ai_addr, sad, len);
- ia->ai_family = sad->sa_family;
+ ia->ai_family = saun.sa.sa_family;
#else
memcpy(ia, &saun.sin.sin_addr.s_addr, sizeof *ia);
#endif
#if defined(USE_GETADDRINFO) && defined(AF_INET6)
- *port = ntohs(sad->sa_family == AF_INET ?
+ *port = ntohs(saun.sa.sa_family == AF_INET ?
saun.sin.sin_port : saun.sin6.sin6_port);
#else
*port = ntohs(saun.sin.sin_port);
More information about the neon-commits
mailing list