aboutsummaryrefslogtreecommitdiff
path: root/tests/server/sockfilt.c
diff options
context:
space:
mode:
authorYang Tse <yangsita@gmail.com>2010-11-19 19:20:38 +0100
committerYang Tse <yangsita@gmail.com>2010-11-19 19:20:38 +0100
commita768e39b2d6bd60cbf71e983f1003b22603cb71e (patch)
treee2537d2c144fbff6075499ef0bdc3eb9abd42bd1 /tests/server/sockfilt.c
parent1c4fa240bec959fd23f4826d9aa9e624fa48d01a (diff)
test servers: fix strict aliasing compiler warnings
Diffstat (limited to 'tests/server/sockfilt.c')
-rw-r--r--tests/server/sockfilt.c79
1 files changed, 34 insertions, 45 deletions
diff --git a/tests/server/sockfilt.c b/tests/server/sockfilt.c
index 714d6fcde..90ce9d919 100644
--- a/tests/server/sockfilt.c
+++ b/tests/server/sockfilt.c
@@ -109,6 +109,7 @@
#include "getpart.h"
#include "inet_pton.h"
#include "util.h"
+#include "server_sockaddr.h"
/* include memdebug.h last */
#include "memdebug.h"
@@ -688,10 +689,7 @@ static curl_socket_t sockdaemon(curl_socket_t sock,
unsigned short *listenport)
{
/* passive daemon style */
- struct sockaddr_in me;
-#ifdef ENABLE_IPV6
- struct sockaddr_in6 me6;
-#endif /* ENABLE_IPV6 */
+ srvr_sockaddr_union_t listener;
int flag;
int rc;
int totdelay = 0;
@@ -742,19 +740,19 @@ static curl_socket_t sockdaemon(curl_socket_t sock,
#ifdef ENABLE_IPV6
if(!use_ipv6) {
#endif
- memset(&me, 0, sizeof(me));
- me.sin_family = AF_INET;
- me.sin_addr.s_addr = INADDR_ANY;
- me.sin_port = htons(*listenport);
- rc = bind(sock, (struct sockaddr *) &me, sizeof(me));
+ memset(&listener.sa4, 0, sizeof(listener.sa4));
+ listener.sa4.sin_family = AF_INET;
+ listener.sa4.sin_addr.s_addr = INADDR_ANY;
+ listener.sa4.sin_port = htons(*listenport);
+ rc = bind(sock, &listener.sa, sizeof(listener.sa4));
#ifdef ENABLE_IPV6
}
else {
- memset(&me6, 0, sizeof(me6));
- me6.sin6_family = AF_INET6;
- me6.sin6_addr = in6addr_any;
- me6.sin6_port = htons(*listenport);
- rc = bind(sock, (struct sockaddr *) &me6, sizeof(me6));
+ memset(&listener.sa6, 0, sizeof(listener.sa6));
+ listener.sa6.sin6_family = AF_INET6;
+ listener.sa6.sin6_addr = in6addr_any;
+ listener.sa6.sin6_port = htons(*listenport);
+ rc = bind(sock, &listener.sa, sizeof(listener.sa6));
}
#endif /* ENABLE_IPV6 */
if(rc) {
@@ -769,36 +767,30 @@ static curl_socket_t sockdaemon(curl_socket_t sock,
/* The system was supposed to choose a port number, figure out which
port we actually got and update the listener port value with it. */
curl_socklen_t la_size;
- struct sockaddr *localaddr;
- struct sockaddr_in localaddr4;
+ srvr_sockaddr_union_t localaddr;
#ifdef ENABLE_IPV6
- struct sockaddr_in6 localaddr6;
- if(!use_ipv6) {
+ if(!use_ipv6)
#endif
- la_size = sizeof(localaddr4);
- localaddr = (struct sockaddr *)&localaddr4;
+ la_size = sizeof(localaddr.sa4);
#ifdef ENABLE_IPV6
- }
- else {
- la_size = sizeof(localaddr6);
- localaddr = (struct sockaddr *)&localaddr6;
- }
+ else
+ la_size = sizeof(localaddr.sa6);
#endif
- memset(localaddr, 0, (size_t)la_size);
- if(getsockname(sock, localaddr, &la_size) < 0) {
+ memset(&localaddr.sa, 0, (size_t)la_size);
+ if(getsockname(sock, &localaddr.sa, &la_size) < 0) {
error = SOCKERRNO;
logmsg("getsockname() failed with error: (%d) %s",
error, strerror(error));
sclose(sock);
return CURL_SOCKET_BAD;
}
- switch (localaddr->sa_family) {
+ switch (localaddr.sa.sa_family) {
case AF_INET:
- *listenport = ntohs(localaddr4.sin_port);
+ *listenport = ntohs(localaddr.sa4.sin_port);
break;
#ifdef ENABLE_IPV6
case AF_INET6:
- *listenport = ntohs(localaddr6.sin6_port);
+ *listenport = ntohs(localaddr.sa6.sin6_port);
break;
#endif
default:
@@ -831,10 +823,7 @@ static curl_socket_t sockdaemon(curl_socket_t sock,
int main(int argc, char *argv[])
{
- struct sockaddr_in me;
-#ifdef ENABLE_IPV6
- struct sockaddr_in6 me6;
-#endif /* ENABLE_IPV6 */
+ srvr_sockaddr_union_t me;
curl_socket_t sock = CURL_SOCKET_BAD;
curl_socket_t msgsock = CURL_SOCKET_BAD;
int wrotepidfile = 0;
@@ -970,26 +959,26 @@ int main(int argc, char *argv[])
#ifdef ENABLE_IPV6
if(!use_ipv6) {
#endif
- memset(&me, 0, sizeof(me));
- me.sin_family = AF_INET;
- me.sin_port = htons(connectport);
- me.sin_addr.s_addr = INADDR_ANY;
+ memset(&me.sa4, 0, sizeof(me.sa4));
+ me.sa4.sin_family = AF_INET;
+ me.sa4.sin_port = htons(connectport);
+ me.sa4.sin_addr.s_addr = INADDR_ANY;
if (!addr)
addr = "127.0.0.1";
- Curl_inet_pton(AF_INET, addr, &me.sin_addr);
+ Curl_inet_pton(AF_INET, addr, &me.sa4.sin_addr);
- rc = connect(sock, (struct sockaddr *) &me, sizeof(me));
+ rc = connect(sock, &me.sa, sizeof(me.sa4));
#ifdef ENABLE_IPV6
}
else {
- memset(&me6, 0, sizeof(me6));
- me6.sin6_family = AF_INET6;
- me6.sin6_port = htons(connectport);
+ memset(&me.sa6, 0, sizeof(me.sa6));
+ me.sa6.sin6_family = AF_INET6;
+ me.sa6.sin6_port = htons(connectport);
if (!addr)
addr = "::1";
- Curl_inet_pton(AF_INET6, addr, &me6.sin6_addr);
+ Curl_inet_pton(AF_INET6, addr, &me.sa6.sin6_addr);
- rc = connect(sock, (struct sockaddr *) &me6, sizeof(me6));
+ rc = connect(sock, &me.sa, sizeof(me.sa6));
}
#endif /* ENABLE_IPV6 */
if(rc) {