From 4388730e9f0bc415a7ba4026a230faac8def9ca3 Mon Sep 17 00:00:00 2001 From: unknown Date: Sat, 5 Aug 2023 19:09:22 +0200 Subject: [PATCH] Some clean and test, befor merge --- lib/tcp_socket.hpp | 2 ++ src/tcp_socket.cpp | 5 ----- test/client.exe | Bin 290669 -> 290669 bytes test/server.exe | Bin 290365 -> 290365 bytes 4 files changed, 2 insertions(+), 5 deletions(-) diff --git a/lib/tcp_socket.hpp b/lib/tcp_socket.hpp index 2d42539..a70032c 100644 --- a/lib/tcp_socket.hpp +++ b/lib/tcp_socket.hpp @@ -39,6 +39,7 @@ class server { #if __linux__ int sock; #elif _WIN32 + WSADATA wsa; SOCKET sock; #endif struct sockaddr_in addr; @@ -79,6 +80,7 @@ class client { #if __linux__ int conn; // mijenja sock #elif _WIN32 + WSADATA wsa; SOCKET conn; // mijenja sock #endif struct sockaddr_in addr; diff --git a/src/tcp_socket.cpp b/src/tcp_socket.cpp index fd26359..66ae272 100644 --- a/src/tcp_socket.cpp +++ b/src/tcp_socket.cpp @@ -12,7 +12,6 @@ server::server (const ushort port, const uint limit, SSL_CTX* _securefds) { addr.sin_port = htons(port); #if _WIN32 - WSADATA wsa; if (WSAStartup(MAKEWORD(2,2),&wsa) != 0) { throw string("[ERROR] WSA Startup. Detail: " + to_string(WSAGetLastError())); } @@ -144,7 +143,6 @@ secure::~secure () { client::client(const string address, const ushort port, const uint timeout, SSL_CTX* securefds) { #if _WIN32 - WSADATA wsa; if (WSAStartup(MAKEWORD(2,2),&wsa) != 0) { throw string("[ERROR] Unable to set WinSock " + to_string(WSAGetLastError())); } @@ -180,9 +178,6 @@ client::client(const string address, const ushort port, const uint timeout, SSL_ } #endif - - - if (securefds) { ssl = SSL_new(securefds); if (!ssl) { diff --git a/test/client.exe b/test/client.exe index 1e2cb7073395d4cf552c935f7a5291b1b0e86e09..1fb9cca5a5dd9ceb284e6ad030547f57f948ece0 100644 GIT binary patch delta 6862 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 H^~e7K31fGw delta 7046 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 Z&YU}KcGhIPUTp(gu4c=rHab(%{{fjo+;ji{ delta 23404 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