Loading tests/server/Makefile.inc +4 −0 Original line number Diff line number Diff line Loading @@ -39,22 +39,26 @@ resolve_LDADD = @TEST_SERVER_LIBS@ resolve_CFLAGS = $(AM_CFLAGS) rtspd_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \ server_sockaddr.h \ rtspd.c rtspd_LDADD = @TEST_SERVER_LIBS@ rtspd_CFLAGS = $(AM_CFLAGS) sockfilt_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \ server_sockaddr.h \ sockfilt.c \ $(top_srcdir)/lib/inet_pton.c sockfilt_LDADD = @TEST_SERVER_LIBS@ sockfilt_CFLAGS = $(AM_CFLAGS) sws_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \ server_sockaddr.h \ sws.c sws_LDADD = @TEST_SERVER_LIBS@ sws_CFLAGS = $(AM_CFLAGS) tftpd_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \ server_sockaddr.h \ tftpd.c \ tftp.h tftpd_LDADD = @TEST_SERVER_LIBS@ Loading tests/server/rtspd.c +12 −14 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ #include "curlx.h" /* from the private lib dir */ #include "getpart.h" #include "util.h" #include "server_sockaddr.h" /* include memdebug.h last */ #include "memdebug.h" Loading Loading @@ -1169,10 +1170,7 @@ static int send_doc(curl_socket_t sock, struct httprequest *req) 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; Loading Loading @@ -1294,19 +1292,19 @@ 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_addr.s_addr = INADDR_ANY; me.sin_port = htons(port); rc = bind(sock, (struct sockaddr *) &me, sizeof(me)); memset(&me.sa4, 0, sizeof(me.sa4)); me.sa4.sin_family = AF_INET; me.sa4.sin_addr.s_addr = INADDR_ANY; me.sa4.sin_port = htons(port); rc = bind(sock, &me.sa, sizeof(me.sa4)); #ifdef ENABLE_IPV6 } else { memset(&me6, 0, sizeof(me6)); me6.sin6_family = AF_INET6; me6.sin6_addr = in6addr_any; me6.sin6_port = htons(port); rc = bind(sock, (struct sockaddr *) &me6, sizeof(me6)); memset(&me.sa6, 0, sizeof(me.sa6)); me.sa6.sin6_family = AF_INET6; me.sa6.sin6_addr = in6addr_any; me.sa6.sin6_port = htons(port); rc = bind(sock, &me.sa, sizeof(me.sa6)); } #endif /* ENABLE_IPV6 */ if(0 != rc) { Loading tests/server/server_sockaddr.h 0 → 100644 +33 −0 Original line number Diff line number Diff line #ifndef HEADER_SERVER_SOCKADDR_H #define HEADER_SERVER_SOCKADDR_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at http://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ***************************************************************************/ typedef union { struct sockaddr sa; struct sockaddr_in sa4; #ifdef ENABLE_IPV6 struct sockaddr_in6 sa6; #endif } srvr_sockaddr_union_t; #endif /* HEADER_SERVER_SOCKADDR_H */ tests/server/sockfilt.c +34 −45 Original line number Diff line number Diff line Loading @@ -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" Loading Loading @@ -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; Loading Loading @@ -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) { Loading @@ -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: Loading Loading @@ -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; Loading Loading @@ -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 tests/server/sws.c +12 −14 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ #include "curlx.h" /* from the private lib dir */ #include "getpart.h" #include "util.h" #include "server_sockaddr.h" /* include memdebug.h last */ #include "memdebug.h" Loading Loading @@ -1116,10 +1117,7 @@ static int send_doc(curl_socket_t sock, struct httprequest *req) 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; Loading Loading @@ -1260,19 +1258,19 @@ 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_addr.s_addr = INADDR_ANY; me.sin_port = htons(port); rc = bind(sock, (struct sockaddr *) &me, sizeof(me)); memset(&me.sa4, 0, sizeof(me.sa4)); me.sa4.sin_family = AF_INET; me.sa4.sin_addr.s_addr = INADDR_ANY; me.sa4.sin_port = htons(port); rc = bind(sock, &me.sa, sizeof(me.sa4)); #ifdef ENABLE_IPV6 } else { memset(&me6, 0, sizeof(me6)); me6.sin6_family = AF_INET6; me6.sin6_addr = in6addr_any; me6.sin6_port = htons(port); rc = bind(sock, (struct sockaddr *) &me6, sizeof(me6)); memset(&me.sa6, 0, sizeof(me.sa6)); me.sa6.sin6_family = AF_INET6; me.sa6.sin6_addr = in6addr_any; me.sa6.sin6_port = htons(port); rc = bind(sock, &me.sa, sizeof(me.sa6)); } #endif /* ENABLE_IPV6 */ if(0 != rc) { Loading Loading
tests/server/Makefile.inc +4 −0 Original line number Diff line number Diff line Loading @@ -39,22 +39,26 @@ resolve_LDADD = @TEST_SERVER_LIBS@ resolve_CFLAGS = $(AM_CFLAGS) rtspd_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \ server_sockaddr.h \ rtspd.c rtspd_LDADD = @TEST_SERVER_LIBS@ rtspd_CFLAGS = $(AM_CFLAGS) sockfilt_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \ server_sockaddr.h \ sockfilt.c \ $(top_srcdir)/lib/inet_pton.c sockfilt_LDADD = @TEST_SERVER_LIBS@ sockfilt_CFLAGS = $(AM_CFLAGS) sws_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \ server_sockaddr.h \ sws.c sws_LDADD = @TEST_SERVER_LIBS@ sws_CFLAGS = $(AM_CFLAGS) tftpd_SOURCES = $(CURLX_SRCS) $(CURLX_HDRS) $(USEFUL) $(UTIL) \ server_sockaddr.h \ tftpd.c \ tftp.h tftpd_LDADD = @TEST_SERVER_LIBS@ Loading
tests/server/rtspd.c +12 −14 Original line number Diff line number Diff line Loading @@ -58,6 +58,7 @@ #include "curlx.h" /* from the private lib dir */ #include "getpart.h" #include "util.h" #include "server_sockaddr.h" /* include memdebug.h last */ #include "memdebug.h" Loading Loading @@ -1169,10 +1170,7 @@ static int send_doc(curl_socket_t sock, struct httprequest *req) 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; Loading Loading @@ -1294,19 +1292,19 @@ 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_addr.s_addr = INADDR_ANY; me.sin_port = htons(port); rc = bind(sock, (struct sockaddr *) &me, sizeof(me)); memset(&me.sa4, 0, sizeof(me.sa4)); me.sa4.sin_family = AF_INET; me.sa4.sin_addr.s_addr = INADDR_ANY; me.sa4.sin_port = htons(port); rc = bind(sock, &me.sa, sizeof(me.sa4)); #ifdef ENABLE_IPV6 } else { memset(&me6, 0, sizeof(me6)); me6.sin6_family = AF_INET6; me6.sin6_addr = in6addr_any; me6.sin6_port = htons(port); rc = bind(sock, (struct sockaddr *) &me6, sizeof(me6)); memset(&me.sa6, 0, sizeof(me.sa6)); me.sa6.sin6_family = AF_INET6; me.sa6.sin6_addr = in6addr_any; me.sa6.sin6_port = htons(port); rc = bind(sock, &me.sa, sizeof(me.sa6)); } #endif /* ENABLE_IPV6 */ if(0 != rc) { Loading
tests/server/server_sockaddr.h 0 → 100644 +33 −0 Original line number Diff line number Diff line #ifndef HEADER_SERVER_SOCKADDR_H #define HEADER_SERVER_SOCKADDR_H /*************************************************************************** * _ _ ____ _ * Project ___| | | | _ \| | * / __| | | | |_) | | * | (__| |_| | _ <| |___ * \___|\___/|_| \_\_____| * * Copyright (C) 1998 - 2010, Daniel Stenberg, <daniel@haxx.se>, et al. * * This software is licensed as described in the file COPYING, which * you should have received as part of this distribution. The terms * are also available at http://curl.haxx.se/docs/copyright.html. * * You may opt to use, copy, modify, merge, publish, distribute and/or sell * copies of the Software, and permit persons to whom the Software is * furnished to do so, under the terms of the COPYING file. * * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY * KIND, either express or implied. * ***************************************************************************/ typedef union { struct sockaddr sa; struct sockaddr_in sa4; #ifdef ENABLE_IPV6 struct sockaddr_in6 sa6; #endif } srvr_sockaddr_union_t; #endif /* HEADER_SERVER_SOCKADDR_H */
tests/server/sockfilt.c +34 −45 Original line number Diff line number Diff line Loading @@ -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" Loading Loading @@ -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; Loading Loading @@ -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) { Loading @@ -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: Loading Loading @@ -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; Loading Loading @@ -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
tests/server/sws.c +12 −14 Original line number Diff line number Diff line Loading @@ -59,6 +59,7 @@ #include "curlx.h" /* from the private lib dir */ #include "getpart.h" #include "util.h" #include "server_sockaddr.h" /* include memdebug.h last */ #include "memdebug.h" Loading Loading @@ -1116,10 +1117,7 @@ static int send_doc(curl_socket_t sock, struct httprequest *req) 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; Loading Loading @@ -1260,19 +1258,19 @@ 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_addr.s_addr = INADDR_ANY; me.sin_port = htons(port); rc = bind(sock, (struct sockaddr *) &me, sizeof(me)); memset(&me.sa4, 0, sizeof(me.sa4)); me.sa4.sin_family = AF_INET; me.sa4.sin_addr.s_addr = INADDR_ANY; me.sa4.sin_port = htons(port); rc = bind(sock, &me.sa, sizeof(me.sa4)); #ifdef ENABLE_IPV6 } else { memset(&me6, 0, sizeof(me6)); me6.sin6_family = AF_INET6; me6.sin6_addr = in6addr_any; me6.sin6_port = htons(port); rc = bind(sock, (struct sockaddr *) &me6, sizeof(me6)); memset(&me.sa6, 0, sizeof(me.sa6)); me.sa6.sin6_family = AF_INET6; me.sa6.sin6_addr = in6addr_any; me.sa6.sin6_port = htons(port); rc = bind(sock, &me.sa, sizeof(me.sa6)); } #endif /* ENABLE_IPV6 */ if(0 != rc) { Loading