X-Git-Url: https://git.cworth.org/git?p=ttt;a=blobdiff_plain;f=ChangeLog;h=960931ff7beb425fb8cd3c636e1e328d861041ae;hp=63169bbaa3538a255e95fec84f10fe87f6b91374;hb=HEAD;hpb=d47633eb2c209422c89056ddc1f165c1d88efe77 diff --git a/ChangeLog b/ChangeLog index 63169bb..960931f 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,633 @@ +2006-01-14 Carl Worth + + * src/test-board.c (main): Remove bogus line of code which didn't + compile. + +2006-01-14 Carl Worth + + * Makefile.am: + * configure.in: + * kub/Makefile.am: Add kub directory to build system. + + * src/ttt-board.c: (ttt_board_is_won): Fix whitespace. + +2005-12-14 Carl Worth + + * src/ttt-server.h: Update the documentation of these functions to + be more precise about what happens to client mutexes. + + * src/ttt-board.c: (ttt_board_is_won): And some white space to + make things more readable. + +2005-12-13 Bryan Worth + * src/ttt-curses-client: Cleaned up text-entry code. Added support + for HOME, END, DELETE, and ARROW keys + + +2005-12-13 Carl Worth + + * TODO: Note that ttt-server should retry a couple times if its + port is not available. + + * src/test-board.c: (main): Remove debug print messages. + + * src/ttt-board.c: (ttt_board_make_move): Tighten up the code just + a little bit more. + +2005-12-10 Richard D. Worth + + * TODO: check off INVITE, RETRACT, DECLINE, Game Invitation + notices, Connection setup errors, NO_INVITE, User information + errors. + + * src/ttt-client.c: (_ttt_client_execute_helo), + (_ttt_client_execute_statistics), (_ttt_client_execute_message), + (_ttt_client_execute_help), (_ttt_client_execute_version), + (_ttt_client_execute_quit), (_ttt_client_execute_invite), + (_ttt_client_execute_accept), (_ttt_client_execute_retract), + (_ttt_client_execute_decline), (_read_request), + (_execute_request), + (_handle_requests_thread): Whitespace changes. Use exported get + methods (get_username, get_num_wins). Use strcasecmp in place of + toupper. Finish RETRACT, DECLINE. + + * src/ttt.h: + * src/ttt-server.h: + * src/ttt-server.c: (ttt_server_init), + (ttt_server_register_client), (ttt_server_unregister_client), + (ttt_server_verify_username), + (ttt_server_get_client_from_username), (ttt_server_add_invite), + (ttt_server_remove_invite): Add invite struct. Make username case + insensitive (missed in register_client). Implement add_invite, + remove_invite. Moved statistics to ttt-client.c + +2005-12-09 Carl Worth + + * src/ttt-server.c (ttt_server_unregister_client): Move client has + left message to stderr so it makes it to the log file too. + +2005-12-09 Carl Worth + + * src/ttt-server.c (main): Put the initial server started message + in the log file as well. + +2005-12-09 Carl Worth + + * src/ttt-args.h: + * src/ttt-args.c: (ttt_args_help), (ttt_args_parse): Add a -u, + --user option for controlling the uid under which the server + process runs. + + * src/ttt.h: + * src/ttt-server.c: (ttt_server_register_client), (main): Recert + the dup of stdout which wasn't working. Instead just print client + join information on stderr so that it goes into the log. Implement + support for the user option by calling setuid to drop root + privileges the process might start out with. + +2005-12-09 Bryan Worth + * src/ttt-curses-client.c: added error checking to ttt_create_client + call. Added ability to escape server commands by prepending with "/". + Added ability so override port number with port=xxxx entry in + ~/.ttt/client.conf. + +2005-12-08 Carl Worth + + * src/ttt-server.c (main): When detached dup stdout to stderr so + that everything appears in the log file. + +2005-12-08 Carl Worth + + * src/ttt-args.h: + * src/ttt-args.c: (ttt_args_help), (ttt_args_parse): Add + -d,--detach and --pid-file=FILE options for running the server as + a daemon. + + * src/ttt-server.c: (ttt_server_statistics), + (ttt_server_verify_username), (_detach_and_write_child_pid_to), + (main): Add support for detaching and writing out the child PID to + a file. + + * src/x.h: + * src/x.c: (xfopen), (xdup2): Two new x-functions. + +2005-12-08 Carl Worth + + * src/ttt-args.c: (ttt_args_help), (ttt_args_parse): + * src/ttt-args.h: + * src/ttt-server.c: (ttt_server_statistics), + (ttt_server_verify_username), (_detach_and_write_child_pid_to), + (main): + * src/x.c: (xfopen), (xdup2): + * src/x.h: + +2005-12-08 Bryan Worth + * src/ttt-curses-client.c: Multiple improvements! + Username taken from USER environment variable and stored as + preference in ~/.ttt/client.conf (username=xxxxxx). Backspace + should now work correctly with all term types. Status messages + display in seperate area. "MESSAGE" reply from server is + suppressed. Eliminated most global variables. + + +2005-12-08 Carl Worth + + * src/Makefile.am: Fix rule to auto-generate ttt-lex.h. + + * src/ttt-lex.h: Remove generated file from revision control. + + * src/ttt-lex.l: Add copyright/license blurb. + + * src/ttt-lex.l: + * src/ttt-client.c: (yy_init_globals), (use_yy_init_globals): + Shut off some annoying compiler warnings due to flex bugs (only + one still remains). + +2005-12-07 Richard D. Worth + + * PROTOCOL: Remove unused error NOT_IN_GAME. Add error + NOT_VALID_MOVE. + + * TODO: Add error NOT_VALID_MOVE. + + * src/ttt-error.h: + * src/ttt-error.c: (ttt_error_string): Add section comments. Add + error NOT_VALID_MOVE. + +2005-12-06 Bryan Worth + * src/ttt-error.c: fixed missing errors (NO_INVITE, NO_GAME) + +2005-12-06 Richard D. Worth + + * PROTOCOL: Add error NO_INVITE + + * TODO: Uncheck INVITE, ACCEPT + + * src/ttt-error.c: (ttt_error_string): Add errors NO_INVITE, + NO_GAME + + * src/ttt-client.c: (_ttt_client_execute_message), + (_ttt_client_execute_help), (_ttt_client_execute_version), + (_ttt_client_execute_invite), (_ttt_client_execute_accept), + (_ttt_client_execute_retract), (_ttt_client_execute_decline): + Whitespace changes. Partially implement RETRACT, DECLINE. + +2005-12-05 Richard D. Worth + + * PROTOCOL: Fill some missing possible error occurrences. + + * TODO: Check off INVITE, ACCEPT, ERROR COMMAND, ERROR NO_USER + + * src/ttt-server.h: + * src/ttt-server.c: (ttt_server_verify_username): + * src/ttt-client.c: (_ttt_client_execute_help), + (_ttt_client_execute_invite), (_ttt_client_execute_accept): + Implement INVITE, ACCEPT + +2005-12-05 Richard D. Worth + + * src/ttt-curses-client.c: (mvprintstr), (mvwprintstr), (wprint), + (main), (finish): Whitespace changes. + +2005-12-04 Bryan Worth + * src/ttt-socket.c: (ttt_socket_create_client) fixed socket to be + non-blocking. (ttt_socket_read) added return value for number + of bytes read + * Makefile.am: added necessary code for new curses-client program. + * src/ttt-curses-client: new ncurses based client + +2005-12-03 Richard D. Worth + + * PROTOCOL: Add RETRACT, DECLINE. Add game identifier for all game + commands. + + * TODO: Add RETRACT, DECLINE, notices. + +2005-12-03 Richard D. Worth + + * PROTOCOL: Add underscores to error codes. Add STATISTICS + command. Remove statistics from WHO. + + * TODO: Add STATISTICS. Check off STATISTICS. + + * src/ttt.h: Define TTT_SERVER_PROTOCOL_VERSION for VERSION. + + * src/ttt-error.c: (ttt_error_string): Add underscores to error + codes. + + * src/ttt-client.h: + * src/ttt-client.c: (_ttt_client_execute_helo), + (_ttt_client_execute_statistics), (_ttt_client_execute_message), + (_ttt_client_execute_version), (_ttt_client_execute_quit), + (_ttt_client_init), (_ttt_client_fini), (ttt_client_get_username), + (ttt_client_set_username): Rename client->name to + client->username. Implement STATISTICS. Complete implementation of + VERSION. + + * src/ttt-server.h: + * src/ttt-server.c: (ttt_server_register_client), + (ttt_server_unregister_client), (ttt_server_who), + (ttt_server_statistics): Track rename of client->name to + client->username. Add server helper for STATISTICS. + +2005-12-02 Richard D. Worth + + * TODO: Check off Global commands, HELP, VERSION. + + * src/ttt-client.c: (_ttt_client_execute_message), + (_ttt_client_execute_help), (_execute_request): Whitespace + changes. Implement HELP with usage and short description. + + * src/ttt-server.c: Update the server welcome message. + +2005-12-01 Richard D. Worth + + * TODO: Check off NOTICE MESSAGE, ERROR NONAMESET. + + * PROTOCOL: Add NONAMESET error in possible errors where + applicable. Add description for MESSAGE. + + * src/ttt-token.h: Add token typedef. Rename token type enum. + + * src/ttt-lex.l: Add support for quoted string as single token. + * src/ttt-lex.h: Autogenerated. + + * src/ttt-client.c: (_ttt_client_execute_helo), + (_ttt_client_execute_who), (_ttt_client_execute_message), + (_ttt_client_execute_help), (_ttt_client_execute_version), + (_ttt_client_execute_quit), (_ttt_client_init), (_read_request), + (_execute_request): Whitespace changes. Implement VERSION, + HELP. Change args_required back to args_min and args_max (see + PROTOCOL\HELP). Modify MESSAGE to accept one token arg and quote + output. Return NONAMESET error where applicable. + +2005-11-29 Carl Worth + + * src/ttt-socket.h: + * src/ttt-socket.c: (ttt_socket_create_client): New function for + creating a client socket. + + * src/x.h: + * src/x.c: (xconnect): Add xconnect. Return a couple of useful + error status values so that callers can recover on connection + refused or host unreachable. + + * src/ttt.h: Add TTT_STATUS_CONNECTION_REFUSED and + TTT_STATUS_NETWORK_UNREACHABLE. + +2005-11-28 Kevin Worth + + * PROTOCOL: Changed board cell numbering to start with zero + instead of one. + + * src/Makefile.am: + * src/test-board.c: (main): Added new file for testing. + + * src/ttt-board.c: (ttt_board_init), (ttt_board_to_string): + * src/ttt-board.h: Implemented board_to_string. + +2005-11-28 kevin worth + + * src/ttt-board.c: + * src/ttt-board.h: Moved struct def from ttt-board.h into + ttt-board.c to make it private + + * src/ttt-lex.h: + Autogenerated + +2005-11-28 Carl Worth + + * TODO: Add instructions on using the first letter of our names to + indicate we are working on something. + +2005-11-25 Bryan Worth + * ttt-client.c, ttt-server.c, ttt-error.c changed line breaks to + (\r\n) for network compatibility + +2005-11-25 Bryan Worth + * TODO: checked off NOTICE USER and NOTICE QUIT + *src/ttt-client.c: (_ttt_client_execute_helo): implement NOTICE USER + *(_ttt_client_execute_quit): implement NOTICE QUIT + +2005-11-25 Bryan Worth + * TODO: checked off MESSAGE + + *src/ttt-client.c: (_ttt_client_execute_message): Implement MESSAGE + *(_execute_request): changed arg_required to behave as a minimum + instead of an absolute number to allow optional arguments such as + multi-word messages + +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 + * TODO: Add newline before EOF + + * src/ttt-client.c: (_ttt_client_execute_who): + * src/ttt-server.h: + * src/ttt-server.c: (ttt_server_who): Implement WHO. + +2005-11-24 Carl Worth + + * PROTOCOL: Document QUIT. + + * src/ttt-client.c: (_ttt_client_execute_helo), + (_ttt_client_execute_quit), (_ttt_client_init), (_ttt_client_fini), + (_execute_request), (_handle_requests_thread): Implement QUIT. Add + client->registered flag and unregister only if registered. Change + from args_min and args_max to args_required. + + * src/ttt-error.h: + * src/ttt-error.c: (ttt_error_string): + * src/ttt-server.c: (ttt_server_register_client): Put underscores + in TTT_ERRROR names for better readability. + +2005-11-24 Carl Worth + + * PROTOCOL: + * src/ttt-server.c: (ttt_server_init), + (ttt_server_register_client): Remove unique-name generation from + the server. The client is going to have to have code to do this + anyway. + + * src/ttt-client.c: Change minimum arguments for HELO from 0 to 1. + + * TODO: Note that HELO and ERROR INVALIDNAME are implemented in + the server. + +2005-11-23 Richard D. Worth + + * PROTOCOL: Remove unused servername + + * src/ttt-client.h: * src/ttt-client.c: + (_ttt_client_execute_helo), (_ttt_client_init), + (_ttt_client_fini), (_execute_request), (ttt_client_get_name), + (ttt_client_set_name): Added command descriptions structure. Match + command case-insensitively, dispatch to execute + function. Implement HELO command. Register on HELO instead of on + connect. + + * src/ttt-server.h: * src/ttt-server.c: (ttt_server_init), + (ttt_server_register_client), (ttt_server_unregister_client), + (ttt_server_get_host), (ttt_server_get_port), (main): Added host + and port to server. Make client registration name-based rather + than id-based. + + * src/x.c: (xstrdup): Return NULL on NULL + + * src/ttt-lex.h: Regenerated + +2005-11-22 Carl Worth + + * TODO: Add TODO file listing all the stuff from the protocol that + needs to be implemented. + + * src/Makefile.am: + * configure.in: + * ylwrap: + * src/ttt-lex.h: + * src/ttt-lex.l: + * src/ttt-token.h: Add support for a flex-based tokenizer which + tokenizes newlines and space-separated strings. + + * src/ttt-client.c: (_ttt_client_init), (_ttt_client_fini), + (_append_to_request), (_free_request), (_read_request), + (_execute_request): Use new tokenizer to tokenize input into an + array of request strings. + +2005-11-15 Carl Worth + + * src/Makefile.am: + * src/ttt-error.h: + * src/ttt-error.c: (ttt_error_string): Add error values and error + strings from protocol. + + * src/ttt.h: Add typedefs for ttt_client_t and ttt_server_t so + that there's no problem with ttt-client.h and ttt-server.h needing + to mutually include each other. + + * src/ttt-server.h: + * src/ttt-server.c: (ttt_server_register_client), + (ttt_server_unregister_client), (_ttt_server_accept), (main): Push + the client request handling thread back down into ttt-client.c + where it really does belong. The server code no longer ever + reaches down inside the ttt_client_t structure. Export + ttt_server_register_client and ttt_server_unregister_client. Add + documentation for ttt_server_broadcast. Document locking semantics + for all functions which acquire the server lock. + + * src/ttt-client.h: + * src/ttt-client.c: (_ttt_client_create), (_ttt_client_destroy), + (_read_into_request_until), (_read_request), (_execute_request), + (_handle_requests_thread), (ttt_client_new), (ttt_client_get_id): + Pull the ttt_client structure definition back down inside the + ttt-client.c file. Don't export ttt_client_create and + ttt_client_destroy anymore, but instead just use static + _ttt_client_init and _ttt_client_fini. Implement the broadcast by + just passing a client pointer around and using client->request + rather than passing char *request all over. Document new + ttt_client_new and remove ttt_client_read_line. Add locking to + ttt_client_send and document it. Add ttt_client_get_id. + +2005-11-14 Carl Worth + + Server now acts as a very simple chat server. + + * src/ttt-client.h: + * src/ttt-client.c: (ttt_client_create), (ttt_client_destroy), + (_append_to_request), (ttt_client_read_into_request_until), + (ttt_client_read_line), (ttt_client_send): Add support to do a + buffering read within the client and to reuse the buffer (which + grows by doubling) from one request to the next. Add function to + send a message to a client. + + * src/ttt-server.c: (ttt_server_init), (ttt_server_create_client): + Add support for a client idea. Resize the server's client list by + doubling. + * src/ttt-server.c: (ttt_server_destroy_client): Add support to + destroy a client. + * src/ttt-server.c: (_handle_client_requests_thread), + (_accept_client): Move handling of client requests up to + ttt-server.c from ttt-client.c. Use threads rather than a fork per + client. + * src/ttt-server.h: + * src/ttt-server.h: (ttt_server_broadcast): Add function to send a + message to all connected clients. + + * src/ttt-socket.h: + * src/ttt-socket.c: (ttt_socket_read), + (ttt_socket_write): Add functions to do blocking read or write of + the specified number of bytes. + + * src/ttt-socket.c: (ttt_socket_accept): Remove fork, so that the + accept function call can take care of anything like that itself. + + * src/x.h: + * src/x.c: (xread), (xwrite): New wrappers for read and write. + + * src/ttt.h: Add TTT_STATUS_EOF, TRUE, and FALSE. + + * src/ttt.c: Need to include ttt-args.h explicitly now. + +2005-11-11 Carl Worth + + * src/ttt-server.h: + * src/ttt-server.c: (ttt_server_init), (ttt_server_add_client), + (_accept_client), (main): Add a new ttt_server_t object with a + mutex-protected list of clients. Move client handling code down + into new ttt-client.c. + + * src/ttt-client.h: + * src/ttt-client.c: (ttt_client_create), (ttt_client_destroy), + (ttt_client_handle_requests): New ttt_client_t object that simply + holds a pointer back to the server as well as the client socket + file descriptor. + + * src/ttt-socket.h: + * src/ttt-socket.c: (ttt_socket_accept): Add closure argument. Add + a call to fork before calling the accept callback. + + * src/ttt-args.c: Hide unused ttt_args_usage from the compiler to + keep it from complaining. + + * src/ttt.c: (main): Rename the client main program from + ttt-client to ttt.c, (since the server code now has its own + ttt-client.c). + + * src/ttt.h: + * src/Makefile.am: Include and link with pthread now that we have + pthread-based mutex locking. + +2005-11-11 Carl Worth + + * src/ttt-server.c: (main): Don't assign to stderr which is + apparently an invalid lvalue on Mac OS X. + + * src/x.h: + * src/x.c: (xfreopen): Change return type to void. + + * src/ttt-board.c: (ttt_board_to_string): Add missing return + statement. + +2005-11-11 Carl Worth + + * configure.in: Key off of src/ttt.h instead of src/ttt.c which no + longer exists. + +2005-11-11 Carl Worth + + * src/ttt.h: + * src/x.c: + * src/x.h: Move include of stdarg.h from x.c to ttt.h. + +2005-11-11 Carl Worth + + * src/ttt-board.h: Include ttt.h to get standard includes. + + * src/ttt-socket.c: Replace include of netinet/ip.h with + netinet/in.h which seems to be necessary for BSD libc, (eg. Mac OS + X). + +2005-11-09 Carl Worth + + * src/Makefile.am: + * src/ttt.h: + * src/ttt-server.c: (ttt_dispatch), (main): + * src/ttt-socket.h: + * src/ttt-socket.c: (_sockaddr_init), (_wait_for_connection), + (ttt_socket_create_server), (ttt_socket_accept): Push a lot of + code out of ttt-server.c down into a new ttt_socket abstraction + layer. The code is much easier to read now. The server also no + longer exits when the first client exits, but continues to listen + for more connections. + +2005-11-09 Carl Worth + + * src/ttt-args.h: + * src/ttt-args.c: (ttt_args_help), (ttt_args_parse): Add support + for -h,--host, -p,--port, and --log-file command-line arguments. + + * src/ttt-server.c: (main): Use host, port, and log-file + command-line arguments. + + * src/ttt-client.c: (main): Track change in signature of + ttt_args_parse. + + * src/x.h: + * src/x.c: (xfdopen), (xfreopen): More wrappers. + +2005-11-08 Carl Worth + + * src/ttt.h: + * src/ttt-server.c: (_sockaddr_init), (_wait_for_connection), + (main): Add socket, bind, listen, accept calls to provide a + simple, functional, one-shot server demonstration. + + * src/x.h: + * src/x.c: (xsocket), (xbind), (xlisten), (xfcntl), (xselect): Add + more wrapped system calls. + +2005-11-07 Carl Worth + + * src/ttt.h: Grab some useful definitions from wdo.h: + ASSERT_NOT_REACHEED and TTT_PRINTF_FORMAT. Add several needed + include directives. + + * src/Makefile.am: Rip out not-yet existing ttt-command and + ttt-error. + + * src/ttt-args.c: (ttt_args_parse): Track name change from + args_help to ttt_args_help. + + * src/ttt.c: Remove in favor of ttt-server.c and ttt-client.c. + + * src/x.h: Add prototype for xfwrite. + +2005-11-05 Richard D. Worth + + * src/ttt-board.c: (ttt_board_init): Added for loop counter init. + * src/ttt-board.h: Added prototypes. + +2005-11-05 Richard D. Worth + + * src/args.c: Renamed ttt-args.c + * src/args.h: Renamed ttt-args.h + * src/ttt-args.c: (ttt_args_help), (ttt_args_usage), + (ttt_args_parse): Added ttt_ prefix. + * src/ttt-args.h: Added ttt_, TTT_ prefix. + +2005-11-05 Kevin Worth + + * src/ttt-board.c: (ttt_board_init): Implemented board_init. + * src/ttt-board.h: (ttt_board_t): Added cells array. + +2005-11-05 Carl Worth + + * src/Makefile.am: Add ttt-board.[ch] and x.[ch] + + * src/ttt-board.h: + * src/ttt-board.c: (ttt_board_init), (ttt_board_init_from_string), + (ttt_board_to_string), (ttt_board_write): Add some stub functions + for Richard and Kevin to have some practice + implementing. Functions to represent a board and to go to/from a + string. + + * src/x.h: + * src/x.c: (xasprintf), (xvasprintf), (xpipe), (xfork), (xmalloc), + (xcalloc), (xrealloc), (xfdopen), (xstrdup), (xfwrite): Several + utility functions that make system calls, check the result, and + exit on any error. This will simplify the error checking needed in + programs using these functions. + 2005-11-05 Carl Worth * src/Makefile.am: Break things up for separate ttt-client and