diff --git a/CMakeLists.txt b/CMakeLists.txt index 553c3db..7956bfd 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -14,7 +14,7 @@ set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -DDEBUG") if (UNIX) set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -Wall -Wextra -Wpedantic -static-libstdc++") - set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Og -g") + set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -O0 -g") set(CMAKE_CXX_FLAGS_RELEASE "${CMAKE_CXX_FLAGS_RELEASE} -O2 -s -fno-builtin") if (SANITIZE) message(STATUS "sanitize is ON") @@ -43,7 +43,7 @@ add_executable(BeamMP-Server include/TResourceManager.h src/TResourceManager.cpp include/THeartbeatThread.h src/THeartbeatThread.cpp include/Http.h src/Http.cpp - include/SocketIO.h src/SocketIO.cpp + # include/SocketIO.h src/SocketIO.cpp include/TPPSMonitor.h src/TPPSMonitor.cpp include/TUDPServer.h src/TUDPServer.cpp include/TTCPServer.h src/TTCPServer.cpp) diff --git a/include/Common.h b/include/Common.h index 6ed9eae..650bebd 100644 --- a/include/Common.h +++ b/include/Common.h @@ -1,10 +1,10 @@ #pragma once #include +#include #include #include #include -#include #include "TConsole.h" @@ -31,9 +31,6 @@ public: int Port {}; std::string CustomIP; [[nodiscard]] bool HasCustomIP() const { return !CustomIP.empty(); } - - // new settings - std::string ResourceFolder; }; using TShutdownHandler = std::function; @@ -80,4 +77,3 @@ static inline void luaprint(const std::string& str) { #define Biggest 30000 std::string Comp(std::string Data); std::string DeComp(std::string Compressed); - diff --git a/include/IThreaded.h b/include/IThreaded.h index 19ba8fe..ca5d7cd 100644 --- a/include/IThreaded.h +++ b/include/IThreaded.h @@ -7,8 +7,11 @@ class IThreaded { public: IThreaded() // invokes operator() on this object - : mThread(std::thread([this] { (*this)(); })) { } + : mThread() { } + virtual void Start() final { + mThread = std::thread([this] { (*this)(); }); + } virtual void operator()() = 0; protected: diff --git a/src/THeartbeatThread.cpp b/src/THeartbeatThread.cpp index a3d337b..88c239a 100644 --- a/src/THeartbeatThread.cpp +++ b/src/THeartbeatThread.cpp @@ -2,7 +2,7 @@ #include "Client.h" #include "Http.h" -#include "SocketIO.h" +//#include "SocketIO.h" #include void THeartbeatThread::operator()() { @@ -27,12 +27,12 @@ void THeartbeatThread::operator()() { if (!Application::Settings.CustomIP.empty()) Body += "&ip=" + Application::Settings.CustomIP; - T = Http::POST("backend.beammp.com", "/heartbeat", {}, Body, false); + T = Http::POST("beammp.com", "/heartbeatv2", {}, Body, false); if (T.substr(0, 2) != "20") { //Backend system refused server startup! std::this_thread::sleep_for(std::chrono::milliseconds(500)); - T = Http::POST("backend.beammp.com", "/heartbeat", {}, Body, false); + T = Http::POST("beammp.com", "/heartbeatv2", {}, Body, false); // TODO backup2 + HTTP flag (no TSL) if (T.substr(0, 2) != "20") { warn("Backend system refused server! Server might not show in the public list"); @@ -51,7 +51,7 @@ void THeartbeatThread::operator()() { } } - SocketIO::Get().SetAuthenticated(isAuth); + //SocketIO::Get().SetAuthenticated(isAuth); } } std::string THeartbeatThread::GenerateCall() { @@ -78,6 +78,7 @@ THeartbeatThread::THeartbeatThread(TResourceManager& ResourceManager, TServer& S : mResourceManager(ResourceManager) , mServer(Server) { Application::RegisterShutdownHandler([&] { mShutdown = true; }); + Start(); } std::string THeartbeatThread::GetPlayers() { std::string Return; diff --git a/src/TLuaEngine.cpp b/src/TLuaEngine.cpp index a2f4dfc..4a0574e 100644 --- a/src/TLuaEngine.cpp +++ b/src/TLuaEngine.cpp @@ -9,14 +9,15 @@ TLuaEngine::TLuaEngine(TServer& Server, TTCPServer& TCPServer, TUDPServer& UDPSe : mTCPServer(TCPServer) , mUDPServer(UDPServer) , mServer(Server) { - if (!fs::exists(Application::Settings.ResourceFolder)) { - fs::create_directory(Application::Settings.ResourceFolder); + if (!fs::exists(Application::Settings.Resource)) { + fs::create_directory(Application::Settings.Resource); } - std::string Path = Application::Settings.ResourceFolder + ("/Server"); + std::string Path = Application::Settings.Resource + ("/Server"); if (!fs::exists(Path)) { fs::create_directory(Path); } FolderList(Path, false); + Start(); } void TLuaEngine::operator()() { diff --git a/src/TPPSMonitor.cpp b/src/TPPSMonitor.cpp index 1eddd26..a840384 100644 --- a/src/TPPSMonitor.cpp +++ b/src/TPPSMonitor.cpp @@ -5,6 +5,7 @@ TPPSMonitor::TPPSMonitor(TServer& Server) : mServer(Server) { Application::SetPPS("-"); Application::RegisterShutdownHandler([&] { mShutdown = true; }); + Start(); } void TPPSMonitor::operator()() { while (!mShutdown) { diff --git a/src/TTCPServer.cpp b/src/TTCPServer.cpp index 5edf3ab..982f061 100644 --- a/src/TTCPServer.cpp +++ b/src/TTCPServer.cpp @@ -20,6 +20,7 @@ TTCPServer::TTCPServer(TServer& Server, TPPSMonitor& PPSMonitor, TResourceManage , mPPSMonitor(PPSMonitor) , mResourceManager(ResourceManager) { Application::RegisterShutdownHandler([this] { mShutdown = true; }); + Start(); } void TTCPServer::Identify(SOCKET TCPSock) { @@ -115,8 +116,8 @@ void TTCPServer::Authentication(SOCKET TCPSock) { Cl->SetStatus(-2); return false; } - return true; } + return true; }); auto arg = std::make_unique(TLuaArg { { LockedClient->GetName(), LockedClient->GetRoles(), LockedClient->IsGuest() } }); @@ -284,6 +285,7 @@ void TTCPServer::UpdatePlayers() { auto c = ClientPtr.lock(); Packet += c->GetName() + ","; } + return true; }); Packet = Packet.substr(0, Packet.length() - 1); UDPServer().SendToAll(nullptr, Packet, true, true); @@ -327,8 +329,8 @@ int TTCPServer::OpenID() { found = false; ID++; } - return true; } + return true; }); } while (!found); return ID; diff --git a/src/TUDPServer.cpp b/src/TUDPServer.cpp index 59b7195..de8f23d 100644 --- a/src/TUDPServer.cpp +++ b/src/TUDPServer.cpp @@ -9,6 +9,7 @@ TUDPServer::TUDPServer(TServer& Server, TPPSMonitor& PPSMonitor, TTCPServer& TCP : mServer(Server) , mPPSMonitor(PPSMonitor) , mTCPServer(TCPServer) { + Start(); } void TUDPServer::operator()() {