Changeset - r25622:e2ce1a56efed
[Not reviewed]
master
0 3 0
rubidium42 - 3 years ago 2021-05-30 11:36:07
rubidium@openttd.org
Cleanup: [Network] Remove C-string Recv_string and its last use
3 files changed with 2 insertions and 36 deletions:
0 comments (0 inline, 0 general)
src/network/core/packet.cpp
Show inline comments
 
@@ -367,37 +367,6 @@ uint64 Packet::Recv_uint64()
 
}
 

	
 
/**
 
 * Reads a string till it finds a '\0' in the stream.
 
 * @param buffer The buffer to put the data into.
 
 * @param size   The size of the buffer.
 
 * @param settings The string validation settings.
 
 */
 
void Packet::Recv_string(char *buffer, size_t size, StringValidationSettings settings)
 
{
 
	char *bufp = buffer;
 
	const char *last = buffer + size - 1;
 

	
 
	/* Don't allow reading from a closed socket */
 
	if (cs->HasClientQuit()) return;
 

	
 
	size_t pos = this->pos;
 
	while (--size > 0 && pos < this->Size() && (*buffer++ = this->buffer[pos++]) != '\0') {}
 

	
 
	if (size == 0 || pos == this->Size()) {
 
		*buffer = '\0';
 
		/* If size was sooner to zero then the string in the stream
 
		 *  skip till the \0, so than packet can be read out correctly for the rest */
 
		while (pos < this->Size() && this->buffer[pos] != '\0') pos++;
 
		pos++;
 
	}
 

	
 
	assert(pos <= std::numeric_limits<PacketSize>::max());
 
	this->pos = static_cast<PacketSize>(pos);
 

	
 
	StrMakeValidInPlace(bufp, last, settings);
 
}
 

	
 
/**
 
 * Reads characters (bytes) from the packet until it finds a '\0', or reaches a
 
 * maximum of \c length characters.
 
 * When the '\0' has not been reached in the first \c length read characters,
src/network/core/packet.h
Show inline comments
 
@@ -87,7 +87,6 @@ public:
 
	uint16 Recv_uint16();
 
	uint32 Recv_uint32();
 
	uint64 Recv_uint64();
 
	void   Recv_string(char *buffer, size_t size, StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK);
 
	std::string Recv_string(size_t length, StringValidationSettings settings = SVS_REPLACE_WITH_QUESTION_MARK);
 

	
 
	size_t RemainingBytesToTransfer() const;
src/network/network_server.cpp
Show inline comments
 
@@ -874,13 +874,11 @@ NetworkRecvStatus ServerNetworkGameSocke
 
		return this->SendError(NETWORK_ERROR_NOT_EXPECTED);
 
	}
 

	
 
	char client_revision[NETWORK_REVISION_LENGTH];
 

	
 
	p->Recv_string(client_revision, sizeof(client_revision));
 
	std::string client_revision = p->Recv_string(NETWORK_REVISION_LENGTH);
 
	uint32 newgrf_version = p->Recv_uint32();
 

	
 
	/* Check if the client has revision control enabled */
 
	if (!IsNetworkCompatibleVersion(client_revision) || _openttd_newgrf_version != newgrf_version) {
 
	if (!IsNetworkCompatibleVersion(client_revision.c_str()) || _openttd_newgrf_version != newgrf_version) {
 
		/* Different revisions!! */
 
		return this->SendError(NETWORK_ERROR_WRONG_REVISION);
 
	}
0 comments (0 inline, 0 general)