1.5.2 (2011/xx/xx) * Output some identifying information into the ttyrecs. * Added banner inclusion and configurable string replacements. * Configurable watching-menu columns and extra-info column. * UTF8 output * Documented error codes 1.5.1 (2010/05/02) * Allow sorting the watching-menu by any column. * Show number of people watching each game. * Allow dgl to kill processes that are idle for too long. * Allow setting resource limits on core dump size and memory usage. * Improve configure-script. 1.5.0 (2009/10/18) * Merge the dgl-wall functionality into dgamelaunch itself. * Allow any number of games per dgl installation without recompile. * Allow admin to define the menu structure in config file. * Return to dgamelaunch when the game ends. * Better handling of tty loss. * Allow admin to define different actions taken when something happens. * Allow using SQLite3 for the user login database instead of flat text. * Allow sorting the watchlist, by username or idletime. * Handle terminal size changes without quitting dgl. 1.4.7 (2007/12/22) * Allow more than one game per dgl installation. (by default, up to 3) * Make the watching code more efficient (particularly on FreeBSD) and clean it up a bit. * Fix bug where old cruft was left under the watch list after 'm' had been used. * Allow ^L and ^R to fully refresh the watch list. * Use kqueue() if available (FreeBSD) to improve watching. * Update svn link. * Use $(DESTDIR) intelligently in installation procedure. * Fix dgl-create-chroot to do a more intelligent $termdata check, and to not choke on finding linux-gate.so.1 in ldd output (the file does not actually exist. Also make the copy a dereferencing one, since Debian now has a weird symlinking deal that makes it hard to accumulate all the directories together. 1.4.6 (2004/07/03) * Fix some signed/unsigned warnings. * Fix make install check for PREFIX -> $(PREFIX). * Bind with Satan / start using autoconf. * Fix a bug in automatic authorization that revealed the username and password in ps output, by munging argv using setproctitle() if possible. * Fix dgl-create-chroot's copying of terminfo by choosing a sane default. * Now compiles with Tiny C Compiler. 1.4.5 (2004/06/14) * Reset offset if necessary to show at least one game to avoid things like "(15-14 of 14)". * Provide several examples for dgl-create-chroot.conf. * Backup the savefile before starting nethack to help prevent more lost games. Note this must be explicitly configured in the configuration file. * Added ^W for delete word in mygetnstr(). * Begun generalization of code so that someone can get it to work with stuff like Slash'EM etc. more easily. * Allow automatic authorization using the USER environment variable that one can auto-set in .telnetrc. Idea by Jeremy Chadwick . * Enable NHEXT and NHAUTH support for Slash'EM, contributed by J. Ali Harlow . 1.4.4 (2004/03/07) * Show total number of games in progress below the list, useful if there are more than fits on the screen. * Use client-supplied window size again; try to detect broken clients and force them to 80x24. * Pass window size to watchers via inprogress file; show it on the list. * Selecting a game to watch with an uppercase letter attempts to change the window size to the game's via the \033[8;;t sequence. * Stricter check on entered email addresses; the same check is now used for new accounts as well as changes in existing accounts. 1.4.3 (2004/02/28) * Make ttyplay use the 'strip' value it remembered from last view. * Don't fail if client-supplied window size seems incorrect. * Added a simple man page. 1.4.2 (2004/02/22) * Add a compile-time option to define a static location to look for a configuration file. Will ALWAYS override defconfig values if it is present, so beware. * Fixed some eerie race conditions that prevented writefile() from writing a full file all the time. (jilles) * Don't write rcfiles if they already exist. (i.e., lost account holders recreating their accounts. * Allow administrator to hardcode a dgamelaunch.conf path. * Ignore client-supplied window size again. * Include dgl-wall, which notifies all logged in users with a mail message. * Split common functions into dgl-common.c. 1.4.1 (2004/02/13) * Don't explicitly unlock the lock file before fclosing it; this creates a race condition where we might not have finished writing to /dgl-login before we tell people that they can write to it again. * Make sure writefile does not get called when using it as a password prompt for new-users * Allow user to change his or her email address in the console. * Remove some useless cruft in ttywait() [ttyplay.c] 1.4 (2004/02/03) * Major cleanups - remove most uses of strcpy() and strcat() * A number of virus bugs have been fixed regarding getopt() and other minor issues. * Add support for mailing users while they are playing. [nh343-simple_mail.diff is needed] * Add a confirmation to the change password screen so people like me don't change their passwords by accident all the time. * Remove many unused variables and make some functions void because they don't return anything. * Add some function prototypes in dgamelaunch.c to quell warnings. * Make some vars unsigned to quell warnings. * 'capital letter. experimental' section made irrelevant by use of tolower(3) around getch() * Change big conditional block to use a switch. * Replace a global with a static variable within the function. * Replace the giant size 64000 static buffers with dynamically allocated structs * Checking for colons in user fields is made simpler using strstr(3) * Allow page up and page down on the watch games menu * Merge BSD compatibility patches * All licenses in source code mentioned in COPYING * Use fcntl for all file locking; flock(3) is not portable * Fix some troublesome uses of strncpy() with strlcpy * ditto for strncat->strlcat * Make sure only one session can be played at once at all and SIGHUP the rest, ensuring the death of "Destroy old game? [yn]" * Replace two colossal conditionals with calls to isalnum(3). * Shift from static #defines to a configuration file system powered by lex/yacc. * Include a little stub program to test dgamelaunch's functionality without actually going through the hassle of setting up Nethack. * Always use -lcurses and #include * Port to FreeBSD 5 and Solaris (as of yet, untested) * Switched to own version of getnstr() that always accepts both ^H and ^? * Now use 'ee' as the default rcfile editor. virus is still a compile time option - see README for details. * A giant code cleanup that centralizes necessary globals, removes unnecessary variables and #defines... * Improved stripgfx feature to allow in-session graphic strip toggling. Still a bit unreliable though, but works better than before. 1.3.10 (2003/10/22) * Added a mode flag to the open call for inprogress lock files. (jilles) 1.3.9 (2003/09/06) * Fixed the bug where editing options file wouldn't work on same session as registration. * Changed ttyplay timeout to 20 minutes with a better error msg. * Made a zero length response on registration just dump you back to the main menu. 1.3.7 (2003/09/06) * Fixed the infamous hlen bug! I was rewinding to the beginning of payload, not header. 1.3.5 (2003/09/05) * Returned SIGWINCH to defaults after exiting virus. This was probably the screen resize crash bug. (maybe?) 1.3.1 (2003/08/30) * First shot at an engine to strip out graphics sets. It is a lot harder than I would have thought, but doable at a 99% or so success rate, I think, which should at least allow people to view games in other graphics sets somewhat. 1.2.22 (2003/08/29) * Expanded README * Hope to have caught the error in a partial read of the error. 1.2.21 (2003/08/28) * Added a README since I noticed people were downloading this. 1.2.20 (2003/08/24) * Added additional check on payload length. Just a sanity thing. 1.2.19 (2003/08/24) * Fixed (hopefully) that nasty bug that occurs when a partial read after header read returned, and caused the next header read to basically read random data (and thus a random length). 1.2.18 (2003/08/14) * After determining select() on files sucks ass, I've just reduced the polling interval on the ttyplay engine to 100ms, and given up on an otherwise proper select call. Humans shouldn't notice the latency, but I always will... grrr... 1.2.17 (2003/08/14) * Put in the 50ms delay from header read until payload read during preads in order to hopefully hack/wait around the race condition 99% of the time. * Added a sleep(10) after receiving SIGHUP until sending one to the child process in the mild hopes that this gets around whatever condition is causing it not to receive and handle the SIGHUP now. 1.2.16 (2003/08/14) * All code is now run through indent(1) for cleanliness * Game playback in progress now finds the last term reset and plays forward from the last header before that reset. * Some effort has been made to trap SIGHUP better and pass that along to child processes as well. This still needs work for nethack itself, but dgamelaunch is clean so far. 1.2.6 (2003/08/08) * Viewing games in progress now works pretty well. 1.2.0beta2 (2003/08/07) * Added initial ttyrec integration, although everything is very broken at this point. Once I learn more about tty libraries than I ever want to know, maybe everything will work again. 1.1.6 (2003/08/06) * The last few revs included minor bugfixes found in production use, changed some text in the program, and 1.1.6 is some minor packaging changes for the purposes of a release to the public of the source code. 1.1.1 (2003/08/02) * Introduced virus (vi editor) code, and provided a new option to edit personal nethack rc files. 1.0.0 (2003/08/01) * Since 0.2.3 has been in production for over a year and a half, it is hereby dubbed 1.0.0. 0.2.2 (2001/11/11) * added change password feature. also is the way to get password crypt()ed 0.2.1 (2001/11/11) * moved more of the crucial config into defines * removed the echo of password on login 0.2.0 (2001/11/11) * added crypt() support for the password file. Now the program first checks for the crypt() password, then the plaintext one for legacy and for ease of admins changing passwords.