diff options
author | Shauren <shauren.trinity@gmail.com> | 2014-05-02 02:55:10 +0200 |
---|---|---|
committer | Shauren <shauren.trinity@gmail.com> | 2014-05-02 02:55:10 +0200 |
commit | 6955d7c9ad0e55480aa97d9cafd878c6bc3dc426 (patch) | |
tree | 2a0b11c84a75607ac9db4c6f0d2382d7157230a7 /src/server/shared/Utilities/Util.cpp | |
parent | fea9d275fa0ed8f5b43dc54979cdd5a58afc993b (diff) |
Core/Battle.net
* Fixed AuthResult codes
* Fixed BitStream::WriteBytes size check
* Fixed comparison operator for packet header
* Fixed channel for client packets without channel
* Implemented loading modules from database
Diffstat (limited to 'src/server/shared/Utilities/Util.cpp')
-rw-r--r-- | src/server/shared/Utilities/Util.cpp | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/src/server/shared/Utilities/Util.cpp b/src/server/shared/Utilities/Util.cpp index f2a6f1b7622..004335422c0 100644 --- a/src/server/shared/Utilities/Util.cpp +++ b/src/server/shared/Utilities/Util.cpp @@ -547,3 +547,28 @@ std::string ByteArrayToHexStr(uint8 const* bytes, uint32 arrayLen, bool reverse return ss.str(); } + +void HexStrToByteArray(std::string const& str, uint8* out, bool reverse /*= false*/) +{ + // string must have even number of characters + if (str.length() & 1) + return; + + int32 init = 0; + int32 end = str.length(); + int8 op = 1; + + if (reverse) + { + init = str.length() - 2; + end = -1; + op = -1; + } + + uint32 j = 0; + for (int32 i = init; i != end; i += 2 * op) + { + char buffer[3] = { str[i], str[i + 1], '\0' }; + out[j++] = strtoul(buffer, NULL, 16); + } +} |