mirror of
https://github.com/BeamMP/BeamMP-Launcher.git
synced 2025-07-01 23:46:59 +00:00
Fixed ? ping
This commit is contained in:
parent
cf13396c96
commit
d5466bb68a
@ -16,6 +16,7 @@ extern std::string MStatus;
|
|||||||
extern std::string UlStatus;
|
extern std::string UlStatus;
|
||||||
extern std::string ListOfMods;
|
extern std::string ListOfMods;
|
||||||
void UDPSend(std::string Data);
|
void UDPSend(std::string Data);
|
||||||
|
int KillSocket(uint64_t Dead);
|
||||||
void CoreNetwork();
|
void CoreNetwork();
|
||||||
void GameSend(std::string Data);
|
void GameSend(std::string Data);
|
||||||
void SendLarge(std::string Data);
|
void SendLarge(std::string Data);
|
||||||
|
@ -128,7 +128,7 @@ void GameHandler(SOCKET Client){
|
|||||||
if(Temp < 1)break;
|
if(Temp < 1)break;
|
||||||
if(!isdigit(Header[Rcv]) && Header[Rcv] != '>') {
|
if(!isdigit(Header[Rcv]) && Header[Rcv] != '>') {
|
||||||
error(Sec("(Core) Invalid lua communication"));
|
error(Sec("(Core) Invalid lua communication"));
|
||||||
closesocket(Client);
|
KillSocket(Client);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
}while(Header[Rcv++] != '>');
|
}while(Header[Rcv++] != '>');
|
||||||
@ -155,7 +155,7 @@ void GameHandler(SOCKET Client){
|
|||||||
} else {
|
} else {
|
||||||
debug(Sec("(Core) recv failed with error: ") + std::to_string(WSAGetLastError()));
|
debug(Sec("(Core) recv failed with error: ") + std::to_string(WSAGetLastError()));
|
||||||
}
|
}
|
||||||
closesocket(Client);
|
KillSocket(Client);
|
||||||
}
|
}
|
||||||
void localRes(){
|
void localRes(){
|
||||||
MStatus = " ";
|
MStatus = " ";
|
||||||
@ -197,7 +197,7 @@ void CoreMain() {
|
|||||||
if (iRes == SOCKET_ERROR) {
|
if (iRes == SOCKET_ERROR) {
|
||||||
error(Sec("(Core) bind failed with error: ") + std::to_string(WSAGetLastError()));
|
error(Sec("(Core) bind failed with error: ") + std::to_string(WSAGetLastError()));
|
||||||
freeaddrinfo(res);
|
freeaddrinfo(res);
|
||||||
closesocket(LSocket);
|
KillSocket(LSocket);
|
||||||
WSACleanup();
|
WSACleanup();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -205,7 +205,7 @@ void CoreMain() {
|
|||||||
if (iRes == SOCKET_ERROR) {
|
if (iRes == SOCKET_ERROR) {
|
||||||
debug(Sec("(Core) listen failed with error: ") + std::to_string(WSAGetLastError()));
|
debug(Sec("(Core) listen failed with error: ") + std::to_string(WSAGetLastError()));
|
||||||
freeaddrinfo(res);
|
freeaddrinfo(res);
|
||||||
closesocket(LSocket);
|
KillSocket(LSocket);
|
||||||
WSACleanup();
|
WSACleanup();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -220,7 +220,7 @@ void CoreMain() {
|
|||||||
GameHandler(CSocket);
|
GameHandler(CSocket);
|
||||||
warn(Sec("Game Reconnecting..."));
|
warn(Sec("Game Reconnecting..."));
|
||||||
}while(CSocket);
|
}while(CSocket);
|
||||||
closesocket(LSocket);
|
KillSocket(LSocket);
|
||||||
WSACleanup();
|
WSACleanup();
|
||||||
}
|
}
|
||||||
int Handle(EXCEPTION_POINTERS *ep){
|
int Handle(EXCEPTION_POINTERS *ep){
|
||||||
|
@ -18,6 +18,11 @@ extern SOCKET UDPSock;
|
|||||||
extern SOCKET TCPSock;
|
extern SOCKET TCPSock;
|
||||||
SOCKET CSocket;
|
SOCKET CSocket;
|
||||||
|
|
||||||
|
int KillSocket(uint64_t Dead){
|
||||||
|
shutdown(Dead,SD_BOTH);
|
||||||
|
return closesocket(Dead);
|
||||||
|
}
|
||||||
|
|
||||||
bool CheckBytes(uint32_t Bytes){
|
bool CheckBytes(uint32_t Bytes){
|
||||||
if(Bytes == 0){
|
if(Bytes == 0){
|
||||||
debug(Sec("(Proxy) Connection closing"));
|
debug(Sec("(Proxy) Connection closing"));
|
||||||
@ -72,15 +77,20 @@ void ServerSend(std::string Data, bool Rel){
|
|||||||
//debug("(Game->Launcher) : " + Data);
|
//debug("(Game->Launcher) : " + Data);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void NetReset(){
|
void NetReset(){
|
||||||
TCPTerminate = false;
|
TCPTerminate = false;
|
||||||
GConnected = false;
|
GConnected = false;
|
||||||
Terminate = false;
|
Terminate = false;
|
||||||
UlStatus = Sec("Ulstart");
|
UlStatus = Sec("Ulstart");
|
||||||
MStatus = " ";
|
MStatus = " ";
|
||||||
if(UDPSock != SOCKET_ERROR)closesocket(UDPSock);
|
if(UDPSock != SOCKET_ERROR){
|
||||||
|
KillSocket(UDPSock);
|
||||||
|
}
|
||||||
UDPSock = -1;
|
UDPSock = -1;
|
||||||
if(TCPSock != SOCKET_ERROR)closesocket(TCPSock);
|
if(TCPSock != SOCKET_ERROR){
|
||||||
|
KillSocket(TCPSock);
|
||||||
|
}
|
||||||
TCPSock = -1;
|
TCPSock = -1;
|
||||||
ClearAll();
|
ClearAll();
|
||||||
}
|
}
|
||||||
@ -117,7 +127,7 @@ SOCKET SetupListener(){
|
|||||||
if (iRes == SOCKET_ERROR) {
|
if (iRes == SOCKET_ERROR) {
|
||||||
error(Sec("(Proxy) bind failed with error: ") + std::to_string(WSAGetLastError()));
|
error(Sec("(Proxy) bind failed with error: ") + std::to_string(WSAGetLastError()));
|
||||||
freeaddrinfo(result);
|
freeaddrinfo(result);
|
||||||
closesocket(LSocket);
|
KillSocket(LSocket);
|
||||||
WSACleanup();
|
WSACleanup();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -125,7 +135,7 @@ SOCKET SetupListener(){
|
|||||||
iRes = listen(LSocket, SOMAXCONN);
|
iRes = listen(LSocket, SOMAXCONN);
|
||||||
if (iRes == SOCKET_ERROR) {
|
if (iRes == SOCKET_ERROR) {
|
||||||
error(Sec("(Proxy) listen failed with error: ") + std::to_string(WSAGetLastError()));
|
error(Sec("(Proxy) listen failed with error: ") + std::to_string(WSAGetLastError()));
|
||||||
closesocket(LSocket);
|
KillSocket(LSocket);
|
||||||
WSACleanup();
|
WSACleanup();
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -236,5 +246,5 @@ void TCPGameServer(const std::string& IP, int Port){
|
|||||||
if(LSocket == -1){
|
if(LSocket == -1){
|
||||||
UlStatus = Sec("Critical error! check the launcher logs");
|
UlStatus = Sec("Critical error! check the launcher logs");
|
||||||
}
|
}
|
||||||
if(CSocket != SOCKET_ERROR)closesocket(CSocket);
|
if(CSocket != SOCKET_ERROR)KillSocket(CSocket);
|
||||||
}
|
}
|
@ -47,7 +47,7 @@ void STCPSendRaw(SOCKET socket,const std::vector<char>& Data){
|
|||||||
}
|
}
|
||||||
else if (BytesSent < 0) {
|
else if (BytesSent < 0) {
|
||||||
debug(Sec("(TCP) send failed with error: ") + std::to_string(WSAGetLastError()));
|
debug(Sec("(TCP) send failed with error: ") + std::to_string(WSAGetLastError()));
|
||||||
closesocket(socket);
|
KillSocket(socket);
|
||||||
Terminate = true;
|
Terminate = true;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
@ -67,7 +67,7 @@ std::pair<char*,size_t> STCPRecv(SOCKET socket){
|
|||||||
return std::make_pair((char*)"",0);
|
return std::make_pair((char*)"",0);
|
||||||
}else if (BytesRcv < 0) {
|
}else if (BytesRcv < 0) {
|
||||||
info(Sec("(TCP) recv failed with error: ") + std::to_string(WSAGetLastError()));
|
info(Sec("(TCP) recv failed with error: ") + std::to_string(WSAGetLastError()));
|
||||||
closesocket(socket);
|
KillSocket(socket);
|
||||||
Terminate = true;
|
Terminate = true;
|
||||||
return std::make_pair((char*)"",0);
|
return std::make_pair((char*)"",0);
|
||||||
}
|
}
|
||||||
@ -115,7 +115,7 @@ void Check(Hold* S){
|
|||||||
std::this_thread::sleep_for(std::chrono::seconds(5));
|
std::this_thread::sleep_for(std::chrono::seconds(5));
|
||||||
if(S != nullptr){
|
if(S != nullptr){
|
||||||
if(!S->Done && S->TCPSock != -1){
|
if(!S->Done && S->TCPSock != -1){
|
||||||
closesocket(S->TCPSock);
|
KillSocket(S->TCPSock);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -218,6 +218,6 @@ void UDPClientMain(const std::string& IP,int Port){
|
|||||||
TCPSend(Sec("P"));
|
TCPSend(Sec("P"));
|
||||||
UDPSend(Sec("p"));
|
UDPSend(Sec("p"));
|
||||||
while(!Terminate)UDPRcv();
|
while(!Terminate)UDPRcv();
|
||||||
closesocket(UDPSock);
|
KillSocket(UDPSock);
|
||||||
WSACleanup();
|
WSACleanup();
|
||||||
}
|
}
|
@ -20,7 +20,7 @@ bool CheckBytes(int32_t Bytes){
|
|||||||
return false;
|
return false;
|
||||||
}else if (Bytes < 0) {
|
}else if (Bytes < 0) {
|
||||||
debug(Sec("(TCP) recv failed with error: ") + std::to_string(WSAGetLastError()));
|
debug(Sec("(TCP) recv failed with error: ") + std::to_string(WSAGetLastError()));
|
||||||
closesocket(TCPSock);
|
KillSocket(TCPSock);
|
||||||
Terminate = true;
|
Terminate = true;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
@ -107,7 +107,7 @@ void TCPClientMain(const std::string& IP,int Port){
|
|||||||
if(RetCode != 0){
|
if(RetCode != 0){
|
||||||
UlStatus = Sec("UlConnection Failed!");
|
UlStatus = Sec("UlConnection Failed!");
|
||||||
std::cout << Sec("Client: connect failed! Error code: ") << WSAGetLastError() << std::endl;
|
std::cout << Sec("Client: connect failed! Error code: ") << WSAGetLastError() << std::endl;
|
||||||
closesocket(TCPSock);
|
KillSocket(TCPSock);
|
||||||
WSACleanup();
|
WSACleanup();
|
||||||
Terminate = true;
|
Terminate = true;
|
||||||
return;
|
return;
|
||||||
@ -118,7 +118,7 @@ void TCPClientMain(const std::string& IP,int Port){
|
|||||||
while(!Terminate)TCPRcv();
|
while(!Terminate)TCPRcv();
|
||||||
GameSend(Sec("T"));
|
GameSend(Sec("T"));
|
||||||
////Game Send Terminate
|
////Game Send Terminate
|
||||||
if(closesocket(TCPSock) != 0)
|
if(KillSocket(TCPSock) != 0)
|
||||||
debug(Sec("(TCP) Cannot close socket. Error code: ") + std::to_string(WSAGetLastError()));
|
debug(Sec("(TCP) Cannot close socket. Error code: ") + std::to_string(WSAGetLastError()));
|
||||||
|
|
||||||
if(WSACleanup() != 0)
|
if(WSACleanup() != 0)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user