X-Git-Url: https://git.cworth.org/git?p=ttt;a=blobdiff_plain;f=ChangeLog;h=525bdfd33f631cee48339ae5b08e79316875226b;hp=24fa00bc3a302d32e0c65fd7e7d95e7812b92096;hb=f8bdcd97af8d0dcee79ab692fffb83dba5a5498a;hpb=629eaa8969f997cd15010bdb0c285cdf3dc5fe0a diff --git a/ChangeLog b/ChangeLog index 24fa00b..525bdfd 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,170 @@ +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 Worth + + * PROTOCOL: Removed 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