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