Fixed ? ping

This commit is contained in:
Anonymous275 2020-11-13 00:30:03 +02:00
parent cf13396c96
commit d5466bb68a
6 changed files with 28 additions and 17 deletions

View File

@ -16,6 +16,7 @@ extern std::string MStatus;
extern std::string UlStatus;
extern std::string ListOfMods;
void UDPSend(std::string Data);
int KillSocket(uint64_t Dead);
void CoreNetwork();
void GameSend(std::string Data);
void SendLarge(std::string Data);

View File

@ -128,7 +128,7 @@ void GameHandler(SOCKET Client){
if(Temp < 1)break;
if(!isdigit(Header[Rcv]) && Header[Rcv] != '>') {
error(Sec("(Core) Invalid lua communication"));
closesocket(Client);
KillSocket(Client);
return;
}
}while(Header[Rcv++] != '>');
@ -155,7 +155,7 @@ void GameHandler(SOCKET Client){
} else {
debug(Sec("(Core) recv failed with error: ") + std::to_string(WSAGetLastError()));
}
closesocket(Client);
KillSocket(Client);
}
void localRes(){
MStatus = " ";
@ -197,7 +197,7 @@ void CoreMain() {
if (iRes == SOCKET_ERROR) {
error(Sec("(Core) bind failed with error: ") + std::to_string(WSAGetLastError()));
freeaddrinfo(res);
closesocket(LSocket);
KillSocket(LSocket);
WSACleanup();
return;
}
@ -205,7 +205,7 @@ void CoreMain() {
if (iRes == SOCKET_ERROR) {
debug(Sec("(Core) listen failed with error: ") + std::to_string(WSAGetLastError()));
freeaddrinfo(res);
closesocket(LSocket);
KillSocket(LSocket);
WSACleanup();
return;
}
@ -220,7 +220,7 @@ void CoreMain() {
GameHandler(CSocket);
warn(Sec("Game Reconnecting..."));
}while(CSocket);
closesocket(LSocket);
KillSocket(LSocket);
WSACleanup();
}
int Handle(EXCEPTION_POINTERS *ep){

View File

@ -18,6 +18,11 @@ extern SOCKET UDPSock;
extern SOCKET TCPSock;
SOCKET CSocket;
int KillSocket(uint64_t Dead){
shutdown(Dead,SD_BOTH);
return closesocket(Dead);
}
bool CheckBytes(uint32_t Bytes){
if(Bytes == 0){
debug(Sec("(Proxy) Connection closing"));
@ -72,15 +77,20 @@ void ServerSend(std::string Data, bool Rel){
//debug("(Game->Launcher) : " + Data);
}
}
void NetReset(){
TCPTerminate = false;
GConnected = false;
Terminate = false;
UlStatus = Sec("Ulstart");
MStatus = " ";
if(UDPSock != SOCKET_ERROR)closesocket(UDPSock);
if(UDPSock != SOCKET_ERROR){
KillSocket(UDPSock);
}
UDPSock = -1;
if(TCPSock != SOCKET_ERROR)closesocket(TCPSock);
if(TCPSock != SOCKET_ERROR){
KillSocket(TCPSock);
}
TCPSock = -1;
ClearAll();
}
@ -117,7 +127,7 @@ SOCKET SetupListener(){
if (iRes == SOCKET_ERROR) {
error(Sec("(Proxy) bind failed with error: ") + std::to_string(WSAGetLastError()));
freeaddrinfo(result);
closesocket(LSocket);
KillSocket(LSocket);
WSACleanup();
return -1;
}
@ -125,7 +135,7 @@ SOCKET SetupListener(){
iRes = listen(LSocket, SOMAXCONN);
if (iRes == SOCKET_ERROR) {
error(Sec("(Proxy) listen failed with error: ") + std::to_string(WSAGetLastError()));
closesocket(LSocket);
KillSocket(LSocket);
WSACleanup();
return -1;
}
@ -236,5 +246,5 @@ void TCPGameServer(const std::string& IP, int Port){
if(LSocket == -1){
UlStatus = Sec("Critical error! check the launcher logs");
}
if(CSocket != SOCKET_ERROR)closesocket(CSocket);
if(CSocket != SOCKET_ERROR)KillSocket(CSocket);
}

View File

@ -47,7 +47,7 @@ void STCPSendRaw(SOCKET socket,const std::vector<char>& Data){
}
else if (BytesSent < 0) {
debug(Sec("(TCP) send failed with error: ") + std::to_string(WSAGetLastError()));
closesocket(socket);
KillSocket(socket);
Terminate = true;
return;
}
@ -67,7 +67,7 @@ std::pair<char*,size_t> STCPRecv(SOCKET socket){
return std::make_pair((char*)"",0);
}else if (BytesRcv < 0) {
info(Sec("(TCP) recv failed with error: ") + std::to_string(WSAGetLastError()));
closesocket(socket);
KillSocket(socket);
Terminate = true;
return std::make_pair((char*)"",0);
}
@ -115,7 +115,7 @@ void Check(Hold* S){
std::this_thread::sleep_for(std::chrono::seconds(5));
if(S != nullptr){
if(!S->Done && S->TCPSock != -1){
closesocket(S->TCPSock);
KillSocket(S->TCPSock);
}
}
}

View File

@ -218,6 +218,6 @@ void UDPClientMain(const std::string& IP,int Port){
TCPSend(Sec("P"));
UDPSend(Sec("p"));
while(!Terminate)UDPRcv();
closesocket(UDPSock);
KillSocket(UDPSock);
WSACleanup();
}

View File

@ -20,7 +20,7 @@ bool CheckBytes(int32_t Bytes){
return false;
}else if (Bytes < 0) {
debug(Sec("(TCP) recv failed with error: ") + std::to_string(WSAGetLastError()));
closesocket(TCPSock);
KillSocket(TCPSock);
Terminate = true;
return false;
}
@ -107,7 +107,7 @@ void TCPClientMain(const std::string& IP,int Port){
if(RetCode != 0){
UlStatus = Sec("UlConnection Failed!");
std::cout << Sec("Client: connect failed! Error code: ") << WSAGetLastError() << std::endl;
closesocket(TCPSock);
KillSocket(TCPSock);
WSACleanup();
Terminate = true;
return;
@ -118,7 +118,7 @@ void TCPClientMain(const std::string& IP,int Port){
while(!Terminate)TCPRcv();
GameSend(Sec("T"));
////Game Send Terminate
if(closesocket(TCPSock) != 0)
if(KillSocket(TCPSock) != 0)
debug(Sec("(TCP) Cannot close socket. Error code: ") + std::to_string(WSAGetLastError()));
if(WSACleanup() != 0)