From 49874fd63370f6bc3d64917c2af9b34f1a348364 Mon Sep 17 00:00:00 2001 From: Lion Kortlepel Date: Wed, 9 Oct 2024 18:00:43 +0200 Subject: [PATCH] Revert "remove 'D' socket initialization code" This reverts commit 6a23518eff66217a2b8f6b8c6b49baf654e73683. --- src/Network/Resources.cpp | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/src/Network/Resources.cpp b/src/Network/Resources.cpp index 23e488a..2fbdec8 100644 --- a/src/Network/Resources.cpp +++ b/src/Network/Resources.cpp @@ -194,6 +194,31 @@ void MultiKill(SOCKET Sock, SOCKET Sock1) { KillSocket(Sock); Terminate = true; } +SOCKET InitDSock() { + SOCKET DSock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP); + SOCKADDR_IN ServerAddr; + if (DSock < 1) { + KillSocket(DSock); + Terminate = true; + return 0; + } + ServerAddr.sin_family = AF_INET; + ServerAddr.sin_port = htons(LastPort); + inet_pton(AF_INET, LastIP.c_str(), &ServerAddr.sin_addr); + if (connect(DSock, (SOCKADDR*)&ServerAddr, sizeof(ServerAddr)) != 0) { + KillSocket(DSock); + Terminate = true; + return 0; + } + char Code[2] = { 'D', char(ClientID) }; + if (send(DSock, Code, 2, 0) != 2) { + KillSocket(DSock); + Terminate = true; + return 0; + } + return DSock; +} + std::vector SingleNormalDownload(SOCKET MSock, uint64_t Size, const std::string& Name) { DownloadSpeed = 0; @@ -536,6 +561,7 @@ void SyncResources(SOCKET Sock) { } if (!FNames.empty()) info("Syncing..."); + SOCKET DSock = InitDSock(); for (auto FN = FNames.begin(), FS = FSizes.begin(); FN != FNames.end() && !Terminate; ++FN, ++FS) { auto pos = FN->find_last_of('/'); if (pos != std::string::npos) {