diff options
author | Spp <spp@jorge.gr> | 2012-11-15 14:13:58 +0100 |
---|---|---|
committer | Spp <spp@jorge.gr> | 2012-11-15 14:13:58 +0100 |
commit | d10ba397b61c35a12631dc9a6627b15e67b13f0a (patch) | |
tree | 975b40a9cf8fe6ee5cfd767f1661699ba4ca8844 /src/server/game/Warden/Warden.cpp | |
parent | 58c60c70cc79c8b3ffcbbf9a8bf37a77028e9a73 (diff) |
Core/Warden: Remove warning
Diffstat (limited to 'src/server/game/Warden/Warden.cpp')
-rw-r--r-- | src/server/game/Warden/Warden.cpp | 21 |
1 files changed, 18 insertions, 3 deletions
diff --git a/src/server/game/Warden/Warden.cpp b/src/server/game/Warden/Warden.cpp index ce64dbd1a94..06f8454fda7 100644 --- a/src/server/game/Warden/Warden.cpp +++ b/src/server/game/Warden/Warden.cpp @@ -151,13 +151,28 @@ bool Warden::IsValidCheckSum(uint32 checksum, const uint8* data, const uint16 le } } +struct keyData { + union + { + struct + { + uint8 bytes[20]; + } bytes; + + struct + { + uint32 ints[5]; + } ints; + }; +}; + uint32 Warden::BuildChecksum(const uint8* data, uint32 length) { - uint8 hash[20]; - SHA1(data, length, hash); + keyData hash; + SHA1(data, length, hash.bytes.bytes); uint32 checkSum = 0; for (uint8 i = 0; i < 5; ++i) - checkSum = checkSum ^ *(uint32*)(&hash[0] + i * 4); + checkSum = checkSum ^ hash.ints.ints[i]; return checkSum; } |