const char *host;
const char *port;
- int next_client_id;
-
ttt_client_t **clients;
int clients_size;
int num_clients;
server->host = host;
server->port = port;
- server->next_client_id = 0;
-
server->clients = NULL;
server->clients_size = 0;
server->num_clients = 0;
{
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;
}
printf ("Client %s has joined.\n", name);
- free (name);
server->num_clients++;