diff options
author | Andrei Karas <akaras@inbox.ru> | 2011-10-19 01:05:22 +0300 |
---|---|---|
committer | Andrei Karas <akaras@inbox.ru> | 2011-10-19 01:05:22 +0300 |
commit | 990c96c992c4cf21173c904dd85f0b378e1c89b0 (patch) | |
tree | a87e8b060a3bae6869e8945082fb9b11a6a60957 /src/net/messageout.cpp | |
parent | 3945c533f8930093b6101b00827a37d6bbde0fb4 (diff) | |
download | manaplus-990c96c992c4cf21173c904dd85f0b378e1c89b0.tar.gz manaplus-990c96c992c4cf21173c904dd85f0b378e1c89b0.tar.bz2 manaplus-990c96c992c4cf21173c904dd85f0b378e1c89b0.tar.xz manaplus-990c96c992c4cf21173c904dd85f0b378e1c89b0.zip |
Hide passwords from packets logs.
Diffstat (limited to 'src/net/messageout.cpp')
-rw-r--r-- | src/net/messageout.cpp | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/src/net/messageout.cpp b/src/net/messageout.cpp index a8b66f5ae..f18f65a93 100644 --- a/src/net/messageout.cpp +++ b/src/net/messageout.cpp @@ -82,6 +82,34 @@ void MessageOut::writeString(const std::string &string, int length) PacketCounters::incOutBytes(length); } +void MessageOut::writeStringNoLog(const std::string &string, int length) +{ + DEBUGLOG("writeString: ***"); + int stringLength = static_cast<int>(string.length()); + if (length < 0) + { + // Write the length at the start if not fixed + writeInt16(static_cast<short>(stringLength)); + length = stringLength; + } + else if (length < stringLength) + { + // Make sure the length of the string is no longer than specified + stringLength = length; + } + expand(length); + + // Write the actual string + memcpy(mData + mPos, string.c_str(), stringLength); + + // Pad remaining space with zeros + if (length > stringLength) + memset(mData + mPos + stringLength, '\0', length - stringLength); + + mPos += length; + PacketCounters::incOutBytes(length); +} + char *MessageOut::getData() const { return mData; |