summaryrefslogtreecommitdiff
path: root/src/net/messageout.cpp
diff options
context:
space:
mode:
authorAndrei Karas <akaras@inbox.ru>2011-10-19 01:05:22 +0300
committerAndrei Karas <akaras@inbox.ru>2011-10-19 01:05:22 +0300
commit990c96c992c4cf21173c904dd85f0b378e1c89b0 (patch)
treea87e8b060a3bae6869e8945082fb9b11a6a60957 /src/net/messageout.cpp
parent3945c533f8930093b6101b00827a37d6bbde0fb4 (diff)
downloadplus-990c96c992c4cf21173c904dd85f0b378e1c89b0.tar.gz
plus-990c96c992c4cf21173c904dd85f0b378e1c89b0.tar.bz2
plus-990c96c992c4cf21173c904dd85f0b378e1c89b0.tar.xz
plus-990c96c992c4cf21173c904dd85f0b378e1c89b0.zip
Hide passwords from packets logs.
Diffstat (limited to 'src/net/messageout.cpp')
-rw-r--r--src/net/messageout.cpp28
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;