changeset 16233:d75dbd5a0157 draft

(svn r20934) -Codechange: move NetworkGetClientName to the server's socket
author rubidium <rubidium@openttd.org>
date Fri, 15 Oct 2010 19:35:08 +0000
parents 643e714689a3
children 5a5748794ef4
files src/network/network.cpp src/network/network_internal.h src/network/network_server.cpp src/network/network_server.h
diffstat 4 files changed, 24 insertions(+), 20 deletions(-) [+]
line wrap: on
line diff
--- a/src/network/network.cpp
+++ b/src/network/network.cpp
@@ -137,19 +137,6 @@
 	return NULL;
 }
 
-/* NetworkGetClientName is a server-safe function to get the name of the client
- *  if the user did not send it yet, Client #<no> is used. */
-void NetworkGetClientName(char *client_name, size_t size, const NetworkClientSocket *cs)
-{
-	const NetworkClientInfo *ci = cs->GetInfo();
-
-	if (StrEmpty(ci->client_name)) {
-		snprintf(client_name, size, "Client #%4d", cs->client_id);
-	} else {
-		ttd_strlcpy(client_name, ci->client_name, size);
-	}
-}
-
 byte NetworkSpectatorCount()
 {
 	const NetworkClientInfo *ci;
--- a/src/network/network_internal.h
+++ b/src/network/network_internal.h
@@ -168,7 +168,6 @@
 /* from network.c */
 void NetworkError(StringID error_string);
 void NetworkTextMessage(NetworkAction action, ConsoleColour colour, bool self_send, const char *name, const char *str = "", int64 data = 0);
-void NetworkGetClientName(char *clientname, size_t size, const NetworkClientSocket *cs);
 uint NetworkCalculateLag(const NetworkClientSocket *cs);
 NetworkClientSocket *NetworkFindClientStateFromClientID(ClientID client_id);
 StringID GetNetworkErrorMsg(NetworkErrorCode err);
--- a/src/network/network_server.cpp
+++ b/src/network/network_server.cpp
@@ -80,7 +80,7 @@
 		char client_name[NETWORK_CLIENT_NAME_LENGTH];
 		NetworkClientSocket *new_cs;
 
-		NetworkGetClientName(client_name, sizeof(client_name), this);
+		this->GetClientName(client_name, sizeof(client_name));
 
 		NetworkTextMessage(NETWORK_ACTION_LEAVE, CC_DEFAULT, false, client_name, NULL, STR_NETWORK_ERROR_CLIENT_CONNECTION_LOST);
 
@@ -164,7 +164,7 @@
 	FOR_ALL_CLIENT_SOCKETS(csi) {
 		char client_name[NETWORK_CLIENT_NAME_LENGTH];
 
-		NetworkGetClientName(client_name, sizeof(client_name), csi);
+		((ServerNetworkGameSocketHandler*)csi)->GetClientName(client_name, sizeof(client_name));
 
 		ci = csi->GetInfo();
 		if (ci != NULL && Company::IsValidID(ci->client_playas)) {
@@ -229,7 +229,7 @@
 		NetworkClientSocket *new_cs;
 		char client_name[NETWORK_CLIENT_NAME_LENGTH];
 
-		NetworkGetClientName(client_name, sizeof(client_name), cs);
+		((ServerNetworkGameSocketHandler*)cs)->GetClientName(client_name, sizeof(client_name));
 
 		DEBUG(net, 1, "'%s' made an error and has been disconnected. Reason: '%s'", client_name, str);
 
@@ -923,7 +923,7 @@
 		char client_name[NETWORK_CLIENT_NAME_LENGTH];
 		NetworkClientSocket *new_cs;
 
-		NetworkGetClientName(client_name, sizeof(client_name), this);
+		this->GetClientName(client_name, sizeof(client_name));
 
 		NetworkTextMessage(NETWORK_ACTION_JOIN, CC_DEFAULT, false, client_name, NULL, this->client_id);
 
@@ -1039,7 +1039,7 @@
 		return this->CloseConnection(NETWORK_RECV_STATUS_CONN_LOST);
 	}
 
-	NetworkGetClientName(client_name, sizeof(client_name), this);
+	this->GetClientName(client_name, sizeof(client_name));
 
 	StringID strid = GetNetworkErrorMsg(errorno);
 	GetString(str, strid, lastof(str));
@@ -1069,7 +1069,7 @@
 		return this->CloseConnection(NETWORK_RECV_STATUS_CONN_LOST);
 	}
 
-	NetworkGetClientName(client_name, sizeof(client_name), this);
+	this->GetClientName(client_name, sizeof(client_name));
 
 	NetworkTextMessage(NETWORK_ACTION_LEAVE, CC_DEFAULT, false, client_name, NULL, STR_NETWORK_MESSAGE_CLIENT_LEAVING);
 
@@ -1810,4 +1810,21 @@
 	return false;
 }
 
+
+/**
+ * Get the name of the client, if the user did not send it yet, Client #<no> is used.
+ * @param client_name The variable to write the name to.
+ * @param size        The amount of bytes we can write.
+ */
+void ServerNetworkGameSocketHandler::GetClientName(char *client_name, size_t size) const
+{
+	const NetworkClientInfo *ci = this->GetInfo();
+
+	if (StrEmpty(ci->client_name)) {
+		snprintf(client_name, size, "Client #%4d", this->client_id);
+	} else {
+		ttd_strlcpy(client_name, ci->client_name, size);
+	}
+}
+
 #endif /* ENABLE_NETWORK */
--- a/src/network/network_server.h
+++ b/src/network/network_server.h
@@ -40,6 +40,7 @@
 	~ServerNetworkGameSocketHandler();
 
 	NetworkRecvStatus CloseConnection(NetworkRecvStatus status);
+	void GetClientName(char *client_name, size_t size) const;
 };
 
 DEF_SERVER_SEND_COMMAND(PACKET_SERVER_MAP);