mirror of
https://github.com/curl/curl.git
synced 2026-08-26 05:23:33 +03:00
test servers: fix strict aliasing compiler warnings
This commit is contained in:
parent
1c4fa240be
commit
a768e39b2d
6 changed files with 188 additions and 129 deletions
|
|
@ -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) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue