mirror of
https://github.com/BeamMP/BeamMP-Launcher.git
synced 2025-07-01 23:46:59 +00:00
Add mutex to CoreSend
This commit is contained in:
parent
0b35f0484f
commit
06cb366bb5
@ -30,6 +30,7 @@
|
||||
#include <nlohmann/json.hpp>
|
||||
#include <set>
|
||||
#include <thread>
|
||||
#include <mutex>
|
||||
#include "Options.h"
|
||||
|
||||
extern int TraceBack;
|
||||
@ -87,7 +88,11 @@ void StartSync(const std::string& Data) {
|
||||
info("Connecting to server");
|
||||
}
|
||||
|
||||
std::mutex sendMutex;
|
||||
|
||||
void CoreSend(std::string data) {
|
||||
std::lock_guard lock(sendMutex);
|
||||
|
||||
if (CoreSocket != -1) {
|
||||
int res = send(CoreSocket, (data + "\n").c_str(), int(data.size()) + 1, 0);
|
||||
if (res < 0) {
|
||||
@ -116,7 +121,7 @@ void Parse(std::string Data, SOCKET CSocket) {
|
||||
TCPTerminate = true;
|
||||
Data.clear();
|
||||
std::thread([&]() {
|
||||
CoreSend(Code + HTTP::Get("https://backend.beammp.com/servers-info"));
|
||||
CoreSend("B" + HTTP::Get("https://backend.beammp.com/servers-info"));
|
||||
}).detach();
|
||||
break;
|
||||
case 'C':
|
||||
@ -215,7 +220,7 @@ void Parse(std::string Data, SOCKET CSocket) {
|
||||
} else {
|
||||
Data.clear();
|
||||
std::thread([&]() {
|
||||
CoreSend(Code + Login(Data.substr(Data.find(':') + 1)));
|
||||
CoreSend("N" + Login(Data.substr(Data.find(':') + 1)));
|
||||
}).detach();
|
||||
}
|
||||
break;
|
||||
@ -232,12 +237,8 @@ void Parse(std::string Data, SOCKET CSocket) {
|
||||
Data.clear();
|
||||
break;
|
||||
}
|
||||
if (!Data.empty() && CSocket != -1) {
|
||||
int res = send(CSocket, (Data + "\n").c_str(), int(Data.size()) + 1, 0);
|
||||
if (res < 0) {
|
||||
debug("(Core) send failed with error: " + std::to_string(WSAGetLastError()));
|
||||
}
|
||||
}
|
||||
if (!Data.empty())
|
||||
CoreSend(Data);
|
||||
}
|
||||
void GameHandler(SOCKET Client) {
|
||||
CoreSocket = Client;
|
||||
|
Loading…
x
Reference in New Issue
Block a user