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