]> git.cworth.org Git - ttt/blob - ChangeLog
df44897953e563538ef1fdeeec4b2012a8ac724a
[ttt] / ChangeLog
1 2005-11-25  Richard D. Worth  <richard@theworths.org>
2
3         * TODO: checked off WHO, QUIT, ERROR SYNTAX
4
5         * src/ttt-client.c: (_ttt_client_execute_helo), (_ttt_client_init),
6         (ttt_client_get_num_wins):
7         * src/ttt-client.h:
8         * src/ttt-server.c: (ttt_server_who): Whitespace changes. Add
9         missing player win count for WHO.
10
11 2005-11-24  Richard D. Worth  <richard@theworths.org>
12
13         * AUTHORS: Add Richard D. Worth
14         * TODO: Add newline before EOF
15
16         * src/ttt-client.c: (_ttt_client_execute_who):
17         * src/ttt-server.h:
18         * src/ttt-server.c: (ttt_server_who): Implement WHO.
19
20 2005-11-24  Carl Worth  <cworth@cworth.org>
21
22         * PROTOCOL: Document QUIT.
23
24         * src/ttt-client.c: (_ttt_client_execute_helo),
25         (_ttt_client_execute_quit), (_ttt_client_init), (_ttt_client_fini),
26         (_execute_request), (_handle_requests_thread): Implement QUIT. Add
27         client->registered flag and unregister only if registered. Change
28         from args_min and args_max to args_required.
29
30         * src/ttt-error.h:
31         * src/ttt-error.c: (ttt_error_string):
32         * src/ttt-server.c: (ttt_server_register_client): Put underscores
33         in TTT_ERRROR names for better readability.
34
35 2005-11-24  Carl Worth  <cworth@cworth.org>
36
37         * PROTOCOL:
38         * src/ttt-server.c: (ttt_server_init),
39         (ttt_server_register_client): Remove unique-name generation from
40         the server. The client is going to have to have code to do this
41         anyway.
42
43         * src/ttt-client.c: Change minimum arguments for HELO from 0 to 1.
44
45         * TODO: Note that HELO and ERROR INVALIDNAME are implemented in
46         the server.
47
48 2005-11-23  Richard D. Worth  <richard@theworths.org>
49
50         * PROTOCOL: Remove unused servername
51
52         * src/ttt-client.h: * src/ttt-client.c:
53         (_ttt_client_execute_helo), (_ttt_client_init),
54         (_ttt_client_fini), (_execute_request), (ttt_client_get_name),
55         (ttt_client_set_name): Added command descriptions structure. Match
56         command case-insensitively, dispatch to execute
57         function. Implement HELO command. Register on HELO instead of on
58         connect.
59
60         * src/ttt-server.h: * src/ttt-server.c: (ttt_server_init),
61         (ttt_server_register_client), (ttt_server_unregister_client),
62         (ttt_server_get_host), (ttt_server_get_port), (main): Added host
63         and port to server. Make client registration name-based rather
64         than id-based.
65
66         * src/x.c: (xstrdup): Return NULL on NULL
67
68         * src/ttt-lex.h: Regenerated
69
70 2005-11-22  Carl Worth  <cworth@cworth.org>
71
72         * TODO: Add TODO file listing all the stuff from the protocol that
73         needs to be implemented.
74         
75         * src/Makefile.am:
76         * configure.in:
77         * ylwrap:
78         * src/ttt-lex.h:
79         * src/ttt-lex.l:
80         * src/ttt-token.h: Add support for a flex-based tokenizer which
81         tokenizes newlines and space-separated strings.
82
83         * src/ttt-client.c: (_ttt_client_init), (_ttt_client_fini),
84         (_append_to_request), (_free_request), (_read_request),
85         (_execute_request): Use new tokenizer to tokenize input into an
86         array of request strings.
87
88 2005-11-15  Carl Worth  <cworth@cworth.org>
89
90         * src/Makefile.am:
91         * src/ttt-error.h:
92         * src/ttt-error.c: (ttt_error_string): Add error values and error
93         strings from protocol.
94
95         * src/ttt.h: Add typedefs for ttt_client_t and ttt_server_t so
96         that there's no problem with ttt-client.h and ttt-server.h needing
97         to mutually include each other.
98
99         * src/ttt-server.h:
100         * src/ttt-server.c: (ttt_server_register_client),
101         (ttt_server_unregister_client), (_ttt_server_accept), (main): Push
102         the client request handling thread back down into ttt-client.c
103         where it really does belong. The server code no longer ever
104         reaches down inside the ttt_client_t structure. Export
105         ttt_server_register_client and ttt_server_unregister_client. Add
106         documentation for ttt_server_broadcast. Document locking semantics
107         for all functions which acquire the server lock.
108
109         * src/ttt-client.h:
110         * src/ttt-client.c: (_ttt_client_create), (_ttt_client_destroy),
111         (_read_into_request_until), (_read_request), (_execute_request),
112         (_handle_requests_thread), (ttt_client_new), (ttt_client_get_id):
113         Pull the ttt_client structure definition back down inside the
114         ttt-client.c file. Don't export ttt_client_create and
115         ttt_client_destroy anymore, but instead just use static
116         _ttt_client_init and _ttt_client_fini. Implement the broadcast by
117         just passing a client pointer around and using client->request
118         rather than passing char *request all over. Document new
119         ttt_client_new and remove ttt_client_read_line. Add locking to
120         ttt_client_send and document it. Add ttt_client_get_id.
121
122 2005-11-14  Carl Worth  <cworth@cworth.org>
123
124         Server now acts as a very simple chat server.
125
126         * src/ttt-client.h:
127         * src/ttt-client.c: (ttt_client_create), (ttt_client_destroy),
128         (_append_to_request), (ttt_client_read_into_request_until),
129         (ttt_client_read_line), (ttt_client_send): Add support to do a
130         buffering read within the client and to reuse the buffer (which
131         grows by doubling) from one request to the next. Add function to
132         send a message to a client.
133
134         * src/ttt-server.c: (ttt_server_init), (ttt_server_create_client):
135         Add support for a client idea. Resize the server's client list by
136         doubling.
137         * src/ttt-server.c: (ttt_server_destroy_client): Add support to
138         destroy a client.
139         * src/ttt-server.c: (_handle_client_requests_thread),
140         (_accept_client): Move handling of client requests up to
141         ttt-server.c from ttt-client.c. Use threads rather than a fork per
142         client.
143         * src/ttt-server.h:
144         * src/ttt-server.h: (ttt_server_broadcast): Add function to send a
145         message to all connected clients.
146
147         * src/ttt-socket.h:
148         * src/ttt-socket.c: (ttt_socket_read),
149         (ttt_socket_write): Add functions to do blocking read or write of
150         the specified number of bytes.
151
152         * src/ttt-socket.c: (ttt_socket_accept): Remove fork, so that the
153         accept function call can take care of anything like that itself.
154         
155         * src/x.h:
156         * src/x.c: (xread), (xwrite): New wrappers for read and write.
157
158         * src/ttt.h: Add TTT_STATUS_EOF, TRUE, and FALSE.
159
160         * src/ttt.c: Need to include ttt-args.h explicitly now.
161
162 2005-11-11  Carl Worth  <cworth@cworth.org>
163
164         * src/ttt-server.h:
165         * src/ttt-server.c: (ttt_server_init), (ttt_server_add_client),
166         (_accept_client), (main): Add a new ttt_server_t object with a
167         mutex-protected list of clients. Move client handling code down
168         into new ttt-client.c.
169
170         * src/ttt-client.h:
171         * src/ttt-client.c: (ttt_client_create), (ttt_client_destroy),
172         (ttt_client_handle_requests): New ttt_client_t object that simply
173         holds a pointer back to the server as well as the client socket
174         file descriptor.
175
176         * src/ttt-socket.h:
177         * src/ttt-socket.c: (ttt_socket_accept): Add closure argument. Add
178         a call to fork before calling the accept callback.
179
180         * src/ttt-args.c: Hide unused ttt_args_usage from the compiler to
181         keep it from complaining.
182
183         * src/ttt.c: (main): Rename the client main program from
184         ttt-client to ttt.c, (since the server code now has its own
185         ttt-client.c).
186
187         * src/ttt.h:
188         * src/Makefile.am: Include and link with pthread now that we have
189         pthread-based mutex locking.
190
191 2005-11-11  Carl Worth  <cworth@pippin.local>
192
193         * src/ttt-server.c: (main): Don't assign to stderr which is
194         apparently an invalid lvalue on Mac OS X.
195
196         * src/x.h:
197         * src/x.c: (xfreopen): Change return type to void.
198
199         * src/ttt-board.c: (ttt_board_to_string): Add missing return
200         statement.
201
202 2005-11-11  Carl Worth  <cworth@cworth.org>
203
204         * configure.in: Key off of src/ttt.h instead of src/ttt.c which no
205         longer exists.
206
207 2005-11-11  Carl Worth  <cworth@cworth.org>
208
209         * src/ttt.h:
210         * src/x.c:
211         * src/x.h: Move include of stdarg.h from x.c to ttt.h.
212
213 2005-11-11  Carl Worth  <cworth@cworth.org>
214
215         * src/ttt-board.h: Include ttt.h to get standard includes.
216         
217         * src/ttt-socket.c: Replace include of netinet/ip.h with
218         netinet/in.h which seems to be necessary for BSD libc, (eg. Mac OS
219         X).
220
221 2005-11-09  Carl Worth  <cworth@cworth.org>
222
223         * src/Makefile.am:
224         * src/ttt.h:
225         * src/ttt-server.c: (ttt_dispatch), (main):
226         * src/ttt-socket.h:
227         * src/ttt-socket.c: (_sockaddr_init), (_wait_for_connection),
228         (ttt_socket_create_server), (ttt_socket_accept): Push a lot of
229         code out of ttt-server.c down into a new ttt_socket abstraction
230         layer. The code is much easier to read now. The server also no
231         longer exits when the first client exits, but continues to listen
232         for more connections.
233
234 2005-11-09  Carl Worth  <cworth@cworth.org>
235
236         * src/ttt-args.h:
237         * src/ttt-args.c: (ttt_args_help), (ttt_args_parse): Add support
238         for -h,--host, -p,--port, and --log-file command-line arguments.
239         
240         * src/ttt-server.c: (main): Use host, port, and log-file
241         command-line arguments.
242
243         * src/ttt-client.c: (main): Track change in signature of
244         ttt_args_parse.
245         
246         * src/x.h:
247         * src/x.c: (xfdopen), (xfreopen): More wrappers.
248
249 2005-11-08  Carl Worth  <cworth@cworth.org>
250
251         * src/ttt.h:
252         * src/ttt-server.c: (_sockaddr_init), (_wait_for_connection),
253         (main): Add socket, bind, listen, accept calls to provide a
254         simple, functional, one-shot server demonstration.
255
256         * src/x.h:
257         * src/x.c: (xsocket), (xbind), (xlisten), (xfcntl), (xselect): Add
258         more wrapped system calls.
259
260 2005-11-07  Carl Worth  <cworth@cworth.org>
261
262         * src/ttt.h: Grab some useful definitions from wdo.h:
263         ASSERT_NOT_REACHEED and TTT_PRINTF_FORMAT. Add several needed
264         include directives.
265
266         * src/Makefile.am: Rip out not-yet existing ttt-command and
267         ttt-error.
268         
269         * src/ttt-args.c: (ttt_args_parse): Track name change from
270         args_help to ttt_args_help.
271
272         * src/ttt.c: Remove in favor of ttt-server.c and ttt-client.c.
273         
274         * src/x.h: Add prototype for xfwrite.
275
276 2005-11-05  Richard D. Worth  <richard@theworths.org>
277
278         * src/ttt-board.c: (ttt_board_init): Added for loop counter init.
279         * src/ttt-board.h: Added prototypes.
280
281 2005-11-05  Richard D. Worth  <richard@theworths.org>
282
283         * src/args.c: Renamed ttt-args.c
284         * src/args.h: Renamed ttt-args.h
285         * src/ttt-args.c: (ttt_args_help), (ttt_args_usage),
286         (ttt_args_parse): Added ttt_ prefix.
287         * src/ttt-args.h: Added ttt_, TTT_ prefix.
288
289 2005-11-05  Kevin Worth  <kevin@cworth.org>
290
291         * src/ttt-board.c: (ttt_board_init): Implemented board_init.
292         * src/ttt-board.h: (ttt_board_t): Added cells array.
293
294 2005-11-05  Carl Worth  <cworth@cworth.org>
295
296         * src/Makefile.am: Add ttt-board.[ch] and x.[ch]
297         
298         * src/ttt-board.h:
299         * src/ttt-board.c: (ttt_board_init), (ttt_board_init_from_string),
300         (ttt_board_to_string), (ttt_board_write): Add some stub functions
301         for Richard and Kevin to have some practice
302         implementing. Functions to represent a board and to go to/from a
303         string.
304         
305         * src/x.h:
306         * src/x.c: (xasprintf), (xvasprintf), (xpipe), (xfork), (xmalloc),
307         (xcalloc), (xrealloc), (xfdopen), (xstrdup), (xfwrite): Several
308         utility functions that make system calls, check the result, and
309         exit on any error. This will simplify the error checking needed in
310         programs using these functions.
311         
312 2005-11-05  Carl Worth  <cworth@cworth.org>
313
314         * src/Makefile.am: Break things up for separate ttt-client and
315         ttt-server and programs.
316