diff --git a/lib/tcp_socket.hpp b/lib/tcp_socket.hpp index 20c9993..d5a757f 100644 --- a/lib/tcp_socket.hpp +++ b/lib/tcp_socket.hpp @@ -5,12 +5,19 @@ #include #include #include -#include -#include -#include #include #include +#if __linux__ + #include + #include + #include +#elif _WIN32 + // #include + #include + #include +#endif + #include "ip.hpp" using namespace std; diff --git a/src/tcp_socket.cpp b/src/tcp_socket.cpp index e48f63c..c31563f 100644 --- a/src/tcp_socket.cpp +++ b/src/tcp_socket.cpp @@ -118,6 +118,15 @@ secure::~secure () { client::client(const string address, const ushort port, const uint timeout, SSL_CTX* securefds) { + #if _WIN32 + WSADATA wsa; + SOCKET s; + if (WSAStartup(MAKEWORD(2,2),&wsa) != 0) { + //printf("Failed. Error Code : %d",WSAGetLastError()); + throw string("[ERROR] Unable to set WinSock " + to_string(WSAGetLastError())); + } + #endif + conn = socket(AF_INET, SOCK_STREAM, 0); if (conn < 0) { throw string("[ERROR] Unable to open TCP socket "); @@ -215,6 +224,10 @@ client::client(const server *_srv, const uint timeout, SSL_CTX* securefds) { client::~client () { + #if _WIN32 + WSACleanup(); + #endif + if (ssl) { SSL_shutdown(ssl); SSL_free(ssl);