public static bool isValid(ref TOKEN_STRUCT TokenObj, string Token) { using (var DbCon = DbConnection.SetupConnection()) { DbConnection.Connect(DbCon); using (var Cmd = DbCon.CreateCommand()) { Cmd.CommandText = "SELECT * FROM tokens WHERE token=@token LIMIT 1"; Cmd.Parameters.AddWithValue("@token", Token); using (var Results = Cmd.ExecuteReader()) if (Results.Read()) { TokenObj.Token = (string)Results["token"]; TokenObj.Days = (int)Results["days"]; TokenObj.Status = (int)Results["status"]; return(true); } } DbCon.Close(); } return(false); }
private void HandleClientComm(object Client) { CLIENT_STRUCT ClientObj = new CLIENT_STRUCT(); TOKEN_STRUCT TokenObj = new TOKEN_STRUCT(); TcpClient TcpClient = (TcpClient)Client; TcpClient.SendBufferSize = MaxSendRec; TcpClient.ReceiveBufferSize = MaxSendRec; TcpClient.NoDelay = true; IPEndPoint IP_EndPoint = TcpClient.Client.RemoteEndPoint as IPEndPoint; string IP = TcpClient.Client.RemoteEndPoint.ToString().Split(new char[] { ':' })[0]; NetworkStream NetStream = TcpClient.GetStream(); serverStream ServerStream = new serverStream(NetStream); try { // Console.WriteLine(IP + " Connected!"); byte[] TmpDataHeader = new byte[0x8]; if (!NetStream.CanRead || NetStream.Read(TmpDataHeader, 0, 0x8) != 0x8) { TcpClient.Close(); return; } EndianIO DataHeader = new EndianIO(TmpDataHeader, EndianStyle.BigEndian); PACKET_COMMAND CommandID = (PACKET_COMMAND)DataHeader.Reader.ReadUInt32(); int DataCount = DataHeader.Reader.ReadInt32(); if (DataCount >= 0x8000) { TcpClient.Close(); return; } byte[] Data = new byte[DataCount]; if (!ServerStream.CanRead || ServerStream.Read(Data, 0, DataCount) != DataCount) { TcpClient.Close(); return; } EndianIO EndianData = new EndianIO(Data, EndianStyle.BigEndian) { Writer = new EndianWriter(ServerStream, EndianStyle.BigEndian) }; ioData ioData; ioData.reader = EndianData.Reader; ioData.writer = new EndianIO(ServerStream, EndianStyle.BigEndian).Writer; ioData.client = TcpClient; ioData.ipaddr = IP_EndPoint; ioData.payloadSize = DataCount; if (ioData.payloadSize > 0) { if (CommandID == PACKET_COMMAND.PACKET_COMMAND_ID_AUTH) { int Start = DateTime.Now.Second; if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0}", CommandID, ioData.ipaddr.ToString()); } Responces.Auth.ProcessAuthorization(ioData, ref ClientObj); int End = (DateTime.Now.Second - Start); if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0} Completed in: {2} seconds", CommandID, ioData.ipaddr.ToString(), End); } } else if (CommandID == PACKET_COMMAND.PACKET_COMMAND_ID_TIME) { int Start = DateTime.Now.Second; if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0}", CommandID, ioData.ipaddr.ToString()); } Responces.TimeUpdate.ProcessTime(ioData, ref ClientObj); int End = (DateTime.Now.Second - Start); if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0} Completed in {2} seconds", CommandID, ioData.ipaddr.ToString(), End); } } else if (CommandID == PACKET_COMMAND.PACKET_COMMAND_ID_STATUS) { if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0}", CommandID, ioData.ipaddr.ToString()); } Responces.Status.ProcessStatus(ioData, ref ClientObj); if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0} Passed!", CommandID, ioData.ipaddr.ToString()); } } else if (CommandID == PACKET_COMMAND.PACKET_COMMAND_ID_PRES) { if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0}", CommandID, ioData.ipaddr.ToString()); } Responces.Presence.ProcessPresence(ioData, ref ClientObj); if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0} Passed!", CommandID, ioData.ipaddr.ToString()); } } else if (CommandID == PACKET_COMMAND.PACKET_COMMAND_ID_SECURITY) { if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0}", CommandID, ioData.ipaddr.ToString()); } Responces.Security.ProcessSecurity(ioData, ref ClientObj); if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0} Passed!", CommandID, ioData.ipaddr.ToString()); } } else if (CommandID == PACKET_COMMAND.PACKET_COMMAND_ID_TOKEN_CHECK) { if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0}", CommandID, ioData.ipaddr.ToString()); } Responces.Token.ProcessVerifyTkn(ioData, ref ClientObj, ref TokenObj); if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0} Passed!", CommandID, ioData.ipaddr.ToString()); } } else if (CommandID == PACKET_COMMAND.PACKET_COMMAND_ID_TOKEN_REDEEM) { if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0}", CommandID, ioData.ipaddr.ToString()); } Responces.Token.ProcessRedeemTkn(ioData, ref ClientObj, ref TokenObj); if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0} Passed!", CommandID, ioData.ipaddr.ToString()); } } else if (CommandID == PACKET_COMMAND.PACKET_COMMAND_ID_XKE) { if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0}", CommandID, ioData.ipaddr.ToString()); } Responces.XKE.ProcessXKE(ioData, ref ClientObj); if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0} Passed!", CommandID, ioData.ipaddr.ToString()); } } else if (CommandID == PACKET_COMMAND.PACKET_COMMAND_ID_XSC) { if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0}", CommandID, ioData.ipaddr.ToString()); } Responces.SuperVisor.ProcessXSC(ioData, ref ClientObj); if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0} Passed!", CommandID, ioData.ipaddr.ToString()); } } else if (CommandID == PACKET_COMMAND.PACKET_COMMAND_ID_OFFSETS) { if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0}", CommandID, ioData.ipaddr.ToString()); } Responces.Games.ProccessOffsets(ioData, ref ClientObj); if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0} Passed!", CommandID, ioData.ipaddr.ToString()); } } else if (CommandID == PACKET_COMMAND.PACKET_COMMAND_ID_CPI) { if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0}", CommandID, ioData.ipaddr.ToString()); } Responces.CPI.ProcessCPI(ioData, ref ClientObj); if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0} Passed!", CommandID, ioData.ipaddr.ToString()); } } else if (CommandID == PACKET_COMMAND.PACKET_COMMAND_ID_SETTINGS) { if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0}", CommandID, ioData.ipaddr.ToString()); } Responces.Settings.ProccessSettings(ioData, ref ClientObj); if (LEServer.DebugModePrints) { Console.WriteLine("@{1} - Command Id: {0} Passed!", CommandID, ioData.ipaddr.ToString()); } } else { FireWallBanEvent(IP, "Requested Invalid Response"); } } else { FireWallBanEvent(IP, "Invalid Payload Size"); } DisconnectClient(ioData); } catch (Exception Ex) { List <Log.PrintQueue> HandleServCommErrorid = Log.GetQueue(); Log.Add(HandleServCommErrorid, ConsoleColor.Red, "ERROR", null); Log.Add(HandleServCommErrorid, ConsoleColor.Red, "Exception Message:", Ex.Message); Log.Add(HandleServCommErrorid, ConsoleColor.Red, "StrackTrace:", Ex.StackTrace); Log.Print(HandleServCommErrorid); TcpClient.Close(); return; } if (TcpClient.Connected) { TcpClient.Close(); } return; }
public static bool Redeem(TOKEN_STRUCT TokenObj, ref CLIENT_STRUCT ClientObj) { using (var DbCon = DbConnection.SetupConnection()) { DbConnection.Connect(DbCon); using (var Cmd = DbCon.CreateCommand()) { // get gen_by value from token string Gen_by = ""; Cmd.CommandText = "SELECT gen_by FROM tokens WHERE token=@tok"; Cmd.Parameters.AddWithValue("@tok", TokenObj.Token); using (var Results = Cmd.ExecuteReader()) if (Results.Read()) { Gen_by = (string)Results["gen_by"]; } else { Log.ErrorReportingPrint("Redeem Errror Selecting token !"); return(false); } Cmd.ExecuteNonQuery(); // get the current staff gross value to add on to it double CurrentGrossValue = 0; Cmd.CommandText = "SELECT * FROM staff WHERE username=@Gen_by"; Cmd.Parameters.AddWithValue("@Gen_by", Gen_by); using (var Results = Cmd.ExecuteReader()) if (Results.Read()) { CurrentGrossValue = (double)Results["gross"]; } else { Log.ErrorReportingPrint("Redeem error regarding staff username!"); return(false); } Cmd.ExecuteNonQuery(); // update token status Cmd.CommandText = "UPDATE tokens SET status=@status, dateused=@dateused, redeemed_by=@redeemed_by WHERE token=@token"; Cmd.Parameters.AddWithValue("@status", TOKEN_STATUS.ALREADYREDEEMED); Cmd.Parameters.AddWithValue("@dateused", DateTime.Now); Cmd.Parameters.AddWithValue("@redeemed_by", ClientObj.cpukey); Cmd.Parameters.AddWithValue("@token", TokenObj.Token); Cmd.ExecuteNonQuery(); // update client info Cmd.CommandText = "UPDATE clients SET time=@time, auth_status=@auth_status WHERE cpukey=@cpukey"; Cmd.Parameters.AddWithValue("@cpukey", ClientObj.cpukey); if (ClientObj.authstatus != CLIENT_AUTHSTATUS.BANNED) { Cmd.Parameters.AddWithValue("@auth_status", CLIENT_AUTHSTATUS.AUTHED); } else { Cmd.Parameters.AddWithValue("@auth_status", CLIENT_AUTHSTATUS.BANNED); } if (ClientObj.time <= DateTime.Now) { Cmd.Parameters.AddWithValue("@time", DateTime.Now.AddDays(TokenObj.Days)); } else { Cmd.Parameters.AddWithValue("@time", ClientObj.time.AddDays(TokenObj.Days)); } Cmd.ExecuteNonQuery(); // get the current prices from our server settings double PriceOption1 = 0; double PriceOption2 = 0; double PriceOption3 = 0; double PriceOption4 = 0; double PriceOption5 = 0; Cmd.CommandText = "SELECT * FROM serversettings"; using (var Results = Cmd.ExecuteReader()) if (Results.Read()) { JObject jobj = JObject.Parse((string)Results["pricing"]); PriceOption1 = jobj["pricinglist1"].Value <double>(); PriceOption2 = jobj["pricinglist2"].Value <double>(); PriceOption3 = jobj["pricinglist3"].Value <double>(); PriceOption4 = jobj["pricinglist4"].Value <double>(); PriceOption5 = jobj["pricinglist5"].Value <double>(); } else { Log.ErrorReportingPrint("Redeem error selecting data from serversettings !"); return(false); } Cmd.ExecuteNonQuery(); // update our staff information if (Gen_by != "" && PriceOption1 != 0 && PriceOption2 != 0 && PriceOption3 != 0 && PriceOption4 != 0) { if (TokenObj.Days == 1) { CurrentGrossValue += PriceOption1; } else if (TokenObj.Days == 3) { CurrentGrossValue += PriceOption2; } else if (TokenObj.Days == 7) { CurrentGrossValue += PriceOption3; } else if (TokenObj.Days == 14) { CurrentGrossValue += PriceOption4; } else if (TokenObj.Days == 31) { CurrentGrossValue += PriceOption5; } Cmd.CommandText = "UPDATE staff SET gross=@Gross WHERE username=@GenBy"; Cmd.Parameters.AddWithValue("@GenBy", Gen_by); Cmd.Parameters.AddWithValue("@Gross", CurrentGrossValue); Cmd.ExecuteNonQuery(); } else { Log.ErrorReportingPrint("Redeem error updating gross for staff member!"); return(false); } DbCon.Close(); Cmd.Dispose(); DbCon.Dispose(); } DbCon.Close(); } return(true); }
public static bool isBlackListed(string Token) { TOKEN_STRUCT TokenObj = GetToken(Token); return((TokenObj.Status == -1) ? true : false); }