mirror of
				https://github.com/luanti-org/luanti.git
				synced 2025-10-30 23:15:32 +01:00 
			
		
		
		
	Stop NetworkPacket methods from producing bloated packets
This commit is contained in:
		| @@ -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; | ||||
| } | ||||
|   | ||||
| @@ -114,7 +114,7 @@ private: | ||||
| 		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); | ||||
| 			} | ||||
| 		} | ||||
|   | ||||
		Reference in New Issue
	
	Block a user