From: Richard Worth Date: Fri, 25 Nov 2005 14:33:10 +0000 (+0000) Subject: * TODO: checked off WHO, QUIT, ERROR SYNTAX X-Git-Url: https://git.cworth.org/git?p=ttt;a=commitdiff_plain;h=65526318e1c88d56bd1a78d072c4d38252dbd864 * TODO: checked off WHO, QUIT, ERROR SYNTAX * src/ttt-client.c: (_ttt_client_execute_helo), (_ttt_client_init), (ttt_client_get_num_wins): * src/ttt-client.h: * src/ttt-server.c: (ttt_server_who): Whitespace changes. Add missing player win count for WHO. --- diff --git a/ChangeLog b/ChangeLog index a545b64..df44897 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,13 @@ +2005-11-25 Richard D. Worth + + * TODO: checked off WHO, QUIT, ERROR SYNTAX + + * src/ttt-client.c: (_ttt_client_execute_helo), (_ttt_client_init), + (ttt_client_get_num_wins): + * src/ttt-client.h: + * src/ttt-server.c: (ttt_server_who): Whitespace changes. Add + missing player win count for WHO. + 2005-11-24 Richard D. Worth * AUTHORS: Add Richard D. Worth diff --git a/TODO b/TODO index 79d35fb..0e94c69 100644 --- a/TODO +++ b/TODO @@ -4,10 +4,10 @@ S C 1. Requests ✓ 1.1 HELO 1.2. Global commands - 1.2.1. WHO +✓ 1.2.1. WHO 1.2.2. MESSAGE 1.2.3. HELP - 1.2.4. QUIT +✓ 1.2.4. QUIT 1.2.5. VERSION 1.3. Game management commands 1.3.1. INVITE @@ -35,7 +35,7 @@ S C ✓ 3.1.2. ERROR INVALIDNAME 3.2. Command format errors 3.2.1. ERROR COMMAND - 3.2.2. ERROR SYNTAX +✓ 3.2.2. ERROR SYNTAX 3.2.3. ERROR NOTNUMBER 3.2.4. ERROR NOTGRID 3.3. Global command errors. diff --git a/src/ttt-client.c b/src/ttt-client.c index 9c9b819..2473864 100644 --- a/src/ttt-client.c +++ b/src/ttt-client.c @@ -29,17 +29,18 @@ struct _ttt_client { pthread_mutex_t mutex; - pthread_t thread; + pthread_t thread; - ttt_server_t *server; - int socket; - yyscan_t scanner; + ttt_server_t *server; + int socket; + yyscan_t scanner; - char *name; - ttt_bool_t registered; + char **request_strings; + int num_request_strings; - char **request_strings; - int num_request_strings; + char *name; + ttt_bool_t registered; + int num_wins; }; typedef ttt_error_t (*ttt_command_func_t) (ttt_client_t *client, @@ -62,14 +63,14 @@ _ttt_client_execute_quit (ttt_client_t *client, int num_args); typedef struct _ttt_command_description { - const char *command; - int args_required; + const char *command; + int args_required; ttt_command_func_t execute; } ttt_command_description_t; ttt_command_description_t command_descriptions[] = { {"HELO", 1, _ttt_client_execute_helo}, - {"WHO", 0, _ttt_client_execute_who}, + {"WHO", 0, _ttt_client_execute_who }, {"QUIT", 0, _ttt_client_execute_quit} }; #define ARRAY_SIZE(arr) (sizeof(arr)/sizeof(arr[0])) @@ -92,7 +93,8 @@ _ttt_client_execute_helo (ttt_client_t *client, client->registered = TRUE; - xasprintf (&response, "HELO %s %s %s\n", client->name, + xasprintf (&response, "HELO %s %s %s\n", + client->name, ttt_server_get_host (client->server), ttt_server_get_port (client->server)); @@ -155,6 +157,7 @@ _ttt_client_init (ttt_client_t *client, client->name = NULL; client->registered = FALSE; + client->num_wins = 0; } static void @@ -329,3 +332,10 @@ ttt_client_set_name (ttt_client_t *client, const char *name) free (client->name); client->name = xstrdup (name); } + +/* Exported: See ttt-client.h for documentation. */ +int +ttt_client_get_num_wins (ttt_client_t *client) +{ + return client->num_wins; +} diff --git a/src/ttt-client.h b/src/ttt-client.h index 06af64b..d4e3346 100644 --- a/src/ttt-client.h +++ b/src/ttt-client.h @@ -49,4 +49,8 @@ ttt_client_get_name (ttt_client_t *client); void ttt_client_set_name (ttt_client_t *client, const char *name); +/* Return the client's win count */ +int +ttt_client_get_num_wins (ttt_client_t *client); + #endif /* _TTT_CLIENT_H_ */ diff --git a/src/ttt-server.c b/src/ttt-server.c index 60276d3..d98fc24 100644 --- a/src/ttt-server.c +++ b/src/ttt-server.c @@ -146,7 +146,10 @@ ttt_server_who (ttt_server_t *server) xasprintf (&response, "WHO"); for (i = 0; i < server->num_clients; i++) - xasprintf (&response, "%s %s", response, ttt_client_get_name(server->clients[i])); + xasprintf (&response, "%s %s %d", + response, + ttt_client_get_name (server->clients[i]), + ttt_client_get_num_wins (server->clients[i])); xasprintf (&response, "%s\n", response);