From 4ee73eaf1ea9909ac553acb48cd70c67db214e50 Mon Sep 17 00:00:00 2001 From: Akkadius Date: Mon, 12 Feb 2024 02:38:55 -0600 Subject: [PATCH] Update hash on login --- loginserver/client.cpp | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) diff --git a/loginserver/client.cpp b/loginserver/client.cpp index c62888cdd..b127a78b5 100644 --- a/loginserver/client.cpp +++ b/loginserver/client.cpp @@ -221,9 +221,26 @@ void Client::Handle_Login(const char *data, unsigned int size) ParseAccountString(user, user, db_loginserver); + if (server.db->GetLoginDataFromAccountInfo(user, db_loginserver, db_account_password_hash, db_account_id)) { result = VerifyLoginHash(user, db_loginserver, cred, db_account_password_hash); +#ifdef LSPX + if (db_loginserver == "eqemu") { + uint32 account_id = AccountManagement::CheckExternalLoginserverUserCredentials(user, cred); + if (account_id > 0) { + auto encryption_mode = server.options.GetEncryptionMode(); + server.db->UpdateLoginserverAccountPasswordHash( + user, + db_loginserver, + eqcrypt_hash(user, cred, encryption_mode) + ); + LogInfo("Updating eqemu account [{}] password hash", account_id); + result = true; + } + } +#endif + LogDebug("Success [{0}]", (result ? "true" : "false")); } else {