Small TOCLIENT_HELLO logging fix
[oweals/minetest.git] / src / network / networkpacket.cpp
index 95605d410b258ea5e9d460de8d4f4c230b7a42bf..1e4b6e23eec92e7d36e25727b4880eac12c05df1 100644 (file)
@@ -45,7 +45,7 @@ void NetworkPacket::checkReadOffset(u32 from_offset)
                std::stringstream ss;
                ss << "Reading outside packet (offset: " <<
                                from_offset << ", packet size: " << getSize() << ")";
-               throw SerializationError(ss.str());
+               throw PacketError(ss.str());
        }
 }
 
@@ -72,8 +72,8 @@ char* NetworkPacket::getString(u32 from_offset)
 
 void NetworkPacket::putRawString(const char* src, u32 len)
 {
-       if (m_read_offset + len * sizeof(char) >= m_datasize) {
-               m_datasize += len * sizeof(char);
+       if (m_read_offset + len > m_datasize) {
+               m_datasize = m_read_offset + len;
                m_data.resize(m_datasize);
        }
 
@@ -95,7 +95,7 @@ NetworkPacket& NetworkPacket::operator>>(std::string& dst)
        dst.reserve(strLen);
        dst.append((char*)&m_data[m_read_offset], strLen);
 
-       m_read_offset += strLen * sizeof(char);
+       m_read_offset += strLen;
        return *this;
 }
 
@@ -108,13 +108,7 @@ NetworkPacket& NetworkPacket::operator<<(std::string src)
 
        *this << msgsize;
 
-       if (m_read_offset + msgsize * sizeof(char) >= m_datasize) {
-               m_datasize += msgsize * sizeof(char);
-               m_data.resize(m_datasize);
-       }
-
-       memcpy(&m_data[m_read_offset], src.c_str(), msgsize);
-       m_read_offset += msgsize;
+       putRawString(src.c_str(), (u32)msgsize);
 
        return *this;
 }
@@ -128,13 +122,7 @@ void NetworkPacket::putLongString(std::string src)
 
        *this << msgsize;
 
-       if (m_read_offset + msgsize * sizeof(char) >= m_datasize) {
-               m_datasize += msgsize * sizeof(char);
-               m_data.resize(m_datasize);
-       }
-
-       memcpy(&m_data[m_read_offset], src.c_str(), msgsize);
-       m_read_offset += msgsize;
+       putRawString(src.c_str(), msgsize);
 }
 
 NetworkPacket& NetworkPacket::operator>>(std::wstring& dst)
@@ -189,7 +177,7 @@ std::string NetworkPacket::readLongString()
        dst.reserve(strLen);
        dst.append((char*)&m_data[m_read_offset], strLen);
 
-       m_read_offset += strLen*sizeof(char);
+       m_read_offset += strLen;
 
        return dst;
 }