]> git.cworth.org Git - ttt/blobdiff - ChangeLog
2005-12-08 Carl Worth <cworth@cworth.org>
[ttt] / ChangeLog
index 69d3b08ac65c8e792c5badfc42ff288578e4b302..7fb5319b78584b5f81daf6a906640470f5ba73f1 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,435 @@
+2005-12-08  Carl Worth  <cworth@cworth.org>
+
+       * src/ttt-server.c (main): When detached dup stdout to stderr so
+       that everything appears in the log file.
+
+2005-12-08  Carl Worth  <cworth@cworth.org>
+
+       * 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  <cworth@cworth.org>
+
+       * 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  <bryan@theworths.org>
+        * 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  <cworth@cworth.org>
+
+       * 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  <richard@theworths.org>
+
+       * 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 <bryan@theworths.org>
+       * src/ttt-error.c: fixed missing errors (NO_INVITE, NO_GAME)
+
+2005-12-06  Richard D. Worth  <richard@theworths.org>
+
+       * 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  <richard@theworths.org>
+
+       * 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  <richard@theworths.org>
+
+       * src/ttt-curses-client.c: (mvprintstr), (mvwprintstr), (wprint),
+       (main), (finish): Whitespace changes.
+
+2005-12-04  Bryan Worth <bryan@theworths.org>
+        * 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  <richard@theworths.org>
+
+       * PROTOCOL: Add RETRACT, DECLINE. Add game identifier for all game
+       commands.
+       
+       * TODO: Add RETRACT, DECLINE, notices.
+
+2005-12-03  Richard D. Worth  <richard@theworths.org>
+
+       * 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  <richard@theworths.org>
+
+       * 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  <richard@theworths.org>
+
+       * 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  <cworth@cworth.org>
+
+       * 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  <kevin@theworths.org>
+
+       * 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  <kevin@theworths.org>
+
+       * 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  <cworth@cworth.org>
+
+       * TODO: Add instructions on using the first letter of our names to
+       indicate we are working on something.
+
+2005-11-25  Bryan Worth <bryan@theworths.org>
+       * ttt-client.c, ttt-server.c, ttt-error.c changed line breaks to 
+        <crlf> (\r\n) for network compatibility
+
+2005-11-25  Bryan Worth <bryan@theworths.org>
+       * 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 <bryan@theworths.org>
+       * 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  <richard@theworths.org>
+
+       * 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  <richard@theworths.org>
+
+       * 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  <cworth@cworth.org>
+
+       * 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  <cworth@cworth.org>
+
+       * 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  <richard@theworths.org>
+
+       * 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  <cworth@cworth.org>
+
+       * 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  <cworth@cworth.org>
+
+       * 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  <cworth@cworth.org>
+
+       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  <cworth@cworth.org>
+
+       * 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  <cworth@pippin.local>
+
+       * 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  <cworth@cworth.org>
+
+       * configure.in: Key off of src/ttt.h instead of src/ttt.c which no
+       longer exists.
+
 2005-11-11  Carl Worth  <cworth@cworth.org>
 
        * src/ttt.h: