]> git.cworth.org Git - ttt/log
ttt
18 years ago2005-11-22 Carl Worth <cworth@cworth.org>
Carl Worth [Tue, 22 Nov 2005 23:54:09 +0000 (23:54 +0000)]
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.

18 years ago2005-11-15 Carl Worth <cworth@cworth.org>
Carl Worth [Tue, 15 Nov 2005 17:56:28 +0000 (17:56 +0000)]
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.

18 years ago2005-11-14 Carl Worth <cworth@cworth.org>
Carl Worth [Mon, 14 Nov 2005 21:14:52 +0000 (21:14 +0000)]
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.

18 years ago2005-11-11 Carl Worth <cworth@cworth.org>
Carl Worth [Sat, 12 Nov 2005 01:21:21 +0000 (01:21 +0000)]
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.

18 years ago2005-11-11 Carl Worth <cworth@pippin.local>
Carl Worth [Fri, 11 Nov 2005 21:13:59 +0000 (21:13 +0000)]
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.

18 years ago2005-11-11 Carl Worth <cworth@cworth.org>
Carl Worth [Fri, 11 Nov 2005 21:04:03 +0000 (21:04 +0000)]
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.

18 years ago2005-11-11 Carl Worth <cworth@cworth.org>
Carl Worth [Fri, 11 Nov 2005 20:47:35 +0000 (20:47 +0000)]
2005-11-11  Carl Worth  <cworth@cworth.org>

        * src/ttt.h:
        * src/x.c:
        * src/x.h: Move include of stdarg.h from x.c to ttt.h.

18 years ago2005-11-11 Carl Worth <cworth@cworth.org>
Carl Worth [Fri, 11 Nov 2005 20:45:39 +0000 (20:45 +0000)]
2005-11-11  Carl Worth  <cworth@cworth.org>

        * 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).

18 years ago2005-11-09 Carl Worth <cworth@cworth.org>
Carl Worth [Wed, 9 Nov 2005 14:37:16 +0000 (14:37 +0000)]
2005-11-09  Carl Worth  <cworth@cworth.org>

        * 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.

18 years ago2005-11-09 Carl Worth <cworth@cworth.org>
Carl Worth [Wed, 9 Nov 2005 13:57:33 +0000 (13:57 +0000)]
2005-11-09  Carl Worth  <cworth@cworth.org>

        * 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.

18 years ago2005-11-08 Carl Worth <cworth@cworth.org>
Carl Worth [Tue, 8 Nov 2005 18:03:08 +0000 (18:03 +0000)]
2005-11-08  Carl Worth  <cworth@cworth.org>

        * 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.

18 years ago2005-11-07 Carl Worth <cworth@cworth.org>
Carl Worth [Tue, 8 Nov 2005 00:44:57 +0000 (00:44 +0000)]
2005-11-07  Carl Worth  <cworth@cworth.org>

        * 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.

18 years ago * src/ttt-board.c: (ttt_board_init): Added for loop counter init.
Richard Worth [Sat, 5 Nov 2005 22:41:03 +0000 (22:41 +0000)]
    * src/ttt-board.c: (ttt_board_init): Added for loop counter init.
        * src/ttt-board.h: Added prototypes.

18 years ago * src/args.c: Renamed ttt-args.c
Richard Worth [Sat, 5 Nov 2005 20:25:11 +0000 (20:25 +0000)]
    * 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.

18 years ago* /games/tictactoe/src/ttt-board.c, ttt-board.h: Implemented board_init
Kevin Worth [Sat, 5 Nov 2005 19:53:18 +0000 (19:53 +0000)]
* /games/tictactoe/src/ttt-board.c, ttt-board.h: Implemented board_init

18 years ago2005-11-05 Carl Worth <cworth@cworth.org>
Carl Worth [Sat, 5 Nov 2005 16:43:21 +0000 (16:43 +0000)]
2005-11-05  Carl Worth  <cworth@cworth.org>

        * 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.

18 years ago2005-11-05 Carl Worth <cworth@cworth.org>
Carl Worth [Sat, 5 Nov 2005 16:17:32 +0000 (16:17 +0000)]
2005-11-05  Carl Worth  <cworth@cworth.org>

        * src/Makefile.am: Break things up for separate ttt-client and
        ttt-server and programs.

18 years agoAdd svn:ignore properties
Carl Worth [Sat, 5 Nov 2005 16:08:18 +0000 (16:08 +0000)]
Add svn:ignore properties

18 years agoAdd template files
Carl Worth [Sat, 5 Nov 2005 16:03:47 +0000 (16:03 +0000)]
Add template files

18 years agoMinor fixes
Carl Worth [Sat, 5 Nov 2005 15:45:28 +0000 (15:45 +0000)]
Minor fixes

18 years agoQuick pass to make it more like tic-tac-toe --- far from complete.
Carl Worth [Sat, 5 Nov 2005 15:41:55 +0000 (15:41 +0000)]
Quick pass to make it more like tic-tac-toe --- far from complete.

18 years agoCommit RRGP protocol document as a starting point.
Carl Worth [Sat, 5 Nov 2005 14:57:56 +0000 (14:57 +0000)]
Commit RRGP protocol document as a starting point.

18 years ago* /games/tictactoe: New folders
Richard Worth [Sat, 5 Nov 2005 14:10:24 +0000 (14:10 +0000)]
* /games/tictactoe: New folders