mirror of
https://github.com/Kelsidavis/WoWee.git
synced 2026-04-16 09:13:50 +00:00
fix: revert Warden HASH_RESULT fallback — silence is correct behavior
ChromieCraft/AzerothCore tolerates no HASH_RESULT response (continues session without Warden checks), but immediately kicks on a WRONG hash. The previous commit sent a fallback SHA1 which the server rejected, breaking login that was working before. Restore the skip behavior for WotLK/TBC: stay silent on HASH_REQUEST when no CR match exists, and advance to WAIT_CHECKS so the rest of the session proceeds normally. Turtle/Classic servers still get the fallback hash since they're lenient about wrong values.
This commit is contained in:
parent
f3f7511105
commit
5ad225313d
1 changed files with 11 additions and 7 deletions
|
|
@ -535,15 +535,19 @@ void WardenHandler::handleWardenData(network::Packet& packet) {
|
|||
bool isTurtle = isActiveExpansion("turtle");
|
||||
bool isClassic = (owner_.build <= 6005) && !isTurtle;
|
||||
|
||||
// Previously we skipped the response for WotLK/TBC to avoid bans on strict
|
||||
// servers (e.g. Warmane). However, most servers (AzerothCore, ChromieCraft,
|
||||
// TrinityCore) are permissive and only kick — not ban — for wrong hashes.
|
||||
// Skipping causes a guaranteed kick-on-timeout, while sending a fallback
|
||||
// hash at least lets permissive servers continue the session.
|
||||
// For strict servers, provide a .cr file with the correct seed→reply.
|
||||
if (!isTurtle && !isClassic) {
|
||||
// WotLK/TBC: don't respond to HASH_REQUEST without a valid CR match.
|
||||
// ChromieCraft/AzerothCore tolerates the silence (no ban, no kick),
|
||||
// but REJECTS a wrong hash and closes the connection immediately.
|
||||
// Staying silent lets the server continue the session without Warden checks.
|
||||
LOG_WARNING("Warden: HASH_REQUEST seed=", seedHex,
|
||||
" — no CR match, skipping response (server tolerates silence)");
|
||||
wardenState_ = WardenState::WAIT_CHECKS;
|
||||
break;
|
||||
}
|
||||
|
||||
LOG_WARNING("Warden: No CR match (seed=", seedHex,
|
||||
"), sending fallback hash");
|
||||
"), sending fallback hash (lenient server)");
|
||||
|
||||
std::vector<uint8_t> fallbackReply;
|
||||
if (wardenLoadedModule_ && wardenLoadedModule_->isLoaded()) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue