### CHANGES 04/22/01 qirc-1.26 - Fix bugs in previous releases - Ban format changed to free-form wildcard(*,?) format See: game.ban.example 05/14/00 qirc-1.25 - Fix bugs / clean up 04/16/00 qirc-1.24 - Fix check_timeout bug which can cause avalanche disconnection - Separate timeout cycle time for gameplay and suddendeath/custom This is in turn reduce CPU usage significantly - Fix bug which allows a player to perform a switch with dead players - Remove fscanf routine in numerous places and replace with new code to avoid infinite loop bug for notepad-based server runner - Ignore csx where x is not 1,2 or 4 in the game with special blocks. Adjust level update detection parameters for cheat/lag - Make the program display something when the server start :) to avoid newbie confusion of seeing nothing - Fix buffer overflow bug in sendwinlist 03/18/00 qirc-1.23 - Fix buffer overflow in lvprintf() which happens to all version of tetrix! - Fix /who in qirc support - Put the support for /quote set in qirc for basic channel settings 02/06/00 qirc-1.22 - Fix bug in level_increase setting reported by gimp/ekn - Fix motd bug reported by gimp 01/03/00 qirc-1.21-final 12/05/99 qirc-1.20 - Spectator support for gtetrinet and tspec is now ready - Major code clean up. Create net_playback_send() - Rewrite arg part of lvprintf lprintf tprintf net_query_parser() to use a portable vsnprintf. varargs.h style is obsoleted. Also fix the buffer overflow potential due to "vsprintf". - Fix various part in spectator support - Fix a various minor bugs in irc support - Block invalid/corrupt field send by clients - This version will obsolete the qirc-0.5x development. qirc-0.5x will no longer be maintained 11/07/99 qirc-1.08d *beta release* - Fix nick/team name check to better detect invalid nick/team name - Fix spectator support for /move, invalid / command, add /help - Fix qirc to be more rfc1459 compliant 10/16/99 qirc-1.06m *experimental* - Game play watch (spectators) / playback support for gtetrinet and Tspec. (README.qirc.spectators) - New ban format: See examples in ./bin directory. This makes it possible to handle both hostname and IP. - New ban scheme and files: game.(ban, compromise, allow) Server first checks game.ban (hard banlist) and ban that person immediately. After a player has logged on (server received team name), server checks game.ban.compromise and game.allow the players will be banned if they are in compromise file but not in game.allow file. Allow file contains nickname/password which will be allowed as privilledge access. (password = teamname) i.e You can allow just your close AOL friends to play but not other AOL users. - To make new ban/allow list take effect you need to go to an irc session and type /quote readaccesslist !!!! (This is to reduce server resource consumption. We don't want to read banfile on each player join). Restart the server would also do it. - Add game type "nickonly". Server ignores teamnames when updating winlist. Players who teamup will not get any points. - Fix server did not aware of a color in nickname (report by dynweb) - More aggressive cheat detector especially for PURE! Server counts no. of pieces drops and analyze it. i.e. you cannot drop only 3 pieces in total and add 1 line to all. This in turn prevents the lag effect from previous game (have you seen someone playing previous game while you are playing current game?). Server detects a bogus message pattern. And detect invalid lvl update which could cause immediate level increase for all players. To look for a cheater do "cat game.log |grep Cheating" - Add broadcast message command "/quote wall" to qirc - Server now informs qirc clients when a qirc client exits. - Optimize server CPU usage in many places. Also remove most lvprintf line (Only important events are logged). - Fix qirc not to allow same nicknames (irc/player/spectators) - Fix a minor tetrix typo which made the channel STATE INGAME even noone is on the channel. - Change scoring. Winner get 2or3 points runner-up get 0or1 point - Fix unsafe pline command parsing code in original Tetrix. - Fix win report on non-playing sockets. - Add a small code to make it possible for a client to know that this server is a unix server. 03/10/99 qirc-1.05a - Patch against attack using EOL in nick or teamname - Block cheater who uses special in PURE channel - Support 2 winlists which can be set using winlist_file (1, 2 or -1) where -1 = no score recorded. - /winlist #channelname - Fix /msg bug suggested by ekn 02/15/99 qirc-1.04 - Implement flood control at game start to prevent people get flooded off - Implement new timeout control scheme. Timeout is now reset at net_activity, net_telnet and pline. Each net_t has 2 timeout variables to handle each case. - Add wlist_cache variable to net_t to possibly reduce the winlist update time. Also remove readwinlist() at game start and increase MAXWINLIST to 800. Add net_query_creadwinlist - Minor change to net_query_cuserhost and cmode - Bound check strcpy() in various places 02/01/99 qirc-1.03 - Fixed the mysterious access violation bugs =) 01/30/99 qirc-1.02 - Fix pause thingy. - Bound check /topic (net_query_ctopic) - Change startgame 0 so that game can be stopped when paused. - Change MAXWINLIST to 200. suggested by ekn. 01/28/99 qirc-1.01 - add nickname to server chat message :) suggested by ekn 01/26/99 qirc-1.0 - First public release Any suggestion, please email drslum@tetrinet.org