mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-01 18:30:39 +00:00
Compare commits
2 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| d8b5be574f | |||
| 4ee73eaf1e |
@@ -221,9 +221,27 @@ void Client::Handle_Login(const char *data, unsigned int size)
|
|||||||
|
|
||||||
ParseAccountString(user, user, db_loginserver);
|
ParseAccountString(user, user, db_loginserver);
|
||||||
|
|
||||||
|
|
||||||
if (server.db->GetLoginDataFromAccountInfo(user, db_loginserver, db_account_password_hash, db_account_id)) {
|
if (server.db->GetLoginDataFromAccountInfo(user, db_loginserver, db_account_password_hash, db_account_id)) {
|
||||||
result = VerifyLoginHash(user, db_loginserver, cred, db_account_password_hash);
|
result = VerifyLoginHash(user, db_loginserver, cred, db_account_password_hash);
|
||||||
|
|
||||||
|
#ifdef LSPX
|
||||||
|
// if user updated their password on the login server, update it here by validating their credentials with the login server
|
||||||
|
if (!result && 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"));
|
LogDebug("Success [{0}]", (result ? "true" : "false"));
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|||||||
Reference in New Issue
Block a user