2005-11-24 Carl Worth <cworth@cworth.org>
[ttt] / src / ttt-server.c
index e9043b4e2cb25309e65e68ee202af9a617e2a90f..f1a1eef7310473c39f2aa09b5ab6a821cfcad934 100644 (file)
@@ -32,8 +32,6 @@ struct _ttt_server {
     const char *host;
     const char *port;
 
-    int next_client_id;
-
     ttt_client_t **clients;
     int clients_size;
     int num_clients;
@@ -47,8 +45,6 @@ ttt_server_init (ttt_server_t *server, const char *host, const char *port)
     server->host = host;
     server->port = port;
 
-    server->next_client_id = 0;
-
     server->clients = NULL;
     server->clients_size = 0;
     server->num_clients = 0;
@@ -60,19 +56,17 @@ ttt_server_register_client (ttt_server_t *server, ttt_client_t *client)
 {
     int i;
     ttt_error_t error = TTT_ERROR_NONE;
-    char *name;
+    const char *name;
 
     pthread_mutex_lock (&server->mutex);
 
-    name = xstrdup (ttt_client_get_name (client));
+    name = ttt_client_get_name (client);
 
-    if (name == NULL) {
-       xasprintf(&name, "user%03d", server->next_client_id++);
-       ttt_client_set_name (client, name);
-    }
+    assert (name != NULL);
+
+    if (name[0] == '\0')
+       return TTT_ERROR_INVALIDNAME;
 
-    /* XXX: If generated name is not unique, this will return an error,
-       which violates the protocol. */
     for (i = 0; i < server->num_clients; i++) {
        if (strcmp (ttt_client_get_name (server->clients[i]), name) == 0) {
            error = TTT_ERROR_INVALIDNAME;
@@ -81,7 +75,6 @@ ttt_server_register_client (ttt_server_t *server, ttt_client_t *client)
     }
 
     printf ("Client %s has joined.\n", name);
-    free (name);
 
     server->num_clients++;