2002-10-04 05:32 Jason Short <jdorje@users.sourceforge.net> * ggzcore/ggzcore.h: Remove the flag-based values for the GGZChatOp enumeration; these values were undocumented and newly depricated anyway. Just let the enum be an enum. 2002-10-04 05:27 Jason Short <jdorje@users.sourceforge.net> * ggzcore/net.c: Remove the long-depricated net.c file. 2002-10-01 21:05 Josef Spillner <dr_maux@users.sourceforge.net> * configure.in: - use configure.in for AC_INIT 2002-10-01 17:46 Jason Short <jdorje@users.sourceforge.net> * man/: ggzcore_h.3.in, ggzmod_h.3.in: Update man pages for ggzcore and ggzmod. 2002-10-01 17:44 Jason Short <jdorje@users.sourceforge.net> * ggzcore/Doxyfile, ggzmod/Doxyfile: Bump Doxyfile versions to 0.0.6. 2002-09-29 14:42 Josef Spillner <dr_maux@users.sourceforge.net> * man/ggz-config.6.in, man/ggz.modules.5.in, configure.in: - client libs version number bumping 2002-09-27 17:35 Josef Spillner <dr_maux@users.sourceforge.net> * ggzmod/Makefile.am: - increase ggzmod interface version by one For example, the semantics of ggzmod_connect/disconnect have changed, and get_udp_fd is not available anymore. This is, of course, no surprise because of the direct connections. 2002-09-27 10:56 Josef Spillner <dr_maux@users.sourceforge.net> * autogen.sh: - new autogen 2002-09-26 13:03 Josef Spillner <dr_maux@users.sourceforge.net> * ggzmod/Makefile.am: - let ggzmod use libggz linkage information, too 2002-09-26 12:25 Josef Spillner <dr_maux@users.sourceforge.net> * acinclude.ggz, configure.in: - deploy new configuration macros for ggz-client-libs 2002-09-26 12:24 Josef Spillner <dr_maux@users.sourceforge.net> * ggzcore/Makefile.am: - use libggz libraries and headers explicitly - IMPORTANT: library interface version has been increased. Before: libggzcore.so.1 Now: libggzcore.so.2 2002-09-24 09:34 Josef Spillner <dr_maux@users.sourceforge.net> * QuickStart.GGZ, README.GGZ: - update intro docs 2002-09-24 00:45 Jason Short <jdorje@users.sourceforge.net> * acinclude.ggz: Update acinclude.ggz in the txt-client, and label acinclude.ggz as being included in txt-client. 2002-09-20 09:15 Josef Spillner <dr_maux@users.sourceforge.net> * ggzcore/ggzcore.h: - some bits of additional documentation for the ggzcore header file 2002-09-19 18:17 Jason Short <jdorje@users.sourceforge.net> * acinclude.ggz: Include gnome-client on the list of modules that use acinclude.ggz. 2002-09-19 00:27 Jason Short <jdorje@users.sourceforge.net> * acconfig.h, configure.in: If DEBUG isn't enabled (via --enable-debug), define NDEBUG. 2002-09-17 04:40 Jason Short <jdorje@users.sourceforge.net> * ggzmod/Makefile.am: Added mod.h and protocol.h to libggzmod_la_SOURCES. 2002-09-17 04:30 Jason Short <jdorje@users.sourceforge.net> * ggzcore/ggz-config.c: #if 0'd out the unused function query(). 2002-09-12 19:23 Jason Short <jdorje@users.sourceforge.net> * ggzcore/room.c: Set room->spectating to 0 when we launch a game. This value really needs to be tracked better: updated when we actually join a table rather than when we try to. Also ggzd should not rely on the client to tell it whether it is spectating or not: doing so is why this caused a bug in the first place. (Bug: open two clients, and connect to a server. With one client, launch a game. Then spectate it with the other. Exit the game. Then launch a game with the second client. The client and the table will now be fubar. This is fixed with this change, but a different client could still mess things up.) 2002-09-11 05:48 Jason Short <jdorje@users.sourceforge.net> * ggzcore/: gametype.c, gametype.h, netxml.c, protocol.h: Changed the GGZ network protocol so that player and bot allow lists are transmitted in a more flexible and legible way. The allow spectator boolean value is transferred as "true"/"false". I also bumped the protocol version up to 8. This change will break backwards-compatability, but only when players play games. Is there a system in place for allowing for backwards-compatability in a case like this? There should be (eventually). 2002-09-09 03:47 Jason Short <jdorje@users.sourceforge.net> * ggzcore/table.c: Instead of hard-coding the number of spectator seats as 8, instead dynamically allocate them as needed, with unlimited growth. The implementation uses a variable-sized array. We start out with 0 spectators, and if we get a new spectator N we know we must grow the array to hold N spectators. The growth is done geometrically to keep overhead low. 2002-09-08 10:49 Jason Short <jdorje@users.sourceforge.net> * ggzcore/: netxml.c, table.c, table.h: Problem: when spectators join and leave tables, the other clients do not know what table those players are at. Solution: ggzcore must track the list of spectators for each table, so that when a table update is sent it can properly remove/add players from the table. This is, needless to say, a rather involved process. There's a significant hack involved: the maximum number of spectators is hard-coded at 8. The "correct" thing to do would be to use a GGZList which *only* has elements for the existing spectators. That way the list could grow arbitrarily. All in good time... 2002-09-08 08:34 Jason Short <jdorje@users.sourceforge.net> * ggzcore/netxml.c: Removed the 'joinspectator' and 'leavespectator' result tags. Instead 'join' and 'leave' are simply used instead. The handling for these was already identical at the client end. At the server end, this allowed the removal of the functions net_send_table_join_spectator and net_send_table_leave_spectator, and the merging of some other code that is now identical between spectators and players. 2002-09-07 19:16 Jason Short <jdorje@users.sourceforge.net> * ggzcore/: net.h, netxml.c, room.c: Instead of <JOINSPECTATOR/> and <LEAVESPECTATOR/>, make the XML protocol use <JOIN SPECTATOR='true'/> and <LEAVE SPECTATOR='true'/>. This gives sufficient backwards-compatability: now if you try to "watch" a game on a server that doesn't support spectators, you'll just join the game as a player. The other way, if you did this the client would become fubar. Note that this *does* break compatability with the CVS code of the past several days. But this is a small price to pay. 2002-09-07 15:28 Jason Short <jdorje@users.sourceforge.net> * ggzcore/: ggzcore.h, room.c, room.h: Fixes to ggzcore so that joining & leaving a table as a spectator works: - Removed ggzcore_room_join_table_spectator and ggzcore_room_leave_table_spectator. - Added a "spectator" parameter to ggzcore_room_join_table. This breaks compatability (although only for our core clients!), but will be simpler in the long run. - Track whether we're playing or spectating at a table, and use this information when ggzcre_room_leave_table is called. 2002-09-07 09:21 Josef Spillner <dr_maux@users.sourceforge.net> * ggzcore/: ggzcore.h, net.h, netxml.c, room.c, room.h: - separate seat leave from spectator leave 2002-09-06 21:58 Jason Short <jdorje@users.sourceforge.net> * ggzcore/netxml.c: In _ggzcore_net_free, call _ggzcore_net_disconnect if the connection still exists. 2002-09-04 20:49 Josef Spillner <dr_maux@users.sourceforge.net> * ggzcore/: gametype.c, gametype.h, ggzcore.h, net.h, netxml.c, room.c, room.h: - ggzcore interface update: * support for spectators 2002-09-02 00:24 Jason Short <jdorje@users.sourceforge.net> * ggzcore/ggz-config.c: Marked some functions as static. 2002-08-20 22:48 Jason Short <jdorje@users.sourceforge.net> * configure.in: Changed -I<directory> to -isystem<directory> to avoid warnings in gcc3. 2002-08-20 22:44 Jason Short <jdorje@users.sourceforge.net> * acinclude.ggz: Changed -I<directory> to -isystem<directory> to avoid warnings in gcc3. 2002-08-20 04:07 Jason Short <jdorje@users.sourceforge.net> * ggzcore/game.c: "#if 0" out the unused _ggzcore_game_get_path function. 2002-08-07 18:43 Jason Short <jdorje@users.sourceforge.net> * man/ggzcore_h.3.in: Updated ggzcore manpage. 2002-08-07 18:37 Jason Short <jdorje@users.sourceforge.net> * ggzcore/Doxyfile: Doh! Finish updating Doxyfile: - Enable latex output. 2002-08-07 18:36 Jason Short <jdorje@users.sourceforge.net> * ggzmod/Doxyfile: Updated Doxyfile: - Version: 0.0.5pre -> 0.0.6pre - Enabled latex output. 2002-08-07 18:35 Jason Short <jdorje@users.sourceforge.net> * ggzcore/Doxyfile: Updated Doxyfile: -Version: 0.0.5pre -> 0.0.6pre 2002-08-07 17:31 Jason Short <jdorje@users.sourceforge.net> * man/ggzmod_h.3.in: Updated manpage for ggzmod. 2002-08-07 08:31 Jason Short <jdorje@users.sourceforge.net> * ggzmod/: ggzmod.c, ggzmod.h: Changed the ggzmod interface slightly: the GGZMOD_EVENT_SERVER event now passes a pointer to the FD (int*) instead of passing the FD directly (int). This makes it consistent with the rest of the ggzmod and ggzdmod api's, as well as more stable overall. 2002-08-05 14:10 Jason Short <jdorje@users.sourceforge.net> * ggzcore/: conf.c, game.c, ggzcore.h, hook.c, init.c, module.c, net.c, netxml.c, room.c, server.c, state.c, table.c: Changed strings of the form "GGZCORE:XXXX" that are passed to ggz_debug to #definitions in ggzcore.h of the form GGZCORE_DBG_XXXX. This allows client programs (e.g. xyz-client) to pass these values to ggz_debug_init. 2002-08-01 06:53 Jason Short <jdorje@users.sourceforge.net> * configure.in: Exit the configure script if expat-dev is not found; don't just give a warning and continue. This makes the process nearly identical to what is used for ggzd. Note there are a few problems with this system: (1) ggzmod is linked to expat (as the game servers are in ggzd); (2) if we're only compiling ggzmod (or the game servers in ggzd) we shouldn't need expat, and (3) there is no way (that I know of) to compile just ggzmod (without ggzcore). 2002-07-30 09:20 Josef Spillner <dr_maux@users.sourceforge.net> * ggzcore/game.c: - don't send game over event for the state change, since we already send it upon disconnection 2002-06-22 07:13 Brent Hendricks <bmh@users.sourceforge.net> * Makefile.am: - compile ggzmod before ggzcore 2002-06-22 07:13 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: Makefile.am, game.c, game.h, ggzcore.h, module.c: - Link with new ggzmod (handes both sides of client-sde game modules) - Allow for presence of control channel to game client 2002-06-22 07:10 Brent Hendricks <bmh@users.sourceforge.net> * ggzmod/: .cvsignore, Makefile.am, ggzmod.c, ggzmod.h, io.c, io.h, mod.h, protocol.h: - New ggzmod (parallels server-side ggzdmod) with a control channel between the ggz client and game modules 2002-05-15 21:38 Josef Spillner <dr_maux@users.sourceforge.net> * .cvsignore: - silence autoconf's new "autom4te" 2002-05-13 21:03 Josef Spillner <dr_maux@users.sourceforge.net> * configure.in: - more fixes for ac > 2.5 2002-05-11 18:03 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/protocol.h: - Put back GGZ protocol version 2002-05-11 08:02 Rich Gade <rgade@users.sourceforge.net> * ggzcore/ggz-config.c: - ggz-config --check option written to check/repair a ggz.modules file - ggz_conf_get_sections() added to retrieve a list of all sections in a config - ggz_conf_get_keys() added to retrieve a list of all keys in a config section 2002-05-05 23:13 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: game.c, game.h, ggzcore.h, net.h, netxml.c, room.c, server.c, server.h, table.c: - Removed old game data stuff: * Room event GGZ_TABLE_DATA * Game event GGZ_GAME_DATA * ggzcore_room_send_game_data() * ggzcore_game_data_is_pending() * ggzcore_game_read_data() * ggzcore_game_write_data() * ggzcore_game_send_data() * socketpair() for communicating with game module * All <DATA> handling code - New direct game channel mechanism: * New server events: GGZ_CHANNEL_CONNECTED, GGZ_CHANNEL_READY, and GGZ_CHANNEL_FAIL * New function ggzcore_server_create_channel() to create new game channel * New function ggzcore_server_get_channel() to get channel fd * Add fd argument to ggzcore_server_read_data() * New function ggzcore_game_set_fd() * New GGZServer.channel member * New code to send <CHANNEL> * Rename _ggzcore_server_set_logout_status() to _ggzcore_server_session_over() * Pass GGZNet obj to _ggzcore_set_negotiate_status() so we can tell which connection is ready * Don't call _ggzcore_net_disconnect() from <SESSION> handler 2002-05-03 07:45 Jason Short <jdorje@users.sourceforge.net> * configure.in: Bumped the version up to 0.0.6pre. 2002-04-22 21:40 Jason Short <jdorje@users.sourceforge.net> * ggzcore/protocol.h: Moved the list of protocol opcodes out of ggzcore and ggzd and into ggz_common.h in libggz. This may not be their final resting place, but it is at least an improvement over having duplicated code. 2002-04-14 14:55 Josef Spillner <dr_maux@users.sourceforge.net> * .cvsignore: - add configure-stamp 2002-04-13 07:34 Brent Hendricks <bmh@users.sourceforge.net> * ChangeLog: - Updated ChangeLog for 0.0.5 2002-04-13 05:55 Rich Gade <rgade@users.sourceforge.net> * configure.in, ggz-client-libs.spec: - Updated versioning for release - Updated RPM Spec file for 0.0.5 2002-04-13 05:44 Brent Hendricks <bmh@users.sourceforge.net> * AUTHORS, NEWS, QuickStart.GGZ, README, README.GGZ, TODO: - Updated doc files 2002-04-13 03:52 Jason Short <jdorje@users.sourceforge.net> * man/.cvsignore: Added ggzmod_h.3 to .cvsignore. 2002-04-13 03:45 Jason Short <jdorje@users.sourceforge.net> * man/: ggzcore_h.3.in, ggzmod_h.3.in: Updated man files for ggzmod/ggzcore. 2002-04-13 02:43 Josef Spillner <dr_maux@users.sourceforge.net> * Makefile.am: - exclude local clean-rule again - if at all, it should be present in debian/rules - oterwhise, 'make clean' broke sometimes 2002-04-12 22:44 Brent Hendricks <bmh@users.sourceforge.net> * AUTHORS, NEWS, QuickStart.GGZ, README, README.GGZ, TODO: - Updated doc files 2002-04-12 20:52 Jason Short <jdorje@users.sourceforge.net> * man/.cvsignore: Added ggzmod_h.3 to .cvsignore. 2002-04-12 20:45 Jason Short <jdorje@users.sourceforge.net> * man/: ggzcore_h.3.in, ggzmod_h.3.in: Updated man files for ggzmod/ggzcore. 2002-04-12 19:43 Josef Spillner <dr_maux@users.sourceforge.net> * Makefile.am: - exclude local clean-rule again - if at all, it should be present in debian/rules - oterwhise, 'make clean' broke sometimes 2002-04-09 15:15 Josef Spillner <dr_maux@users.sourceforge.net> * debian/: copyright, rules: - finalize ggz-client-libs 2002-04-08 00:54 Jason Short <jdorje@users.sourceforge.net> * ggzmod/ggzmod.h: Added extern "C" declaration to ggzmod.h for c++ compilations. 2002-04-07 17:59 Jason Short <jdorje@users.sourceforge.net> * ggzcore/Makefile.am, ggzmod/Makefile.am: Added Doxyfile to EXTRA_DIST. 2002-04-07 09:36 Josef Spillner <dr_maux@users.sourceforge.net> * debian/: control, rules: - add --include-conffiles to dh_md5sums BUG: There's a bug in this tool, I just sent a patch to joeyh@debian.org. So if you want to build the package on your own, the following patch will help until a new debhelper version is released: --- /usr/bin/dh_md5sums.broken Sun Apr 7 16:10:46 2002 +++ /usr/bin/dh_md5sums Sun Apr 7 16:10:58 2002 @@ -53,7 +53,7 @@ # Check if we should exclude conffiles. my $exclude=""; - if (! $dh{INCLUDE} && -r "$tmp/DEBIAN/conffiles") { + if (! $dh{INCLUDE_CONFFILES} && -r $tmp/DEBIAN/conffiles") { # Generate exclude regexp. open (CONFF,"$tmp/DEBIAN/conffiles"); while (<CONFF>) { 2002-04-07 08:46 Josef Spillner <dr_maux@users.sourceforge.net> * debian/rules: - create MD5 sums with -x (this took me one hour to find out...) 2002-04-07 07:28 Josef Spillner <dr_maux@users.sourceforge.net> * debian/: control, libggzcore1.conffiles: - remove conffiles (they're handled automatically now) - update control file 2002-04-07 06:21 Josef Spillner <dr_maux@users.sourceforge.net> * debian/control: - force old 0.0.4 package libggz-client-libs to be deinstalled 2002-04-06 15:34 Josef Spillner <dr_maux@users.sourceforge.net> * debian/changelog: - fix typo 2002-04-06 15:06 Josef Spillner <dr_maux@users.sourceforge.net> * debian/: .cvsignore, changelog, conffiles, control, copyright, docs, libggzcore-dev.docs, libggzcore-dev.files, libggzcore1.conffiles, libggzcore1.docs, libggzcore1.files, libggzmod-dev.docs, libggzmod-dev.files, libggzmod0.docs, libggzmod0.files, postinst, preinst, prerm, rules, shlibs: - debianizing ggz-client-libs 2002-04-06 14:59 Josef Spillner <dr_maux@users.sourceforge.net> * Makefile.am, configure.in: - addon 2002-04-06 14:59 Josef Spillner <dr_maux@users.sourceforge.net> * man/: Makefile.am, ggz_client_h.3.in, ggzmod_h.3.in: - include local 'make clean' rule - rename ggzmod man page 2002-04-06 09:39 Josef Spillner <dr_maux@users.sourceforge.net> * acinclude.ggz: - sync acinclude.ggz 2002-04-05 16:03 Josef Spillner <dr_maux@users.sourceforge.net> * README.GGZ, QuickStart.GGZ: - update installation instructions and overview 2002-04-04 05:59 Josef Spillner <dr_maux@users.sourceforge.net> * ggzcore/ggz-config.c: - refuse to work on old ggz.modules files. 2002-04-04 03:26 Josef Spillner <dr_maux@users.sourceforge.net> * ggzcore/ggzcore.h: - fix typo: ggzcore_module_get_name (not _game) Funny, this has never been an issue. 2002-03-21 12:14 Jason Short <jdorje@users.sourceforge.net> * ggzcore/: ggzcore.h, net.c, net.h, netxml.c, room.c, room.h: Changed ggzcore_room_leave_table (and all associated backend functions) to take an additional paremeter, "force". If force is specified then we will tell ggzd to force the player to leave the game. 2002-03-21 10:28 Jason Short <jdorje@users.sourceforge.net> * ggzcore/module.c: Fixed a seeming bug that prevents most game modules from being recognized. - Added a check for frontend type to _ggzcore_module_match. Without this, the search function will always match the *first* frontend that is found, which means if you have two modules (gtk and kde) one of them will be found twice. - Removed the unused function _ggzcore_module_compare. - Renamed _ggzcore_module_match_version as _ggzcore_module_compare. It's possible this is not the correct fix, but if so it's still a good temporary fix. 2002-03-19 23:34 Jason Short <jdorje@users.sourceforge.net> * configure.in: s/Debuging/Debugging/ 2002-03-17 08:34 Jason Short <jdorje@users.sourceforge.net> * ggzcore/module.c: Put _ggz_free_chars() BEFORE the return NULL, so that it will actually get called and we won't leak memory. 2002-03-17 07:47 Josef Spillner <dr_maux@users.sourceforge.net> * ggzcore/module.c: - fix module counter - OK, 2 out of 3 bugs in ggzcore are now fixed. The 3rd one is more difficult and goes on to the list... 2002-03-17 07:22 Josef Spillner <dr_maux@users.sourceforge.net> * ggzcore/module.c: - apply the I-know-you-have-a-game-but-it-has-got-the-wrong-version patch - must still be implemented in ggz-gtk 2002-03-16 15:38 Jason Short <jdorje@users.sourceforge.net> * ggzcore/game.c: Fix hideously unlikely buffer overflow scenario in _ggzcore_game_read_data. 2002-03-02 15:15 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: Makefile.am, conf.c, game.c, gametype.c, ggzcore.h, hook.c, init.c, module.c, msg.c, msg.h, net.c, netxml.c, player.c, room.c, server.c, state.c, table.c: - Convert ggzcore to use libggz's debugging facility - Removed debug file option from ggzcore. Clients should use ggz_debug() directly 2002-02-27 21:28 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/table.c: - Trigger GGZ_TABLE_EVENT when seat change occurs 2002-02-27 20:57 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/netxml.c: - When handling seta updates, don't call table_set_seat() if the type is NONE (the default), otherwise all of the seats the server didn't specify will become none 2002-02-26 12:49 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: netxml.c, room.c, table.c, table.h: - Changed _ggzcore_table_set_seat() to accept a GGZSeat* - Removed unnecessary GGZSeatData structure in favor of GGZSeat - Reworked <UPDATE> handler code: * Split out functionality into _ggzcore_net_[player,table]_update() * Do some sanity checking for table updates (make sure room/table exist) * Handle case where server sends multiple seats on a join or leave * Handle table "seat" updates - When handling <TABLE>, initialize seats to NONE - Don't call _player_init() on local player variables in player.c (fixes memory leak) - Removed _ggzcore_table_remove_player(). ggzcore internals can just call _ggzcore_table_set_seat() 2002-02-26 10:56 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/module.c: - Fixed several memory leaks. The stuff read from ggz.modules wasn't being freed. Oops. 2002-02-24 14:02 Rich Gade <rgade@users.sourceforge.net> * ggzcore/: ggzcore.h, net.h, netxml.c, server.c, server.h: - Initial checkin of TLS patches to ggz-client-libs - seems OK, a few tweaks - Bugfix to netxml.c to check if server announced TLS at all - making this backwards compatible with TLS ignorant servers! 2002-02-23 11:12 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: net.h, netxml.c, room.c, room.h, table.c: - Fixed bug with sending table desc updates: we need to send the string description to net_send_XXX() directly, not as part of the table structure - Reworked the way joins and leaves are handled to call _ggzcore_table_set_seat() directly, which then notifies the room (if the table is in a room) that a player has changed their table. - Rework table state changes the same way. 2002-02-20 20:25 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: ggzcore.h, net.h, netxml.c, protocol.h, room.c, room.h, table.c, table.h: - Changes necessary to implement table update protocol addition - New function ggzcore_table_set_desc() - When called on an active table, ggzcore_table_set_desc() and ggzcore_table_set_seat() don't perfomr the changes immediately, but send a message to the server - Tables have pointers to their respective rooms now - Increment protocol version to 6 2002-02-15 21:08 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: ggzcore.h, table.c, table.h: - Use GGZTableState for table->state - Slight API change: ggzcore_table_get_state now returns GGZTableState 2002-02-15 00:45 Jason Short <jdorje@users.sourceforge.net> * ggzcore/room.c: - Added handling for E_ROOM_FULL to _ggzcore_room_set_table_launch_status. - For the default case in the handling of a launch, join, or leave, build a string dynamically that contains the error status. Does it make sense to have a handler for _every_ case in _every_ function? Probably not, since many of the cases could never conceivably happen. But it would prevent having to add a new case every couple of weeks... 2002-02-08 14:32 Jason Short <jdorje@users.sourceforge.net> * ggzcore/: ggzcore.h, net.c, netxml.c, room.c, table.c, table.h: Created new ggzcore function ggzcore_table_set_seat. - Removed functions ggzcore_table_add_player, ggzcore_table_add_bot, and ggzcore_table_add_reserved. Added function ggzcore_table_set_seat in their stead. ggzcore_table_set_seat checks the parameters, then passes off the work to a backend function. Note it is no longer valid to set a seat to GGZ_SEAT_PLAYER, so add_player functionality has been removed. - In the backend, I removed functions _ggzcore_table_add_player, _ggzcore_table_add_bot, and _ggzcore_table_add_reserved, replacing them with (you guessed it) _ggzcore_table_set_seat. - I changed the ordering of the parameters for ggzcore_table_set_seat (as opposed to its predecessors). - I changed _ggzcore_table_remove_player to use _ggzcore_table_set_seat to do the actual work of changing the seat. I also slightly changed the internal structure of this function. - In the net code, I changed several places that called _ggzcore_table_add_*** to instead use _ggzcore_table_set_seat, simplifying them in the process. - There were also a few (I think one) other places where _ggzcore_table_set_seat substituted in directly for _ggzcore_table_add_***. - Finally, I added doxygen documentation for ggzcore_table_set_seat. All of this is described in more detail (with the complete diff) on ggz-dev. 2002-02-08 14:08 Jason Short <jdorje@users.sourceforge.net> * ggzcore/room.c: Added handling (an extra case in _ggzcore_room_set_table_join_status) for E_NO_PERMISSION error on table join. 2002-02-02 19:15 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/room.c: - Handle E_NO_PERMISSIONS on table launch 2002-02-02 01:57 Jason Short <jdorje@users.sourceforge.net> * ggzcore/room.c: Add handling for the E_TABLE_FULL case when a player tries to join a full table (normally we don't send such requests to ggzd, but with reserved seats we might). It would also be good to catch the error ourselves before sending the join request to ggzd: we can check to see if a seat is actually reserved for us. But that can be done later... 2002-01-31 22:39 Jason Short <jdorje@users.sourceforge.net> * ggzcore/: ggzcore.h, table.c, table.h: - Replaced ggzcore_table_get_num_open and ggzcore_table_get_num_bots with ggzcore_table_get_seat_count. The new function takes the _type_ of the seat (a GGZSeatType), so it provides the same functionality as the first two plus is able to count reserved (and potentially other) seat types as well. - Replaced _ggzcore_table_get_num_open and _ggzcore_table_get_num_bots with _ggzcore_table_get_seat_count. Same as above, only this does the actual backend work. - Added Doxygen documentation for ggzcore_table_get_seat_count. 2002-01-23 21:59 Jason Short <jdorje@users.sourceforge.net> * ggzcore/netxml.c: Use ggz_seattype_to_string and ggz_string_to_seattype to convert between text (xml) and GGZSeatType values. This is surely more robust than doing it manually... 2002-01-23 11:54 Jason Short <jdorje@users.sourceforge.net> * ggzcore/ggzcore.h: Added documentation for some elements. 2002-01-22 23:33 Jason Short <jdorje@users.sourceforge.net> * ggzcore/server.c: Removed "#include <eashsock.h>". 2002-01-19 22:09 Brent Hendricks <bmh@users.sourceforge.net> * acconfig.h, configure.in: - Check for PF_LOCAL, and if it's not there, define it to PF_UNIX 2002-01-19 01:46 Brent Hendricks <bmh@users.sourceforge.net> * .cvsignore: - Ignore stamp-h1 2002-01-19 01:45 Brent Hendricks <bmh@users.sourceforge.net> * configure.in: - Don't use acinclude.ggz as source file since it's not a real distributed source file 2002-01-19 01:45 Brent Hendricks <bmh@users.sourceforge.net> * acinclude.ggz: - Removed references to easysock, since that lib is gone - When checking for LIBGGZ, also look in the specified prefix dir 2002-01-18 23:32 Brent Hendricks <bmh@users.sourceforge.net> * configure.in, ggzcore/game.c, ggzcore/net.c, ggzcore/netxml.c: - Use easysock functions in new libggz and remove dependency on easysock 2002-01-13 23:53 Jason Short <jdorje@users.sourceforge.net> * ggzcore/Makefile.am, ggzcore/ggz_client.h, ggzcore/ggzcore.h, ggzmod/Makefile.am, ggzmod/ggzmod.h: Removed ggz_client.h; changed code to use ggz_common.h from libggz to get the GGZSeatType enum from. 2002-01-13 17:41 Jason Short <jdorje@users.sourceforge.net> * ggzcore/Makefile.am, ggzcore/ggz_client.h, ggzcore/ggzcore.h, ggzmod/Makefile.am, ggzmod/ggzmod.h: Moved GGZSeatType enumeration out of ggzmod.h and ggzcore.h, creating a new header file ggz_client.h that is included by both of them. In theory there might be more code that can go into this file. It may eventually become worthwhile to move it into its own directory area. For now, though, I've just left it in the ggzcore directory and modified ggzmod to link to it there. Also, I remaned GGZ_SEAT_RESV to GGZ_SEAT_RESERVED to match what ggzcore had for the enumeration. 2002-01-13 16:59 Jason Short <jdorje@users.sourceforge.net> * ggzcore/module.c: #if 0'd out unused functions so we don't get a compiler warning. 2002-01-12 12:42 Jason Short <jdorje@users.sourceforge.net> * .cvsignore: Added acinclude.m4 to .cvsignore. 2002-01-12 04:28 Jason Short <jdorje@users.sourceforge.net> * autogen.sh, configure.in: Switch to using acinclude.ggz to check for easysock (do we even need easysock???) and libggz. 2002-01-12 04:12 Jason Short <jdorje@users.sourceforge.net> * acinclude.ggz: Added acinclude.ggz to ggzd and ggz-client-libs. 2002-01-12 03:37 Jason Short <jdorje@users.sourceforge.net> * ggzcore/conf.c: Fixed some or all free() calls on data returned by ggz_conf_***. 2002-01-11 15:15 Jason Short <jdorje@users.sourceforge.net> * ggzcore/ggzcore.h: Added doxygen comments for some elements. 2002-01-08 16:47 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: Makefile.am, conf.c, confio.c, confio.h, ggz-config.c, ggzcore.h, init.c, module.c: - Use conffile reading facility provided with libggz 2002-01-08 13:58 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: Makefile.am, confio.c, game.c, gametype.c, ggzcore.h, hook.c, init.c, memory.c, memory.h, module.c, net.c, netxml.c, player.c, room.c, server.c, table.c: - Use libggz memory management functions 2002-01-08 13:21 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: Makefile.am, confio.c, confio.h, gametype.c, lists.c, lists.h, module.c, net.c, netxml.c, player.c, player.h, room.c, room.h, server.c, table.c: - Use libggz list implementation 2002-01-08 12:54 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: Makefile.am, net.h, netxml.c, stack.c, stack.h, xmlelement.c, xmlelement.h: - Use libggz's implementation of stack and xmlelement 2001-12-18 01:56 Jason Short <jdorje@users.sourceforge.net> * configure.in: Added check for libggz to ggz-client-libs autoconf process. 2001-12-17 04:46 Jason Short <jdorje@users.sourceforge.net> * Doxyfile, ggzcore/.cvsignore, ggzcore/Doxyfile: Made a separate ggzcore Doxyfile; removed the ggz-client-libs "global" Doxyfile. 2001-12-17 04:30 Jason Short <jdorje@users.sourceforge.net> * ggzmod/: .cvsignore, Doxyfile: Made ggzmod-specific Doxyfile (doxygen config file). To make the documentation, run "doxygen Doxyfile". 2001-12-17 01:25 Jason Short <jdorje@users.sourceforge.net> * ggzmod/: .cvsignore, Makefile.am, ggz.c, ggz_client.h, ggzmod.c, ggzmod.h: Brought ggzmod in line with the naming conventions used by ggzdmod: - Renamed files to ggzmod.c and ggzmod.h. - Renamed functions to use ggzmod prefix. - Renamed ***_get_***_sock functions to ***_get_***_fd. - Changed (hopefully) all references to these names in the comments. This will make every game client in existence stop compiling, but it should be a one-time change. 2001-12-11 01:16 Jason Short <jdorje@users.sourceforge.net> * ggzcore/ggzcore.h, ggzmod/ggz_client.h: Ugh. Not only are the GGZSeatType enumeration values provided by ggzmod, they're provided by ggzcore as well. This means that not only do they conflict with a game's local definitions (which is good), they also conflict with each other. A temporary solution is to put each enumeration within an appropriate #ifdef check, so that things will compile. I'm not sure what the right long-term solution would be. I don't think it's right for games to be encouraged to #include <ggzcore.h>, but the enumerations belong there more than than do in ggzmod. Perhaps another header file, <ggz_client_common.h>, could be #included from both ggzcore.h and ggzmod.h? But unless there was more than one enumeration in the file, it wouldn't be worth it. 2001-12-11 00:21 Jason Short <jdorje@users.sourceforge.net> * ggzmod/ggz_client.h: Changed GGZdModSeat to GGZSeatType. 2001-12-10 16:30 Jason Short <jdorje@users.sourceforge.net> * ggzmod/ggz_client.h: Added GGZdModSeat enumeration (containing the seat status values) to ggzmod. Every game we have now uses these values. As such, they should definitely be included in ggzmod. This isn't a great permanent solution because they'll still be duplicated between ggzmod and ggzdmod. This will cause existing game to fail to compile, but that's easily fixed. 2001-11-17 02:05 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/netxml.c: - Explicitly handle </SESSION> tag so we can differentiate between the server correctly ending the session and just plain disconnecting - Trigger error if server disconnects without warning - Don't try to parse any more if server disconnects 2001-11-17 01:45 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/netxml.c: - Renamed net_send_xmldec to net_send_header and have it send the <SESSION> tag too - Call net_send_header as soon as we successfully receive the <SERVER> tag, not from net_send_login(). This prevents it from getting sent on successive login attempts (ie. if you mistype the password, etc) 2001-11-17 01:22 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: netxml.c, protocol.h: - Handle new error code: E_BAD_XML 2001-11-04 16:58 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/netxml.c: - Slightly better handling of case where server returns a protocol error, at least it returns a more descriptive error message :) 2001-11-02 19:43 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/netxml.c: - New function _ggzcore_net_send_xmldec() to send XML declaration (with encoding string) - For now always send ISO-8859-1 encoding. In the future we should allow frontends to set a different encoding and then translate nack to it from what the server sends 2001-10-17 10:20 Josef Spillner <dr_maux@users.sourceforge.net> * ggzcore/room.c: - fix my stupid fix - note: for the future it may be better to remove the ggzcore_strdup warnings, but it must be tested first that no unexpected NULL pointers are given to it, so I let it in for now 2001-10-15 18:44 Justin Zaun <jzaun@users.sourceforge.net> * ggzcore/: ggzcore.h, netxml.c, player.c, player.h, room.c, room.h: - Added lag ability. This adds a new room event GGZ_PLAYER_LAG and a new function int ggzcore_player_get_lag(GGZPlayer *player) 2001-10-13 15:13 Josef Spillner <dr_maux@users.sourceforge.net> * ggzcore/room.c: - don't try to duplicate room description if it's not present (i.e. if called by list_rooms(-1, 0) from the client) 2001-10-08 19:04 Rich Gade <rgade@users.sourceforge.net> * ggzcore/netxml.c: - Phase one of lag tracking protocol 2001-10-07 04:15 Josef Spillner <dr_maux@users.sourceforge.net> * ggzcore/: netxml.c, protocol.h: - get protocol in sync with server - inform user if /wall is not allowed 2001-09-28 22:15 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/netxml.c: - default player type to NONE if type isn't specified by server - don't try to compare type strings if server didn't send one 2001-09-23 21:28 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: net.h, netxml.c, protocol.h, room.c: - Use XML-based protocol for client->server communication: - Lots of net_send_XXX() functions now send XML protocol - Copied net_send_line() and _net_send_string() from ggzd code - New function _net_disconnect() to force network disconnect - For sending table data (for a launch), pass the table pointer to net_send_table_launch() rather than separate parameters 2001-09-23 21:25 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: ggzcore.h, server.c, server.h: - Added new function ggzcore_server_disconnect() to force a disconnect (if logout doesn't work) 2001-09-23 14:10 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/netxml.c: - Clear net->parsing flag if we encounter EAGAIN due to non-blocking socket, otherwise we'll never get to parse again 2001-09-16 16:16 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: Makefile.am, net.h, netxml.c, protocol.c, protocol.h: - Moved functions from protocol.c into netxml.c to simplify processing and cut down on unnecessarily compilating things - Removed various access functions for GGZNet that only exited because the protocol functions were in a separate file 2001-09-15 21:12 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: net.c, net.h, netxml.c, protocol.c, protocol.h, xmlelement.c, xmlelement.h: - XML handling cleanup: - Store attributes/values in a list in GGZXMLElement - Allow pointer to ancillary data in GGZXMLElement - Get rid of most tag-specific structures in favor of accessing the attributes in GGZXMLElement - Remove unnecessary new/free functions for structures that no longer exist - Don't always pass the parent tag to the handler. Let them get it if they need it - Use "handle" instead of "process" in many places - Move old Server->Client opcodes from protocol.h into net.c 2001-09-14 22:22 Rich Gade <rgade@users.sourceforge.net> * ggzcore/confio.c: - Thoroughly unnecessary NULL initializations added to avoid a warning 2001-09-14 21:51 Rich Gade <rgade@users.sourceforge.net> * ggzcore/: lists.c, lists.h: - Track number of list entries - _ggzcore_list_count() returns number of list entries 2001-09-14 18:19 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: ggzcore.h, player.c, player.h, protocol.c, room.c, room.h: - Added type information to GGZPlayer: GGZ_PLAYER_XXXX where XXXX is one of NONE, NORMAL, GUEST, or ADMIN - New function ggzcore_player_get_type() to access this - Set player type information based on TYPE attribute from server 2001-09-14 16:19 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/protocol.c: - When receiving a list or an update, modify the room it refers to, rather than the current room 2001-09-14 07:42 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/Makefile.am: - Don't list netxml.h as source file since it doesn't exist - Delete commented out net.c - Uncomment reference to net.h since we still use that 2001-09-13 18:57 Jason Short <jdorje@users.sourceforge.net> * configure.in, man/.cvsignore, man/ggzcore_h.3.in: Added man file for ggzcore (from doxygen documentation). 2001-09-13 18:47 Jason Short <jdorje@users.sourceforge.net> * ggzcore/ggzcore.h: Updated some existing ggzcore documentation to be doxygen-style. 2001-09-13 18:13 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/netxml.c: - Set a flag in net_read_data() to indicate that we're currently processing XML data so that if we get called recursively we don't try to start parsing again. 2001-09-13 17:42 Jason Short <jdorje@users.sourceforge.net> * .cvsignore, Doxyfile: Created a default Doxyfile for creating doxygen documentation. To create the documentation, run "doxygen" within the top level directory. Currently the files ggz_client.h and ggzcore.h are indexed; the documentation created is for both ggzmod and ggzcore. In the future this could be changed. It may also be wise later to have the documentation itself be a part of CVS (either in this module or the docs module), although it is about 90k in size. 2001-09-10 19:42 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: ggzcore.h, net.h, netxml.c, server.c, server.h: - New function ggzcore_server_log_session() allows you to specify a file to log the communications from this server 2001-09-10 13:04 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/xmlelement.c: - Use ggzcore_malloc/realloc/free for allocating space for the XML tag text now that the realloc bugs appear to be fixed 2001-09-10 12:15 Rich Gade <rgade@users.sourceforge.net> * ggzcore/memory.c: - Removed a redundant variable from _ggzcore_realloc() - a leftover from days prior to _ggzcore_alloc/_ggzcore_free - Fixed the stupid assumptions that new size will always > old size! 2001-09-10 11:19 Rich Gade <rgade@users.sourceforge.net> * ggzcore/memory.c: - Fixed a major stupidity in _ggzcore_realloc() 2001-09-08 18:28 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: xmlelement.c, xmlelement.h: - Dynamically allocate buffer for holding element text instead of having a fixed buffer size (which tends to crash when things overflow it....) 2001-09-07 23:15 Brent Hendricks <bmh@users.sourceforge.net> * configure.in, ggzcore/Makefile.am: - Check for expat lib and headers 2001-09-07 22:26 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: Makefile.am, ggzcore.h, msg.c, net.h, netxml.c, protocol.c, protocol.h, room.c, server.c, stack.c, stack.h, xmlelement.c, xmlelement.h: - New XML-based protocol! - Various files to support the new protocol 2001-09-02 23:29 Rich Gade <rgade@users.sourceforge.net> * ggzcore/: confio.c, ggzcore.h: - ggzcore_confio_parse() now returns an existing handle if the same path is reopened - ggzcore_confio_close() implemented - closes a single handle 2001-09-01 11:37 Josef Spillner <dr_maux@users.sourceforge.net> * ggzcore/server.c: - don't free unallocated memory - this affects only very rare cases, and I'll track down why at all I get a network error after login 2001-08-26 06:01 Jason Short <jdorje@users.sourceforge.net> * ggzmod/ggz_client.h, man/ggz_client_h.3.in: Added substantially more documentation to the header file: taken directly out of the current GGZ readme (but updated). 2001-08-25 17:43 Jason Short <jdorje@users.sourceforge.net> * man/.cvsignore: Fixed typo in previous commit. 2001-08-25 17:36 Jason Short <jdorje@users.sourceforge.net> * configure.in, man/.cvsignore, man/Makefile.am, man/ggz_client_h.3.in: Added manfile for ggz_config_h automatically generated by doxygen. Issues: - Should this be dynamically generated? - Should we have manpages for each function? 2001-08-25 16:34 Jason Short <jdorje@users.sourceforge.net> * ggzmod/ggz_client.h: Fixed inconsistencies in last commit. 2001-08-25 16:30 Jason Short <jdorje@users.sourceforge.net> * ggzmod/ggz_client.h: Added a lot more doxygen-style documentation. Even without doxygen, having such documentation in the header file is probably a good idea. 2001-08-25 14:57 Jason Short <jdorje@users.sourceforge.net> * ggzmod/: ggz.c, ggz_client.h: Several cleanups and changes: - I renamed all the ggzmod_*** functions to ggz_***. - I added a new function, ggz_get_udp_sock() to return a UDP socket for communicating with the game server (currently returns -1). - I added more comments to ggz_client.h. - I cleaned up a bit of the code in ggz.c. 2001-08-24 16:16 Jason Short <jdorje@users.sourceforge.net> * ggzcore/msg.c: Added necessary stdlib.h to #includes. 2001-08-23 17:16 Jason Short <jdorje@users.sourceforge.net> * ggzmod/: ggz.c, ggz_client.h: Bigger cleanup to ggzmod: - Changed naming convention to ggzmod_***. - Removed ggzmod_initialize. - Changed ggzmod_quit to ggzmod_disconnect. This will temporarily break gtk-games. 2001-08-23 17:08 Jason Short <jdorje@users.sourceforge.net> * ggzmod/: ggz.c, ggz_client.h: More small cleanups for ggzmod. Mostly I've made the formatting consistent with ggzdmod. 2001-08-23 17:01 Jason Short <jdorje@users.sourceforge.net> * ggzmod/ggz_client.h: Slight cleanup go ggz_client.h. 2001-08-19 15:01 Jason Short <jdorje@users.sourceforge.net> * ggzcore/game.c, ggzmod/ggz.c: Changed ggz-client <-> game client connection code to use sockets generated by socketpair() rather than unix domain (file) sockets. This has a number of good effects - mostly it's less error-prone (errors can be caught immediately) and faster (there's no waiting for the socket to be connected to). The code is also cleaner. File descriptor #3 is used for the connection. This means that ggz-client-libs must close FD 3 before executing the game client, and copy (dup2) the socket's FD over to FD 3. A major problem with this is that after FD 3 has been closed, no more log/debugging messages can safely be sent, since they may get across the now-closed socket. This is "solved" just by not sending any such messages after the FD is closed. libggzmod is changed to use the new protocol as well. Mostly this just required removing a bunch of now-useless code; libggzmod is now nearly empty. Note, though, that any game clients that don't use libggzmod (i.e. all of them) will be completely broken by this change. They should be easy to upgrade. 2001-08-05 05:28 Josef Spillner <dr_maux@users.sourceforge.net> * ggzcore/: Makefile.am, msg.c: - change libtool version - don't crash if debug file argument is a NULL pointer 2001-08-01 00:54 Jason Short <jdorje@users.sourceforge.net> * ggzmod/ggz_client.h: Committed my current doxygen documentation. 2001-07-22 00:51 Jason Short <jdorje@users.sourceforge.net> * ggzmod/ggz.c: Another small cleanup, this time in ggz_client_connect. Manual null-termination of fd_name is not needed, since snprintf will assure that it is null-terminated. Also, I added a comment about a potential bug. Since fd_name is a fixed length, in the (currently impossible) event that the file name for the unix domain socket is too long the name will be cut short. This will result in ggz_client_connect silently failing and the game will most likely hang. The "right" way to do this would be to determine the string length dynamically, but this would make the code slightly uglier. 2001-07-22 00:40 Jason Short <jdorje@users.sourceforge.net> * ggzmod/ggz.c: Cleaned up ggz_client_init(), replacing strlen/malloc/strcpy with a single strdup. (If there was a reason for the former method, a comment to that effect would be in order.) 2001-07-22 00:28 Jason Short <jdorje@users.sourceforge.net> * ggzmod/ggz.c: Fixed a tiny bug by initializing ggz_sock to -1. Note that previously, the return value of ggz_client_get_sock() will be undefined if it is called before ggz_client_init(). 2001-07-17 11:13 Jason Short <jdorje@users.sourceforge.net> * ggzmod/.cvsignore: Added .cvsignore file to ignore extra files - at least the ones built on my system. 2001-07-16 22:31 Jason Short <jdorje@users.sourceforge.net> * Makefile.am, configure.in, ggzmod/Makefile.am: Fixed things up so ggzmod should be installed as a shared library. - Added ggzmod/Makefile to configure.in. - Added ggzmod as a subdirectory to Makefile.am. - Chamged ggzmod/Makefile.am to compile/install libggzmod.la, very similar to the easysock installation. Note: previously, ggzmod/Makefile.am was compiling ggzmod as "libggz" instead of "libggzmod". I felt that this was definitely very misleading, so to keep it in line with libggzcore I changed it. The same thing should be done to libggzdmod at the server end. I left the header file as "ggz_client.h" although "ggz_client_mod.h" or something like that might be more appropriate. 2001-07-15 01:11 Jason Short <jdorje@users.sourceforge.net> * ggzcore/module.c: Fixed bug/typo preventing the one-module multiple-games system from working. Also, I added a comment in place of future code to make sure the game being played is included in the game list for the module. 2001-07-14 15:22 Josef Spillner <dr_maux@users.sourceforge.net> * .cvsignore: - add build-stamp to files to ignore 2001-07-14 15:04 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: net.c, protocol.h: - Bumped protocol version 4 - Read protocol engine and version information from RSP_LIST_TYPES message - Initialize gametye object with actual protocol engine and version information, not just resuing name and version 2001-07-13 23:48 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: easysock.c, easysock.h: - Remove old easysock files from when we used to build it as part of ggzcore 2001-07-13 22:34 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: game.c, gametype.c, gametype.h, ggzcore.h, module.c, module.h, net.c: - Parse new ggz.modules format - Everywhere where we used to handle a gametype's (or module's) protocol, we now handle protocol engine, and procotol version - Temporarily use gametype's name and version for protocol engine and version since the client/server protocol hasn't been updated yet 2001-07-13 17:36 Jason Short <jdorje@users.sourceforge.net> * ggzcore/net.c: Fixed bug #435249: too-long chat messages causes disconnect. Now ggzcore will not send more than the appropriate number of characters, as determined by server->net->chat_size. To do this without changing the message buffer, a new buffer is created and the string is copied over with snprintf (safely; there won't be any problem with %'s). At a future time, it may be desirable to have the ggzcore code automatically split up the message buffer and send multiple chat packets. This would make things easier on the writers of client frontends (who may wish to do this anyway), but would make it slightly easier for malicious or stupid clients to flood the system. 2001-07-12 22:06 Rich Gade <rgade@users.sourceforge.net> * configure.in, ggzcore/ggz-config.c: - Updated version to 0.0.5pre - Changes to ggz-config * Removed command line module generation support * Changed 'fromfile' to the more descriptive 'modfile' * Stricter error checking on the input modfile * Added additional lines to ggz.modules generation: ProtocolEngine (rqd) ProtocolVersion (rqd) SupportedGames (opt) * Removed 'Protocol' line from ggz.modules * ggz.modules is now using an *Engines* list of engine names * Engine names point to a list of [p#] protocol engine ids * Added support to query the core protocol version (--protocol, -p) 2001-06-18 17:30 Ricardo Quesada <riq@users.sourceforge.net> * ggzmod/Makefile.in: makefile.in is not needed 2001-06-18 17:28 Ricardo Quesada <riq@users.sourceforge.net> * ggzmod/: Makefile.am, Makefile.in, ggz.c, ggz_client.h: libggzmod for the client. 2001-06-17 21:46 Rich Gade <rgade@users.sourceforge.net> * ggz-client-libs.spec: - .spec file updates - these were actually necessary for 0.0.4, but as they aren't part of the distros they needn't be tagged as such 2001-06-17 15:42 Rich Gade <rgade@users.sourceforge.net> * ChangeLog: - Updated ChangeLog 2001-06-14 16:55 Brent Hendricks <bmh@users.sourceforge.net> * NEWS: - Wrote a new NEWS file for 0.0.4 2001-06-14 03:13 Brent Hendricks <bmh@users.sourceforge.net> * ggz-client-libs.spec: - Bump version to 0.0.4 2001-06-14 03:12 Brent Hendricks <bmh@users.sourceforge.net> * INSTALL, Makefile.am, NEWS, QuickStart.GGZ, README.GGZ, configure.in: - Updated docs - Bump version to 0.0.4 - Include docs in dist 2001-06-02 15:25 Josef Spillner <dr_maux@users.sourceforge.net> * configure.in: - find new easysock version 2001-06-01 21:50 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/state.c: - When a table leave fails, transition from LEAVING_TABLE back to AT_TABLE, rather than IN_ROOM 2001-05-30 14:42 Josef Spillner <dr_maux@users.sourceforge.net> * debian/: postinst, preinst: - suppress warnings 2001-05-30 14:38 Josef Spillner <dr_maux@users.sourceforge.net> * debian/: conffiles, postinst, preinst: - handle ggz.module file better - new policy is: preserve if existing on install; preserve if existing on remove; remove on purge 2001-05-30 08:23 Josef Spillner <dr_maux@users.sourceforge.net> * debian/: .cvsignore, README.Debian, changelog, control, copyright, docs, postinst, prerm, rules, shlibs: - debianized source tree 2001-05-28 16:11 Rich Gade <rgade@users.sourceforge.net> * Makefile.am, configure.in, man/.cvsignore, man/Makefile.am: - man pages are now installed - man pages included in distribution package 2001-05-28 15:52 Rich Gade <rgade@users.sourceforge.net> * configure.in, man/.cvsignore, man/ggz.modules.5.in: - Added man page for ggz.modules configuration file 2001-05-25 00:10 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/module.c: - Implement _ggzcore_module_get_num_by_type() and _ggzcore_module_get_nth_by_type(). They may not be the most efficient, but they work for now 2001-05-22 00:11 Rich Gade <rgade@users.sourceforge.net> * man/.cvsignore: - Ignore fact that ggz-config.6 isn't in CVS 2001-05-22 00:09 Rich Gade <rgade@users.sourceforge.net> * configure.in, man/ggz-config.6.in: - Added man page for ggz-config(6) 2001-05-20 16:49 Rich Gade <rgade@users.sourceforge.net> * README: - Rewrote README file as a summary/introduction rather than rehashing the info already in README.GGZ 2001-05-20 15:55 Rich Gade <rgade@users.sourceforge.net> * README.GGZ: - Added additional documentation for ggz-config 2001-05-20 14:46 Rich Gade <rgade@users.sourceforge.net> * README, README.GGZ: - Moved full README file to README.GGZ - Keep only ggz-client-libs info in README 2001-04-30 23:45 Rich Gade <rgade@users.sourceforge.net> * README: - Draft README file - complete instructions on installing the client, including easysock, ggz-client-libs, clients and games. 2001-04-24 11:35 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/Makefile.am: - Rename target for ggz.module from sysconf_DATA to ggzconf_DATA: * in case we ever make it a subdir, this keeps it in the right place * as an added benefit, 'make install-exec' will not overwrite the ggz.modules file now. 2001-04-24 11:27 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/server.c: - Free old handle and password before replacing with new ones: - Fixes a memory leak 2001-04-24 00:07 Rich Gade <rgade@users.sourceforge.net> * ggzcore/net.c: - Applied Riq's patch for Freeciv compatibility 2001-04-22 23:52 Rich Gade <rgade@users.sourceforge.net> * ggzcore/lists.c: - Eliminated memory leak when overwriting a list node with a new value 2001-04-14 00:35 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/room.c: - Check server state before proceeding with a launch, join, or leave 2001-04-08 16:25 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: game.c, module.c: - Added stubs for ggzcore_game_join(), _ggzcore_game_join(), and ggzcore_module_add() 2001-04-07 11:24 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: room.c, server.c: - Handle E_LEAVE_FORBIDDEN error - Corrected default leave error (uses to say "launch error") - Don't send a room change request if we aren't in state LOGGED_IN or IN_ROOM - Added default error handlre for login failures - Added default error handlre for room join failures - Handle E_ROOM_FULL error 2001-03-28 01:31 Rich Gade <rgade@users.sourceforge.net> * ggz-client-libs.spec: - Fixed RPM spec files to properly install shared libs 2001-03-27 23:44 Rich Gade <rgade@users.sourceforge.net> * configure.in, ggz-client-libs.spec: - Corrected package name (ggzcore is only a part of ggz-client-libs) - Added ggz-client-libs.spec RPM specifications 2001-03-27 23:32 Rich Gade <rgade@users.sourceforge.net> * HACKING, TODO: - Copied HACKING and TODO over from old ggz sources 2001-03-27 00:48 Brent Hendricks <bmh@users.sourceforge.net> * configure.in: - Depend on easysock 0.2.X 2001-03-26 20:49 Brent Hendricks <bmh@users.sourceforge.net> * .cvsignore, AUTHORS, COPYING, ChangeLog, INSTALL, Makefile.am, NEWS, README, acconfig.h, autogen.sh, configure.in, ggzcore/Makefile.am: - Added necessary autoconf/automake files - Changed ggzcore's Makefile.am to remove the extra EASYSOCK variables since they will now be included in $LDADD 2001-03-20 09:55 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: game.c, game.h, module.c: - Wrote _ggzcore_game_dead() to handle dead game module processes so we don't get zombies - Setup signal handler for SIGCHLD in _ggzcore_module_setup() 2001-03-17 00:20 Rich Gade <rgade@users.sourceforge.net> * ggzcore/ggz-config.c: - Added --datadir argument to query GGZDATADIR 2001-03-17 00:09 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: .cvsignore, Makefile.am, TODO: - Converted libggzcore into a libtool shared library - Converted the included libeasysock into a non-installed libtool convenience library - Various Makefile changes to support the above 2001-03-16 21:15 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: game.c, ggzcore.h, module.c, module.h: - Removed GGZModule.path in favor of GGZModule.argv, allowing us to store a complete command line in case some modules require specific arguments - Read in GGZModule.argv from "CommandLine" in the ggz.modules file 2001-03-16 20:57 Rich Gade <rgade@users.sourceforge.net> * ggzcore/confio.c: - Have read_list use calloc to allocate the pointer list so they are NULL 2001-03-16 20:45 Rich Gade <rgade@users.sourceforge.net> * ggzcore/ggz-config.c: - ExecPath -> CommandLine 2001-03-15 19:04 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/room.c: - In ggzcore_room_join_table(), don't compare the table ID with the number of table in the room. This comparison is meaningless. This should fix the "can't join tables other than 0" bug Justin found - Handle E_NO_TABLE error condition - Handle unknown table error conditions 2001-03-15 18:50 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: ggzcore.h, net.c, room.c, room.h, server.c, server.h, state.c: - New functions _ggzcore_server_set_table_{launching, joining, leaving}() so that the room can notify the server of these events. There should be a better way to do this.... - Have the room tell the server every time the table status changes - Move table related events to the room since they're really room specific, not server specific 2001-03-15 16:39 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: Makefile.am, net.c: - 'make dist' fixes: - Mark ggz.modules as EXTRA_DIST so it gets distributed - net.c should #include <easysock.h>, not "easysock.h" 2001-03-14 22:17 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/net.c: - Call _ggzcore_net_error() from inside most functions in net.c. _ggzcore_net_error() will then call _ggzcore_server_net_error() 2001-03-14 22:14 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: net.c, server.c, server.h: - New stub server functions for setting status of room_join, table_launch, join, and leave - Call _ggzcore_server_set_room_join_status() from net.c - Do room monitoring shift in _ggzcore_server_set_room() 2001-03-14 21:32 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: net.c, server.c, server.h: - New function _ggzcore_server_set_login_status() - Call _ggzcore_server_set_login_status() from GGZNet handlers for the various login types 2001-03-14 21:05 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: TODO, net.c, server.c, server.h: - Make all _ggzcore_net_read_XXX() functions take a GGZNet object as their first parameter, not a fd - New function _ggzcore_server_set_negotiate_status() - Call _ggzcore_server_set_negotiate_status() with result of MSG_SERVER_ID rather than performing actions from net.c 2001-03-14 00:43 Rich Gade <rgade@users.sourceforge.net> * ggzcore/confio.c: - confio now uses ggzcore_malloc where possible and appears leak free (yea sure) 2001-03-13 23:50 Rich Gade <rgade@users.sourceforge.net> * ggzcore/ggz-config.c: - All calls to ggz-config should use the '-D' option - ggz-config now uses -D to make it build the config file in $DESTDIR 2001-03-11 00:53 Rich Gade <rgade@users.sourceforge.net> * ggzcore/: ggz-config.c, module.c: - Changed [Games]->GameList varname to *GameList* so that it is "always" the first varaible under the [Games] heading 2001-03-11 00:31 Rich Gade <rgade@users.sourceforge.net> * ggzcore/ggz.modules: - Blank ggz.modules file 2001-03-11 00:29 Rich Gade <rgade@users.sourceforge.net> * ggzcore/Makefile.am: - Added uninstall ability to game package - A blank ggz.modules file is now installed and uninstalled with ggzcore so that installations can occur w/o a preexisting modules file 2001-03-10 23:15 Rich Gade <rgade@users.sourceforge.net> * ggzcore/ggz-config.c: ggz-config: - Accept module name from the fromfile so --modname is not necessary - Look in section [ModuleInfo] for information in the fromfile chinese-checkers: - Makefile.am - --modname no longer necessary - ccheckers.dsc - changed section id to [ModuleInfo] and added Name= param 2001-03-09 22:16 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/game.c: - Bit of hackery to look for modules relative to GAMEDIR if the specified path isn't absolute 2001-03-09 21:31 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/game.c: - Check for existence of hook list before adding/removing hooks. This prevents segfaults if the FE tries to add callbacks to an uninitiallized game. In particular, this solves the "segfault if module can't be fond problem" 2001-03-09 19:46 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/net.c: - Support for normal logins and first-time logins - Store first-time login password in server so FE can retrieve it 2001-03-09 08:52 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/room.c: - Check for the players existence before trying to add or remove them from a table. This fixes the segfault bug when a player manages to leave a room before leaving the game (which only happens if you disconnect during a spades game right now) 2001-03-08 20:13 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: ggzcore.h, net.c, net.h, room.c, room.h, server.c, server.h: - Cleaned up the _ggzcore_net_send_XXX() functions to do netowrk error detection and call _ggzcore_net_error(). - Removed the middle man and let GGZRoom functions call ggzcore_net_send_XXX() functions directly - Eliminated unnecessary middle-man GGZServer functions 2001-03-08 18:14 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/TODO: - updated TODO 2001-03-08 10:53 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: ggzcore.h, net.c, net.h, server.c, server.h: - Removed deprecated ggzcore_server_get_XXX_name() functions - Made room_num argument to ggzcore_server_join_room() an unsigned int - Added internal versions of the server "get" functions - New _ggzcore_server_load_{motd,roomlist,typelist}() functions - New _ggzcore_net_error() function to handle network errors. Currently it disconnects, sets the fd to -1, and calls _ggzcore_server_net_error() with an error message - Start doing network error detection in net.c rather than in server.c 2001-03-08 09:36 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: net.c, net.h, server.c: - Call ggzcore_net_send_XXX() functions with a pointer to the GGZNet object, rather than a fd - Removed all references to fd, host, and port from server.c - New function _ggzcore_net_data_is_pending() 2001-03-08 09:20 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/game.c: - Fixed misplaced parentheses in _ggzcore_game-launch(). We want to allocate strlen(name) + 12, not strlen(name + 12) Oops. This will some segfaults occuring at the end of a game of exit 2001-03-08 00:28 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: TODO, net.c, net.h, protocol.h, server.c, server.h: - Moved a huge chunk of code (all of the opcode handlers) from server.c to net.c. This leaves server.c to handle the higher level session management while letting net.c and the new GGZNet object deal with the client-server communication issues - Made all of the _ggzcore_net_read_XXX() functions static since they're now solely used inside net.c - Moved the gametype_verose, room_verbose, and new_room attributes from GGZServer to GGZNet since they're really protocol properties - Made a bunch of server functions non-static temporarily so that they can be called from net.c until we figure out a better interface 2001-03-07 20:37 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: init.c, net.c, net.h, server.c: - Beginnings of new GGZNet object to handle network IO: - Added functions _ggzcore_net_new(), init(), connect(), free() 2001-03-07 20:09 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: gametype.c, gametype.h, ggzcore.h: - Added functions for getting maximum allowed players/bots from a game type - Added functions for checking whether a particular number of players/bots is valid 2001-03-06 00:05 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: ggzcore.h, room.c, room.h: - Small code cleanup on room functions 2001-03-05 22:37 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: game.c, game.h, ggzcore.h, net.c, net.h, room.c, room.h, server.c, server.h, table.c: - Finally implemented table launching and leaving - Lots of new functions for shuffling game data around - New functions for sending and receiving {REQ|RSP}_TABLE_* 2001-03-04 17:37 Rich Gade <rgade@users.sourceforge.net> * ggzcore/lists.c: - Fixed mem leak - entry structures were not being deallocated 2001-03-04 16:15 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: room.c, server.c, table.c: - Split out table adding code in server.c into function _ggzcore_server_handle_table() - Assign gametype to NULL if we haven't loaded the type list - If a player or table event comes in before we've loaded the lists, create new ones - Check for existence of player and table lists before modifying - for loop in table_init to set seats to OPEN goes from 0 to num_seats, not 0 to 0 :) 2001-03-03 13:45 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: TODO, ggzcore.h, net.c, net.h, player.c, player.h, room.c, room.h, server.c, server.h, table.c, table.h: - New object GGZSeat contains seat type and player name - Re-implemented GGZTable object to contain seat information - Implemented table updates: - Split out net functions for reading table updates - Wrote server function to handle table update opcode - Wrote room functions to perform table update functions - Wrote table functions for modifying GGZTable object - Wrote player function for setting table in GGZPlayer - Probably more stuff I don't remember :) 2001-03-03 12:21 Rich Gade <rgade@users.sourceforge.net> * ggzcore/ggz-config.c: - Added --fromfile to load game parameters from a .dsc file 2001-03-01 19:26 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/TODO: - Updated TODO list 2001-03-01 19:24 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: game.c, game.h, ggzcore.h, module.c, server.c, state.c, state.h: - New functions: ggzcore_game_data_is+pending() ggzcore_game_read_data() ggzcore_game_write_data() and correspoinding internal funcs - Initialize game.fd to -1 in ggzcore_game_init() - New GGZGameEvents - Send out GGZ_GAME_LAUNCH_FAIL event if the launch fails - New GGZServer events for table launch/join success and failure - New state GGZ_STATE_LAUNCHING_TABLE - New GGZTransitions for launching, joining, and leaving a table 2001-02-28 22:13 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: Makefile.am, game.c, game.h, gametype.c, gametype.h, ggzcore.h, module.c, module.h, msg.c: - Added files game.[ch] to handle GGZGame object for managing game processes - First stab at ggzcore API for handling games (still incomplete, but you can execute a game now) - Removed ggzcore_module_get_by_name() and replaced it with ggzcore_module_get_num_by_type() and ggzcore_module_get_nth_by_type() - Added GGZ_DBG_GAME debugging level 2001-02-27 13:45 Rich Gade <rgade@users.sourceforge.net> * ggzcore/ggz-config.c: - --install option functional with new ggz.modules format 2001-02-26 23:20 Rich Gade <rgade@users.sourceforge.net> * ggzcore/ggz-config.c: - Modified --remove functionality to work with correct ggz.modules format - *** --install is NOT converted and will not work right yet 2001-02-26 01:18 Rich Gade <rgade@users.sourceforge.net> * ggzcore/: ggzcore.h, memory.c: - Added ggzcore_strdup() - logs error on NULL ptr and returns NULL - Reworked routines a bit to eliminate zeroing and then recopying over memory 2001-02-24 01:15 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/room.c: - In ggzcore_room_add_player(), use a dynamically allocated GGZPlayer and not a local var since the list now uses the pointer it's passed instead of copying it. 2001-02-23 23:50 Rich Gade <rgade@users.sourceforge.net> * ggzcore/: ggzcore.h, memory.c: - Added ggzcore_realloc() function to reallocate memory 2001-02-23 22:17 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: ggzcore.h, server.c, server.h: - New function _ggzcore_server_clear() to clear object members - New function ggzcore_server_reset() to reset GGZServer to initial state - Moved initialization of GGZServer (connection info) off to ggzcore_server_set_hostinfo() and ggzcore_server_set_logininfo(). This allows for the possibility of trying to login again if the - something goes wrong the first time (eg. bad password). 2001-02-23 20:46 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/server.c: - Initialize name and msg to NULL in _ggzcore_server_handle_chat() so that we don't end up trying to free() them later 2001-02-21 22:46 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: TODO, ggzcore.h, net.c, room.c, server.c, server.h, state.c, state.h: - New functions _ggzcore_server_{net,protocol}_error() to handle network errors and errors where the server does something we can't account for. In both cases we disconnect - Check for network and protocol errors all over server.c - New event GGZ_CHAT_FAIL for chat failures - Re-implemented _ggzcore_handle_rsp_chat() to send GGZ_CHAT_FAIL on failures 2001-02-21 19:50 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/hook.c: - Use ggzcore_malloc and ggzcore_free in hook functions 2001-02-21 19:42 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: TODO, event.c, event.h: - Got rid of old event.* files 2001-02-21 00:16 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: room.c, room.h, server.c, server.h: - Pulled definition of GGZRoom and GGZServer into respective .c file since they're supposed to be "closed" anyway - Static constants _ggzcore_num_events store an array of strings representing the events - Get rid of GGZ_NUM_XXX_EVENTS by using sizeof() magic 2001-02-20 23:08 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: Makefile.am, TODO, ggzcore.h, init.c, module.c, module.h, msg.c, server.c: - First stab at a GGZModule implementation: - Reads in module data from ggz.modules - No launch capabilities yet 2001-02-20 21:13 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/.cvsignore: - Added .libs dir - Added executable ggz-config 2001-02-20 21:07 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/server.c: - Use ggzcore_malloc and ggzcore_free for roomlist and gamelist 2001-02-20 21:02 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/server.c: - Use ggzcore_malloc and ggzcore_free for GGZServer 2001-02-20 20:58 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: room.c, room.h, server.c: - Cleaned up ggzcore_room functions to separate new() and init() - Use ggzcore_malloc and ggzcore_free 2001-02-20 20:49 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: gametype.c, gametype.h, server.c: - Clean up gametype functions - Use ggzcore_malloc and ggzcore_free 2001-02-20 19:55 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: player.c, player.h, server.c, table.c, table.h: - New functions _ggzcore_table_{new|free} for allocating and freeing GGZTable objects - Made table list utility functions non-static - Use ggzcore_{malloc, free} for alloacting player and table objects - Removed unnecessary _ggzcore_{player|table}_list_new() functions 2001-02-20 19:31 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: TODO, ggzcore.h, player.c, player.h, room.c, room.h, server.c, table.c: - Re-added ggzcore_table_get_num() to ggzcore.h at least for now since FEs need some way of numbering tables and I'm not sure if giving them the index in the room is a good idea wince it can change - New functions _ggzcore_player_{new|free}() to allocate and free GGZPlayer objects - Keep a pointer to the current room in each player structure - Make player list utility functions public so that other code can make lists of players - New function _ggzcore_room_get_table_by_id() - When creating a list of players in the room, don't use the ggzcore_player_create list utlity function: just create a new player and let the list use that pointer - Do some NULL-checking befoe strdup'ing 2001-02-20 17:45 Rich Gade <rgade@users.sourceforge.net> * ggzcore/ggz-config.c: - Removed 'conffile' option, force usage of 'ggz.modules' 2001-02-20 17:15 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: TODO, gametype.c, gametype.h, ggzcore.h, player.h, room.c, room.h, server.c, server.h: - Removed ggzcore_room_get_num() and ggzcore_gametype_get_num functions because they didn't really do what you would expect - Renamed _ggzcore_{room|gametype}_get_num to XXX_get_id() since what we're really returning there is the server's ID for that room/gametype - Changed ggzcore_room_get_gametype() to return a pointer to the GGZGameType object corresponding to the game played in that room or NULL if the list of gametypes hasn't been loaded yet. 2001-02-20 16:54 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: server.c, server.h: - Reimplement server's room list as an array, not a ggzcore_list 2001-02-20 00:01 Rich Gade <rgade@users.sourceforge.net> * ggzcore/: Makefile.am, ggz-config.c: - Added a first stab at a ggz-config utility 2001-02-19 16:46 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/server.c: - In ggzcore_server_get_nth_room(), initialize pointer to the head of the list. This increases out chances of actually finding the room and fixed justin's segfault 2001-02-19 16:11 Justin Zaun <jzaun@users.sourceforge.net> * ggzcore/: ggzcore.h, server.c: - Fixed typo ggzcore_server_get_nth_gametpe -> ggzcore_server_get_nth_gametype 2001-02-18 21:15 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: gametype.c, ggzcore.h, server.c: - Added ggzcore_server_get_nth_gametype() function - #if 0'd some unused gametype functions 2001-02-18 00:25 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/server.c: - Better abstracted room list code (will allow for different implementations in the future) 2001-02-18 00:01 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: gametype.c, gametype.h, ggzcore.h, net.c, net.h, server.c, server.h: - Handle RSP_LIST_TYPES and store gametype info - New functions ggzcore_gametype_get_XXX() for getting at gametype info 2001-02-16 23:43 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: gametype.c, gametype.h, ggzcore.h, init.c, net.c, net.h, player.c, player.h, room.c, room.h, server.c, table.c, table.h: - Implemented table lists - New room event GGZ_TABLE_LIST - IMplemented GGZTable functions for init and getting data 2001-02-16 22:03 Rich Gade <rgade@users.sourceforge.net> * ggzcore/memory.c: - Fixed bug in _ggzcore_memory_check which made it always claim no leaks 2001-02-16 21:50 Rich Gade <rgade@users.sourceforge.net> * ggzcore/: init.c, memory.c: - Added _ggzcore_memory_check() - Added call to check memory at cleanup time 2001-02-16 21:16 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: player.c, player.h, room.c, server.c: - In GGZPlayer, store a pointer to the table we're at, not an index - Get table pointer when adding players to room list 2001-02-16 20:57 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: ggzcore.h, net.c, player.c, player.h, room.c, room.h, server.c: - Fixed bug in _ggzcore_net_read_motd() where the motd wasn't getting passed back correctly - renamed ggzcore_server_get_room() to ggzcore_server_get_nth_room() - Added ggzcore_room_get_nth_player() - Added ggzcore_player_get_name() - Stub functions for ggzcore_room_get_nth_table() and ggzcore_player_get_table() 2001-02-16 18:59 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: Makefile.am, event.c, ggzcore.h, init.c, net.c, net.h, player.c, room.c, room.h, server.c, server.h, user.c, user.h: - Provide ggzcore_server_motd() to allow FEs to explicitly request the MOTD - Provide ggzcore_server_list_types() - Provide ggzcore_room_list_tables() - Implement stubs to read in RSP_LIST_{TYPES, TABLES} - Finally wipe out old event system 2001-02-16 08:01 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/ggzcore.h: - Added GGZ_DBG_MEMORY and GGZ_DBG_MEMDETAIL so ggzcore will compile :) 2001-02-15 22:09 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/server.c: - In ggzcore_server_free(), only call _ggzcore_room_free() if room is not NULL 2001-02-15 21:35 Rich Gade <rgade@users.sourceforge.net> * ggzcore/: Makefile.am, ggzcore.h, lists.c, memory.c, memory.h, msg.c: - Initial checkin of memory management functions 2001-02-15 20:36 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: event.c, ggzcore.h, net.c, net.h, player.c, player.h, room.c, room.h, server.c, server.h, user.c: - Wrote player list and player update handling for GGZRoom object - Removed old player list system 2001-02-15 13:17 Rich Gade <rgade@users.sourceforge.net> * ggzcore/: lists.c, lists.h: - New function _ggzcore_list_search_alt() 2001-02-15 01:39 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: room.c, server.c, server.h: - Removed reference to now-defunct roomlist.h - Added #include "list.h" in room.c and server.c 2001-02-15 01:28 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: Makefile.am, TODO, event.c, ggzcore.h, net.c, net.h, player.c, player.h, room.c, room.h, roomlist.c, roomlist.h, server.c, server.h, table.c, table.h: - New object GGZRoom replaces GGZRoomInfo - GGZServer now manages list of GGZRoom objects directly (no more GGZRoomList type) - GGZServer stores and returns pointers to GGZRoom objects for current room - Moved ggzcore_server_get_room_{name|desc|gametype} functions over to ggzcore_room_get_XXX functions - New function ggzcore_server_get_room() for getting pointer to a room by index - Made chat events specific to room object - Moved ggzcore_server_chat() over to ggzcore_room_chat() - Moved GGZPlayer and GGZTable structures into respective .h files in anticipation of each room maintaining player and table lists 2001-02-05 23:14 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: event.c, ggzcore.h, net.c, net.h, protocol.h, server.c, user.c: - Temporary hack to enable chatting until GGZRoom is implemented: - Function ggzcore_server_chat() 2001-01-30 21:30 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: ggzcore.h, init.c, server.c, server.h, state.c, state.h: - Removed state-specific hooklist and make state-changed a GGZServer event (GGZ_STATE_CHANGE) 2001-01-26 23:23 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: TODO, roomlist.c, roomlist.h: - Oops! Forgot to add roomlist.[ch] 2001-01-26 19:56 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: Makefile.am, event.c, event.h, ggzcore.h, init.c, lists.h, net.c, net.h, room.c, room.h, server.c, server.h, state.c, state.h, user.c: - Big Phase 1 ggzcore changes: - Creation of GGZServer object - Moved most events to be GGZServer specific (rest go to GGZRoom) - Eliminated all of the server callbacks -- they were useless anyway - Made most user actions a function call, not an event - Don't fudge the connect/login distinction, let the FE do it. - Hacks to event.c and state.c to work with this system, they'll be going away soon anyway 2001-01-21 23:01 Rich Gade <rgade@users.sourceforge.net> * ggzcore/: conf.c, confio.c, confio.h, ggzcore.h: confio.[ch] ggzcore.h - Made necessary ggzcore_confio functions public - ggzcore_confio_parse() now takes an options argument - confio files can be "read-only" (GGZ_CONFIO_RDONLY) - confio files can be auto-created if they don't exist (GGZ_CONFIO_CREATE) - Read the API documentation in ggzcore.h for details conf.c - Updated ggzcore_conf_initialize() to use the confio_parse options 2001-01-19 21:04 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: conf.c, confio.c, confio.h, ggzcore.h: - A healthy does of const sprinkled throught.... 2001-01-19 20:37 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/init.c: - Removed reference to non-existent module.h 2001-01-19 20:28 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: event.c, event.h, ggzcore.h, hook.c, hook.h, init.c, msg.c, net.c, server.c, state.c, state.h, user.c: - Change states based on specific state-change inputs, rather than events - Give each event a list of valid states - Rename callback to hook - Let hooks return a value to signify removal or error conditions 2001-01-14 01:24 Rich Gade <rgade@users.sourceforge.net> * ggzcore/conf.c: - Fixed comment/debug entries regarding ggzcore_conf_initialize() 2001-01-13 15:04 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: conf.c, conf.h, ggzcore.h, init.c: - Made ggzcore_conf_initialize() an exported function - Don't call ggzcore_conf_initialize() from ggzcore_init() (let FE do it) - Remove global and local conf paths from options structure - Added debug level and debug file to options structure 2001-01-06 04:08 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: profile.c, profile.h: - Removed unnecessary files 2001-01-06 04:06 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: state.c, state.h: - Reorganzied state functions into exported, internal, and static 2001-01-06 03:28 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: ggzcore.h, event.c, state.c, state.h: - Eliminated bogus GGZ_STATE_NONE state - Made transitions part of states not events - New function _ggzcore_state_event_is_valid() to check if event is valid given current state - New function _ggzcore_state_transition() is the now the correct way to change states 2000-12-22 16:15 Justin Zaun <jzaun@users.sourceforge.net> * ggzcore/gametype.c: - Displaying the game information in the launch dialog 2000-12-20 16:30 Justin Zaun <jzaun@users.sourceforge.net> * ggzcore/: gametype.c, ggzcore.h, init.c, room.c, table.c: - Added lookup to get gametype from room - Added lookup to get gametype from table - Initilize the gametype linked list (whoops!) - Finished the table info dialog 2000-12-20 16:09 Justin Zaun <jzaun@users.sourceforge.net> * ggzcore/: Makefile.am, gametype.c, gametype.h, ggzcore.h, net.c, server.c, table.c: - ggzcore now recieves and stores game type information on login y 2000-12-18 18:23 Justin Zaun <jzaun@users.sourceforge.net> * ggzcore/net.c: - Fixed a minnor bug, where when leaveing a table, the player was shown as still being at the table. 2000-12-18 17:57 Justin Zaun <jzaun@users.sourceforge.net> * ggzcore/table.c: - Forgot a file for the new table code 2000-12-18 17:48 Justin Zaun <jzaun@users.sourceforge.net> * ggzcore/: Makefile.am, event.c, ggzcore.h, net.c, server.c, table.h: - Added support for displaying and updating table information 2000-12-05 16:57 Justin Zaun <jzaun@users.sourceforge.net> * ggzcore/: ggzcore.h, net.c, player.c: - added a int ggzcore_player_get_table(char *name) function to get a player's table based on the players name. 2000-12-05 00:30 Rich Gade <rgade@users.sourceforge.net> * ggzcore/confio.c: - Missed a ++ when copying src->dst in _ggzcore_confio_write_list() 2000-12-02 01:37 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/conf.c: - Removed debugging info from make_path() 2000-12-02 00:45 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/msg.c: - Initiailize message buffer with \0 if DEBUG is not enabled (and therfore the pid doesn't get printed to the buffer) 2000-12-02 00:23 Rich Gade <rgade@users.sourceforge.net> * ggzcore/confio.c: - fixed a NULL termination bug in read_list() - g_strndup() NULL terminates, strncpy() doesn't so we have to do it manually in this version 2000-12-02 00:03 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/conf.c: - s/malloc/calloc in make_path() so the memory gets zeroed out initially - In make_path() treat last node in path as a file (not a dir) and ignore it 2000-12-01 22:14 Rich Gade <rgade@users.sourceforge.net> * ggzcore/conf.c: - make_path() ripped from server for config file path generation - gtk FE user config file set to "~/.ggz/ggz.rc" 2000-12-01 20:03 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: ggzcore.h, init.c: - Removed reference to local conf file (we decided we didn't need it) - Added prototypes for ggzcore_module functions 2000-12-01 17:21 Justin Zaun <jzaun@users.sourceforge.net> * ggzcore/init.c: - Hooked up the config file initailization and destruction functions 2000-11-30 21:50 Rich Gade <rgade@users.sourceforge.net> * ggzcore/: Makefile.am, conf.c, conf.h, confio.c, confio.h, ggzcore.h: - Makefile.am modified to include conf.c, conf.h - confio.c, confio.h - modified read_list to return an integer - Initial checkin of conf.c, conf.h - frontend level configuration routines - ggzcore.h - Added specs and prototypes for config file routines 2000-11-30 00:00 Rich Gade <rgade@users.sourceforge.net> * ggzcore/: Makefile.am, confio.c, confio.h, lists.c: - Initial checkin of confio configuration file functions - Fixed a warning in lists.c - Modified Makefile.am to compile confio module 2000-11-11 01:10 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: ggzcore.h, net.c, room.c, state.h, user.c: - New function ggzcore_room_get_desc() to get room description - Default to requesting verbose room lists 2000-11-10 23:50 Justin Zaun <jzaun@users.sourceforge.net> * ggzcore/net.c: - Fixed a little bug of mine. The client won't lockup with incorrect passwords now. 2000-11-10 23:00 Justin Zaun <jzaun@users.sourceforge.net> * ggzcore/net.c: - You can now login as a registered user 2000-11-09 22:36 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: event.c, ggzcore.h, init.c, state.c, state.h: - Add the ability to attach callbacks to state transitions via ggzcore_state_add_callback() 2000-11-04 23:15 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: Makefile.am, event.c, event.h, ggzcore.h, hook.c, hook.h, net.c, room.h, server.c, state.c, state.h, user.c: - New files hook.[ch] provide mechanism for list of hook functions (ie. callbacks) - Rewrote event system to use new hook mechanism - For every event, store a list of state transition pairs (current state, next state) - Do event validity checking by checking transition pairs - Pull out code to dequeue event and put it in _ggzcore_event_dequeue() - Rename ggzcore_event_connect() to ggzcore_event_add_callback() - Do event validity checking and state transitions from ggzcore_event_process() rather than inside individual callbacks - Rename ggzcore_event_trigger() to ggzcore_event_enqueue() to better reflect what it's actually doing - Rename GGZEventFunc type to GGZCallback since it will eventually be used for things other than the event system - New state GGZ_STATE_BETWEEN_ROOMS - To send user login info, re-enqueue GGZ_USER_LOGIN event when we receive GGZ_SERVER_CONNECT - Remove unneeded _ggzcore_state_event_isvalid() function - In _ggzcore_user_login(), detect whether we're online already and behave appropriately 2000-11-01 23:58 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/event.c: - Fixed ggzcore_event_remove() 2000-10-17 22:07 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: event.c, net.c: - Ignore EINTR error while poll()'ing sine it just means we caught some signal 2000-10-17 19:21 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/state.c: - Mark GGZ_USER_MOTD as a valid event where appropriate 2000-10-16 16:47 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: event.c, ggzcore.h, net.c, net.h, user.c: - Added GGZ_USER_MOTD event - Send REQ_MOTD to server on GGZ_USER_MOTD 2000-10-14 02:35 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: event.c, net.c: - When checking for net input, check for POLLHUP so we don't get an error trying to read an opcode from a closed socket - Don't disconnect if we're already in state 0: There's no point 2000-10-14 02:19 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: event.c, ggzcore.h, net.c: - New function ggzcore_event_poll() works as a replacement for poll() except it tacks on the ggzcore fds and handles them automatically. This function can easily be used in FE event loops - Remove ggzcore_event_ispending() - Rename _ggzcore_event_ispending_actual() to ggzcore_event_ispending() - Don't check for net input in ggzcore_event_ispending() - New functions ggzcore_event_get_fd() and ggzcore_net_get_fd() allow access to ggzcore fds in case FE needs to add them to event loop - Use ggzcore_event_poll() in text and gtk frontends - remove ggz_loop() from gtk FE 2000-10-12 01:21 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/Makefile.am: - Bunch of autoconf/automake changes to accomodate easysock detection and build it internally if not found 2000-10-07 23:02 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/net.c: - Use dynamcially allocated memory for GGZ_SERVER_ROOM_{ENTER, LEAVE} events 2000-10-07 22:14 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: ggzcore.h, player.c, room.c, server.c: - Added ggzcore functions to return room and player names - Actually list player and room names when user issues command 2000-10-07 14:15 Justin Zaun <jzaun@users.sourceforge.net> * ggzcore/: event.c, ggzcore.h, net.c: - Fixed the missnaming of an event I commited last night. 2000-10-06 22:41 Justin Zaun <jzaun@users.sourceforge.net> * ggzcore/: event.c, ggzcore.h, net.c: - Added join and part events - Display join and part messages 2000-10-06 15:15 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/state.c: - Fixed state_is_XXX() functions 2000-10-06 00:17 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: ggzcore.h, room.c: - Correct logic on _ggzcore_room_compare() Return 0 if equal, doh! - New exported function ggzcore_room_get_name() - Display room name in status if in a room and list had been gotten 2000-10-05 23:50 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: Makefile.am, ggzcore.h, net.c, player.h, room.c, room.h: - Added code for handling room list 2000-10-05 23:17 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: Makefile.am, event.c, ggzcore.h, net.c, net.h, player.c, player.h, state.c, state.h, user.c: - Added ggzcore_state_get_id() function so frontends can access current state ID - Move GGZStateID enum from state.h to ggzcore.h - Added player-list handling code - Support REQ/RSP_LIST_PLAYERS 2000-10-05 19:04 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: event.c, ggzcore.h, net.c: - Added GGZ_SERVER_MOTD event - Pass array of motd lines as event data to MOTD event 2000-10-05 18:01 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: ggzcore.h, state.c: - Added functions to get at current profile name, login, host, and room - Use those on the client status line 2000-10-05 17:26 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/user.c: - Pass room number to GGZ_USER_ROOM_JOIN as a tyecasted int 2000-10-05 01:10 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/user.c: - Collapsed user chat handlers into single function with flag passed to callback 2000-10-05 00:36 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: event.c, ggzcore.h, net.c, state.c, user.c: - New commands /msg and /beep - New events GGZ_USER_CHAT_PRVMSG and GGZ_USER_CHAT_BEEP - Don't bother initializing NULL pointers in GGZEvent structure - Check for ID mismatch when initializing events - Allow new GGZ_USER_CHAT_XXX events from GGZ_STATE_IN_ROOM 2000-10-04 21:33 Justin Zaun <jzaun@users.sourceforge.net> * ggzcore/: event.c, ggzcore.h, net.c: - Chat now works with all subop codes 2000-10-03 12:57 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: ggzcore.h, net.c, protocol.h: - Made enums for update subops and seat values - Stub+ handlers for MSG_UPDATE_PLAYERS and MSG_UPDATE_TABLES (No events triggered yet, but this prevents the client from crashing when someone enters/leaves the room or launches a table) 2000-10-02 22:31 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: event.c, ggzcore.h, init.c, net.c, protocol.h, server.c, state.c, state.h, user.c: - Renamed GGZ_EVENT_LOGIN_OK to GGZ_EVENT_LOGIN - Renamed GGZ_EVENT_CHAT_STATUS to GGZ_EVENT_CHAT - New event GGZ_EVENT_ROOM_JOIN_FAIL - New event GGZ_EVENT_CHAT_FAIL - New event GGZ_SERVER_ERROR - New event GGZ_NET_ERROR - Trigger network error event from easysock error handler - Move global socket variable out of state var - New function ggzcore_event_remove_func() to delete specific callback - Keep track of state - Better handling of error messages from server - Do simple user event validity checking based on state - Have client handle GGZ_CONNECT_FAIL 2000-09-30 12:54 Rich Gade <rgade@users.sourceforge.net> * ggzcore/: Makefile.am, lists.c, lists.h: - Added list handling module to ggzcore 2000-09-29 17:37 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: event.c, ggzcore.h, net.c, net.h, protocol.h, server.c, user.c: - Abstracted messages from server into a datatype with the opcode, the name as a string and a pointer to the handler - Added events for listing rooms, joining a room and basic chatting - Added code to support the added events - Make chat protocol subops an enum - Added "list", "join", and "chat" commands to text frontend to take advantage of newly added events 2000-09-29 01:05 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: Makefile.am, easysock.c, event.c, event.h, ggzcore.h, init.c, msg.c, msg.h, net.c, net.h, server.c, state.h, user.c: - Send "Lookup failure" as message when gethostbyname() fails since it doesn't set errno - Allow callers to set a "destroy" function for freeing callback and event data - Fix static functions to follow _ggzcore naming convention - Implemented debug levels - Created ggzcore_event_connect_full() which allows to caller to specify all paramenters. - Have ggzcore_event_connect() supply NULL for user data and destroy func - Rename g_e_pending() to g_e_ispending() to signify the return of a true/false value - Move actual event checking into g_e_ispending_actual() - Don't continue event processing unless actual events are pending, not just network events. This only affects non-multi-threaded I/O (which is everything right now) - Don't pass data over event pipe, just pass pointer. This avoids unnecessary internal copying and having to pass the size of the event data - New GGZOptions structure for passing options to ggzcore library. - Accept option for a "local" override conf file in addition to global and user ones. This allows for easier debugging - New event: GGZ_SERVER_LOGOUT - Added code to handle RSP_LOGIN_ANON, RSP_LOGOUT, and a dummy handler for MSG_MOTD - Added code to handle REQ_LOGIN_*, REQ_LOGOUT - On failure, pass error string as GGZ_SERVER_CONNECT data - Don't copy profile name if it doesn't exist 2000-09-23 03:04 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: Makefile.am, easysock.c, easysock.h, event.c, event.h, ggzcore.h, init.c, msg.c, msg.h, net.c, net.h, profile.c, profile.h, protocol.h, server.c, server.h, state.c, state.h, user.c, user.h: - Use naming conventions discussed at meeting - Added GGZ_SERVER_CONNECT event - Only use 1 event for all user login requests - Check for pending net events as well as app events (not necessary when threaded) - Read event data in event_process() not event_process_all() - Added GGZProfile structure for holding server/usr profiles - Added server.[ch] for handling server events - Imported easysock source - Added net.[ch] for handling network I/O - Added profile.[ch] for manipulating profiles (bot used yet) - Added state.[ch] for keeping track of client state - Added protocol.h for GGZ opcodes - Implemented user_login() to handle user login event - Implemented net_server_id() to handle MSG_SERVER_ID - Implemented server_connect() stub to handle server connect event 2000-09-17 23:29 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: Makefile.am, init.c, msg.c, msg.h: - Added support for logging to file - Currently logs to /tmp/ggz.debug until conf-file parsing is done 2000-09-16 23:48 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: .cvsignore, Makefile.am, event.c, event.h, ggzcore.h, init.c, msg.c, user.c, user.h: - First revision of event system - Basic callback handling (connect, remove, process) - Some testing of event queue in text frontend 2000-09-15 18:46 Brent Hendricks <bmh@users.sourceforge.net> * ggzcore/: .cvsignore, Makefile.am, event.c, event.h, ggzcore.h, init.c, msg.c: - Added new directories for core client and frontends - Modified build system to work with new source layout - Skeletal libggzcore and text frontend