Changeset - r25897:e72fd37a4a60
[Not reviewed]
master
0 1 0
dP - 3 years ago 2021-08-16 09:09:54
dp@dpointer.org
Fix: connecting with the same name thrice hangs the server (#9485)
1 file changed with 3 insertions and 4 deletions:
0 comments (0 inline, 0 general)
src/network/network_server.cpp
Show inline comments
 
@@ -1541,13 +1541,12 @@ static void NetworkAutoCleanCompanies()
 
bool NetworkMakeClientNameUnique(std::string &name)
 
{
 
	bool is_name_unique = false;
 
	uint number = 0;
 
	std::string original_name = name;
 

	
 
	while (!is_name_unique) {
 
	for (uint number = 1; !is_name_unique && number <= MAX_CLIENTS; number++) {  // Something's really wrong when there're more names than clients
 
		is_name_unique = true;
 
		for (const NetworkClientInfo *ci : NetworkClientInfo::Iterate()) {
 
			if (ci->client_name.compare(name) == 0) {
 
			if (ci->client_name == name) {
 
				/* Name already in use */
 
				is_name_unique = false;
 
				break;
 
@@ -1556,7 +1555,7 @@ bool NetworkMakeClientNameUnique(std::st
 
		/* Check if it is the same as the server-name */
 
		const NetworkClientInfo *ci = NetworkClientInfo::GetByClientID(CLIENT_ID_SERVER);
 
		if (ci != nullptr) {
 
			if (ci->client_name.compare(name) == 0) is_name_unique = false; // name already in use
 
			if (ci->client_name == name) is_name_unique = false; // name already in use
 
		}
 

	
 
		if (!is_name_unique) {
0 comments (0 inline, 0 general)