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