diff --git a/CMakeLists.txt b/CMakeLists.txt index 88cf14be..89f136b7 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -36,6 +36,7 @@ set( IXWEBSOCKET_HEADERS ixwebsocket/IXSetThreadName.h ixwebsocket/IXDNSLookup.h ixwebsocket/IXCancellationRequest.h + ixwebsocket/IXNetSystem.h ixwebsocket/IXWebSocket.h ixwebsocket/IXWebSocketServer.h ixwebsocket/IXWebSocketTransport.h diff --git a/ixwebsocket/IXDNSLookup.cpp b/ixwebsocket/IXDNSLookup.cpp index 6e44ae49..4e0cd55a 100644 --- a/ixwebsocket/IXDNSLookup.cpp +++ b/ixwebsocket/IXDNSLookup.cpp @@ -5,18 +5,7 @@ */ #include "IXDNSLookup.h" - -#ifdef _WIN32 -# include -# include -# include -# include -# include -#else -#include -#include -#include -#endif +#include "IXNetSystem.h" #include #include diff --git a/ixwebsocket/IXNetSystem.h b/ixwebsocket/IXNetSystem.h new file mode 100644 index 00000000..40522fb4 --- /dev/null +++ b/ixwebsocket/IXNetSystem.h @@ -0,0 +1,25 @@ +/* + * IXNetSystem.h + * Author: Benjamin Sergeant + * Copyright (c) 2019 Machine Zone. All rights reserved. + */ + +#pragma once + +#ifdef _WIN32 +# include +# include +# include +# include +# include +#else +# include +# include +# include +# include +# include +# include +# include +# include +# include +#endif diff --git a/ixwebsocket/IXSocket.cpp b/ixwebsocket/IXSocket.cpp index 06d4cfdf..92f1f2ef 100644 --- a/ixwebsocket/IXSocket.cpp +++ b/ixwebsocket/IXSocket.cpp @@ -6,23 +6,7 @@ #include "IXSocket.h" #include "IXSocketConnect.h" - -#ifdef _WIN32 -# include -# include -# include -# include -# include -#else -# include -# include -# include -# include -# include -# include -# include -# include -#endif +#include "IXNetSystem.h" #include #include diff --git a/ixwebsocket/IXSocketConnect.cpp b/ixwebsocket/IXSocketConnect.cpp index 24d64629..27b7953a 100644 --- a/ixwebsocket/IXSocketConnect.cpp +++ b/ixwebsocket/IXSocketConnect.cpp @@ -4,29 +4,9 @@ * Copyright (c) 2018 Machine Zone, Inc. All rights reserved. */ -// -// http://itamarst.org/writings/win32sockets.html -// - #include "IXSocketConnect.h" #include "IXDNSLookup.h" - -#ifdef _WIN32 -# include -# include -# include -# include -# include -#else -# include -# include -# include -# include -# include -# include -# include -# include -#endif +#include "IXNetSystem.h" #include #include @@ -89,6 +69,7 @@ namespace ix } } + // Use select to see if the connect did succeed. fd_set wfds; FD_ZERO(&wfds); FD_SET(fd, &wfds); @@ -122,7 +103,7 @@ namespace ix socklen_t optlen = sizeof(optval); #ifdef _WIN32 - // + // On connect error, in async mode, windows will write to the exceptions fds if (FD_ISSET(fd, &efds)) #else // getsockopt() puts the errno value for connect into optval so 0 @@ -143,7 +124,7 @@ namespace ix } closeSocket(fd); - errMsg = "connect timed out after 60 seconds"; + errMsg = "connect timed out"; return -1; } diff --git a/ixwebsocket/IXWebSocketServer.cpp b/ixwebsocket/IXWebSocketServer.cpp index e9f9e723..f6da46e8 100644 --- a/ixwebsocket/IXWebSocketServer.cpp +++ b/ixwebsocket/IXWebSocketServer.cpp @@ -8,24 +8,10 @@ #include "IXWebSocketTransport.h" #include "IXWebSocket.h" #include "IXSocketConnect.h" +#include "IXNetSystem.h" #include #include - -#ifdef _WIN32 -# include -# include -# include -# include -# include -#else -# include -# include -# include -# include -# include -#endif - #include namespace ix diff --git a/test/IXSocketTest.cpp b/test/IXSocketTest.cpp index a14682a7..475b03d4 100644 --- a/test/IXSocketTest.cpp +++ b/test/IXSocketTest.cpp @@ -65,7 +65,7 @@ TEST_CASE("socket", "[socket]") int port = 80; std::string request("GET / HTTP/1.1\r\n\r\n"); int expectedStatus = 200; - int timeoutSecs = 1; + int timeoutSecs = 3; testSocket(host, port, request, socket, expectedStatus, timeoutSecs); } @@ -82,7 +82,7 @@ TEST_CASE("socket", "[socket]") int port = 443; std::string request("GET / HTTP/1.1\r\n\r\n"); int expectedStatus = 200; - int timeoutSecs = 1; + int timeoutSecs = 3; testSocket(host, port, request, socket, expectedStatus, timeoutSecs); }