public static void OnInformationRequest(AuthPacket packet, Client client) { var session = client.Session; if (!Manager.GetState()) { AuthHandler.SendAuthComplete(true, AuthResult.ServerBusy, client); return; } var game = packet.ReadFourCC(); var os = packet.ReadFourCC(); var language = packet.ReadFourCC(); Log.Message(LogType.Debug, "Program: {0}", game); Log.Message(LogType.Debug, "Platform: {0}", os); Log.Message(LogType.Debug, "Locale: {0}", language); var componentCount = packet.Read<int>(6); for (int i = 0; i < componentCount; i++) { var program = packet.ReadFourCC(); var platform = packet.ReadFourCC(); var build = packet.Read<int>(32); Log.Message(LogType.Debug, "Program: {0}", program); Log.Message(LogType.Debug, "Platform: {0}", platform); Log.Message(LogType.Debug, "Locale: {0}", build); if (DB.Auth.Components.Any(c => c.Program == program && c.Platform == platform && c.Build == build)) continue; if (!DB.Auth.Components.Any(c => c.Program == program)) { AuthHandler.SendAuthComplete(true, AuthResult.InvalidProgram, client); return; } if (!DB.Auth.Components.Any(c => c.Platform == platform)) { AuthHandler.SendAuthComplete(true, AuthResult.InvalidPlatform, client); return; } if (!DB.Auth.Components.Any(c => c.Build == build)) { AuthHandler.SendAuthComplete(true, AuthResult.InvalidGameVersion, client); return; } } var hasAccountName = packet.Read<bool>(1); if (hasAccountName) { var accountLength = packet.Read<int>(9) + 3; var accountName = packet.ReadString(accountLength); var account = DB.Auth.Accounts.SingleOrDefault(a => a.Email == accountName); // First account lookup on database if ((session.Account = account) != null) { // Global base account. session.Account.IP = session.GetClientInfo(); session.Account.Language = language; // Assign the possible game accounts based on the game. //session.GameAccounts.ForEach(ga => ga.OS = os); // Save the last changes DB.Auth.Update(); // Used for module identification. client.Game = game; client.OS = os; AuthHandler.SendProofRequest(client); } else AuthHandler.SendAuthComplete(true, AuthResult.BadLoginInformation, client); } }
public static void OnInformationRequest(AuthPacket packet, Client client) { var session = client.Session; if (!Manager.GetState()) { AuthHandler.SendAuthComplete(true, AuthResult.ServerBusy, client); return; } var game = packet.ReadFourCC(); var os = packet.ReadFourCC(); var language = packet.ReadFourCC(); Log.Message(LogType.Debug, "Program: {0}", game); Log.Message(LogType.Debug, "Platform: {0}", os); Log.Message(LogType.Debug, "Locale: {0}", language); var componentCount = packet.Read <int>(6); for (int i = 0; i < componentCount; i++) { var program = packet.ReadFourCC(); var platform = packet.ReadFourCC(); var build = packet.Read <int>(32); Log.Message(LogType.Debug, "Program: {0}", program); Log.Message(LogType.Debug, "Platform: {0}", platform); Log.Message(LogType.Debug, "Locale: {0}", build); if (DB.Auth.Any <Component>(c => c.Program == program && c.Platform == platform && c.Build == build)) { continue; } if (!DB.Auth.Any <Component>(c => c.Program == program)) { AuthHandler.SendAuthComplete(true, AuthResult.InvalidProgram, client); return; } if (!DB.Auth.Any <Component>(c => c.Platform == platform)) { AuthHandler.SendAuthComplete(true, AuthResult.InvalidPlatform, client); return; } if (!DB.Auth.Any <Component>(c => c.Build == build)) { AuthHandler.SendAuthComplete(true, AuthResult.InvalidGameVersion, client); return; } } var hasAccountName = packet.Read <bool>(1); if (hasAccountName) { var accountLength = packet.Read <int>(9) + 3; var accountName = packet.ReadString(accountLength); var account = DB.Auth.Single <Account>(a => a.Email == accountName); // First account lookup on database if ((session.Account = account) != null) { // Global base account. session.Account.IP = session.GetClientInfo(); session.Account.Language = language; // Assign the possible game accounts based on the game. //session.GameAccounts.ForEach(ga => ga.OS = os); // Save the last changes DB.Auth.Update(session.Account, "IP", session.Account.IP, "Language", session.Account.Language); // Used for module identification. client.Game = game; client.OS = os; AuthHandler.SendProofRequest(client); } else { AuthHandler.SendAuthComplete(true, AuthResult.BadLoginInformation, client); } } }
public static void OnInformationRequest(AuthPacket packet, AuthSession session) { if (!Manager.GetState()) { AuthHandler.SendAuthComplete(true, AuthResult.ServerBusy, session); return; } Log.Message(LogType.Debug, "Program: {0}", packet.ReadFourCC()); var os = packet.ReadFourCC(); var language = packet.ReadFourCC(); Log.Message(LogType.Debug, "Platform: {0}", os); Log.Message(LogType.Debug, "Locale: {0}", language); var componentCount = packet.Read<int>(6); for (int i = 0; i < componentCount; i++) { var program = packet.ReadFourCC(); var platform = packet.ReadFourCC(); var build = packet.Read<int>(32); Log.Message(LogType.Debug, "Program: {0}", program); Log.Message(LogType.Debug, "Platform: {0}", platform); Log.Message(LogType.Debug, "Locale: {0}", build); if (DB.Auth.Components.Any(c => c.Program == program && c.Platform == platform && c.Build == build)) continue; if (!DB.Auth.Components.Any(c => c.Program == program)) { AuthHandler.SendAuthComplete(true, AuthResult.InvalidProgram, session); return; } if (!DB.Auth.Components.Any(c => c.Platform == platform)) { AuthHandler.SendAuthComplete(true, AuthResult.InvalidPlatform, session); return; } if (!DB.Auth.Components.Any(c => c.Build == build)) { AuthHandler.SendAuthComplete(true, AuthResult.InvalidGameVersion, session); return; } } var hasAccountName = packet.Read<bool>(1); if (hasAccountName) { var accountLength = packet.Read<int>(9) + 3; var accountName = packet.ReadString(accountLength); var account = DB.Auth.Accounts.SingleOrDefault(a => a.Email == accountName); // First account lookup on database if ((session.Account = account) != null) { session.Account.IP = session.GetClientIP(); session.Account.OS = os; session.Account.Language = language; DB.Auth.Update(session.Account, "IP", session.Account.IP, "OS", session.Account.OS, "Language", session.Account.Language); AuthHandler.SendProofRequest(session); } else AuthHandler.SendAuthComplete(true, AuthResult.BadLoginInformation, session); } }
public static void OnInformationRequest(AuthPacket packet, AuthSession session) { Log.Message(LogType.Debug, "Program: {0}", packet.ReadFourCC()); Log.Message(LogType.Debug, "Platform: {0}", packet.ReadFourCC()); Log.Message(LogType.Debug, "Locale: {0}", packet.ReadFourCC()); var componentCount = packet.Read <int>(6); for (int i = 0; i < componentCount; i++) { var program = packet.ReadFourCC(); var platform = packet.ReadFourCC(); var build = packet.Read <int>(32); Log.Message(LogType.Debug, "Program: {0}", program); Log.Message(LogType.Debug, "Platform: {0}", platform); Log.Message(LogType.Debug, "Locale: {0}", build); if (DB.Auth.Components.Any(c => c.Program == program && c.Platform == platform && c.Build == build)) { continue; } if (!DB.Auth.Components.Any(c => c.Program == program)) { AuthHandler.SendAuthComplete(true, AuthResult.InvalidProgram, session); return; } if (!DB.Auth.Components.Any(c => c.Platform == platform)) { AuthHandler.SendAuthComplete(true, AuthResult.InvalidPlatform, session); return; } if (!DB.Auth.Components.Any(c => c.Build == build)) { AuthHandler.SendAuthComplete(true, AuthResult.InvalidGameVersion, session); return; } } var hasAccountName = packet.Read <bool>(1); if (hasAccountName) { var accountLength = packet.Read <int>(9) + 3; var accountName = packet.ReadString(accountLength); var account = DB.Auth.Accounts.First(a => a.Email == accountName); // First account lookup on database if ((session.Account = account) != null) { AuthHandler.SendProofRequest(session); } else { AuthHandler.SendAuthComplete(true, AuthResult.BadLoginInformation, session); } } }
public void Read(AuthPacket packet) { Program = packet.ReadFourCC(); Platform = packet.ReadFourCC(); Version = packet.Read<int>(32); }