diff options
author | Drew Richardson <drew.richardson@arm.com> | 2013-12-16 12:00:00 -0800 |
---|---|---|
committer | Drew Richardson <drew.richardson@arm.com> | 2014-12-19 15:48:40 -0800 |
commit | 9b0375410d73fb0de515ee33e0dd7f054cd45a6f (patch) | |
tree | 6a2a9dfa45fe1a25b0959f10401e200687fd1a03 /daemon/OlySocket.cpp | |
parent | df48c99f8da89ef9a91fac638b8e0528507bd088 (diff) |
gator: Version 5.175.17
Signed-off-by: Drew Richardson <drew.richardson@arm.com>
Diffstat (limited to 'daemon/OlySocket.cpp')
-rw-r--r-- | daemon/OlySocket.cpp | 23 |
1 files changed, 15 insertions, 8 deletions
diff --git a/daemon/OlySocket.cpp b/daemon/OlySocket.cpp index 132510d..ab5c3c2 100644 --- a/daemon/OlySocket.cpp +++ b/daemon/OlySocket.cpp @@ -11,6 +11,7 @@ #include <stdio.h> #ifdef WIN32 #include <Winsock2.h> +#include <ws2tcpip.h> #else #include <netinet/in.h> #include <sys/socket.h> @@ -126,11 +127,17 @@ void OlySocket::createSingleServerConnection(int port) { } void OlySocket::createServerSocket(int port) { + int family = AF_INET6; + // Create socket - mFDServer = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); + mFDServer = socket(PF_INET6, SOCK_STREAM, IPPROTO_TCP); if (mFDServer < 0) { - logg->logError(__FILE__, __LINE__, "Error creating server socket"); - handleException(); + family = AF_INET; + mFDServer = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP); + if (mFDServer < 0) { + logg->logError(__FILE__, __LINE__, "Error creating server socket"); + handleException(); + } } // Enable address reuse, another solution would be to create the server socket once and only close it when the object exits @@ -141,11 +148,11 @@ void OlySocket::createServerSocket(int port) { } // Create sockaddr_in structure, ensuring non-populated fields are zero - struct sockaddr_in sockaddr; - memset((void*)&sockaddr, 0, sizeof(struct sockaddr_in)); - sockaddr.sin_family = AF_INET; - sockaddr.sin_port = htons(port); - sockaddr.sin_addr.s_addr = INADDR_ANY; + struct sockaddr_in6 sockaddr; + memset((void*)&sockaddr, 0, sizeof(sockaddr)); + sockaddr.sin6_family = family; + sockaddr.sin6_port = htons(port); + sockaddr.sin6_addr = in6addr_any; // Bind the socket to an address if (bind(mFDServer, (const struct sockaddr*)&sockaddr, sizeof(sockaddr)) < 0) { |