Small TOCLIENT_HELLO logging fix
[oweals/minetest.git] / src / network / networkpacket.h
index 0afb1e7e351e95cd620bf4088b70af63e9608311..0408b9cac14d415762e5ee268ba0ef1fec91a1b1 100644 (file)
@@ -41,8 +41,10 @@ public:
                u16 getPeerId() { return m_peer_id; }
                u16 getCommand() { return m_command; }
 
-               // Data extractors
+               // Returns a c-string without copying.
+               // A better name for this would be getRawString()
                char* getString(u32 from_offset);
+               // major difference to putCString(): doesn't write len into the buffer
                void putRawString(const char* src, u32 len);
 
                NetworkPacket& operator>>(std::string& dst);
@@ -109,10 +111,12 @@ public:
                // Temp, we remove SharedBuffer when migration finished
                Buffer<u8> oldForgePacket();
 private:
+               void checkReadOffset(u32 from_offset);
+
                template<typename T> void checkDataSize()
                {
                        if (m_read_offset + sizeof(T) > m_datasize) {
-                               m_datasize += sizeof(T);
+                               m_datasize = m_read_offset + sizeof(T);
                                m_data.resize(m_datasize);
                        }
                }