Personal tools

DCgate Changelog

From Dtella Wiki

Jump to: navigation, search


3.2 (August 26, 2006)

  • DNS resolver now gets the server list before each lookup, because the user mayswitch ISPs while DCgate is running.
  • Added a 'dns_server' option to the ini file, because occasionally it's usefulto resolve from a specific server.
  • Removed prevent_clones. It's annoying and doesn't solve a real problem.

3.1 (March 6, 2006)

  • The 'rank' command can be followed by a specific username.
  • Display of virtual nicks looks a bit more consistent.
  • Shows a status message when the topic is locked or unlocked.
  • Login step 6 now mentions if any messages were missed.
  • Added a handler for the '+me' command used by BCDC++

3.0 (February 12, 2006)

  • Due to protocol changes, v3 runs on a different channel than v2.
  • Lots of improvements to make things mesh better with IRC.
  • Created a "-data" channel to keep searches and info packets separate from the main chat channel.
  • IRC users are now visible on the DC userlist (with a prefix of ~)
  • It's possible to send private messages between IRC and DC users.
  • Added DNS-configurable "virtual nicks" to make NickServ, etc. appear in the userlist.
  • Added the ability to receive NOTICEs from other IRC users. This should be helpful when implementing certain kinds of bots.
  • Server pinging is now done using the PING command, instead of sending a self-NOTICE.
  • Commands can now begin with ! or /, since some DC clients can be picky about /.
  • Added the !rank command, to show your relative share size rank.
  • Added the ability to specify a minimum share size for the channel.
  • IRC nicks for DC users have a configurable prefix, currently set to just "|"
  • All the commands are now non-public, for now.
  • Uses the new icon that darkhorse made.

2.5 (December 5, 2005)

  • Fixed a bug that caused a connection abort after receiving a specific malformed packet.
  • Strips mIRC color codes from TOPIC and KICK messages.
  • Keeps track of the op/voice status for IRC users, and displays the appropriate prefixes in the /nicks output.

2.4 (November 1, 2005)

  • After a user quits, their info is now retained for about 30 minutes. This should help prevent the userlist from going blank after a netsplit.
  • Rebroadcasts an info packet to the main channel every few hours, so that even if somebody does lose your info, they'll get it back someday.
  • Disabled Nagle's algorithm on the socket which connects to the local DC client. This should theoretically lead to *slightly* less lag.
  • Fixed a crash in the close() method of IrcHandler.
  • If the "You don't seem to be connecting ..." case is encountered, it will now display your IRC origin, to aide in debugging.
  • Using /topic with no arguments now dispays (set by <nick>) at the end.
  • Pings the server every minute or so to make sure the connection is still solid.
  • Computes the average ping time, and uses that to send Info messages slightly earlier. For slow connections, this helps prevent late Infos.
  • Added /dense command to display bytes shared per user in each hall.
  • Displays server-wide NOTICE messages in the form "<*NOTICE/Nick> text"
  • If IrcHandler raises an exception, some debug info will be printed to the DC Client before exiting.
  • The kick message now gets displayed for IRC users also.
  • Strips out mIRC color codes and other annoying things aren't supported by DC.

2.3 (September 26, 2005)

  • I found a flaw in the previous implementation of Info-sending that could cause rolling disconnections under certain circumstances, because many IRC servers limit the number of targets that a client can send to over a short period of time. To get around this, DCgate now sends all on-join info messages to an "init" channel, instead of individually messaging each new user.
  • Implemented a non-decreasing timer object, so that big changes in the system time can't lead to unexpected behavior.
  • Replies to ctcp PING and TIME, in addition to VERSION.
  • The standard CTCP replies are now rate-limited, using a neat little algorithm I found while reading through the UnrealIRCd source code.
  • IRC error codes are now divided into 'fatal' and 'non-fatal'. A few specific errors merit a disconnection, but the rest just get displayed to the client.

2.2 (September 22, 2005)

  • Bugfix Release
  • Rewrote ip/hostname detection to use dnspython instead of the socket calls. This fixed some bugs, simplified the code, and made detection more robust.
  • Origin-matching regular expression now allows for a ~ before the username.

2.1 (September 15, 2005)

  • InfoDelay is now simpler and more efficient. Replaced a list with a heap, and replaced a polling loop with smarter management of the select() call.
  • Added a watchdog timer when logging on, to close the connection if the login fails to complete after ~60 seconds without throwing any other errors.
  • Placed a limit on multipart messages to prevent flooding and confusion.
  • Code divided between a few source files for better organization.
  • Turned some ugly if-chains into O(1) dictionary lookups.
  • Switched over to Python's string formatting operator for most of the text output.
  • Automatic IP replacement is now all-or-never (configurable in the ini file).
  • Merged what little remained of IrcAsync into the main program.
  • Stricter compliance with the DC protocol: Nicklist and user info won't be sent until after the client requests them.
  • Improved handling of "impossible" IRC/DC messages.
  • Lots more comments in the code.
  • Changed search limit from 1-per-5s to 3-per-10s

2.0 (August 6, 2005)

  • Added a line to catch this really weird connection error I just noticed. It might have only been a problem on Linux.

2.0rc3 (June 2, 2005)

  • When setting the topic, deobfuscate the $ and | characters.
  • Added the /nicks command to list the invisible IRC people

2.0rc2 (May 15, 2005)

  • Fixed bug that prevented passive mode from working
  • Added CS and ECN to the halls list
  • Some minor tweaks to restore compatibility with (older) Python 2.3
  • Re-enabled the "MODE +x" masking of hostnames (but not IP addresses)
  • Better hall-key resolution when the server can't get your hostname

2.0rc1 (May 6, 2005)

  • Fixed some crazy behavior in response to a KICK message
  • brought back the /version command

2.0-test1 (May 5, 2005)

  • MyINFO messages on login are delayed randomly to reduce chances of IRC flooding
  • restructured most of the program to be more object oriented
  • server/channel/version info is now stored in a TXT record in DNS for dynamic reconfigurability
  • extra non-IRC characters are now allowed in DC nicks, through the use of escape sequences
  • users are able to set a new channel topic (when it's not locked)
  • nick hashes have been moved to the username field in IRC
  • added p-commands, to let you view hall stats privately
  • optionally block the output from public commands
  • source authorization is based on IP or hostname, in case the hostname lookup fails
  • hall names now appear in the "Connection" field, rather than the description
  • always responds to $GetINFO packets, when the info is available. This causes certain clients to behave better.
  • messages from IRC users are visible in the main chat, with their nick enclosed in [brackets].
  • server messages are transmitted as CTCP replies, so IRC clients can be set to ignore them.
  • default port number changed to 6473, to avoid privlieged ports on UNIX-like systems.
  • uses a self-NOTICE to determine hostname, maximum line length, nick length, etc.
  • mild anti-leech: users who don't share anything aren't able to make connections
  • added a hashbang for running the script directly on UNIX-like systems
  • stripped down the ircAsync library to do simpler dispatches.

1.3 (January 20, 2005)

  • built with Python 2.4
  • Fixed a race condition that would sometimes mark yourself as "Unknown" and sharing 0 bytes.

1.2 (November 13, 2004)

  • built with Python 2.4b2
  • fixed 100% cpu usage bug when server has problems
  • tries to connect to an alternate server when certain problems occur
  • when a new version is released, it provides a URL (from the chan topic)
  • displays current channel topic (if any).
  • Included "Kill DCgate" shortcut
  • Added /commands, /version, and /topic

1.1 (October 18, 2004)

  • built with Python 2.4b1
  • added /shared command
  • Obfuscated the channel password
  • IRC address determined by a dyndns hostname.
  • When logging in, reports the actual server address.
  • Properly calculates the exact maximum line length.
  • Automatically determines user's IP address instead of saying "client is confused..."

1.0 (October 12, 2004)

  • built with Python 2.4a3
  • new Python fixed the connection timeout bug on Windows
  • Added IRC channel password
  • Added the ability to see search results from yourself.

0.6.2 (October 1, 2004)

  • Inserted DCgate version into the ++ tag.
  • Improved handling of hall suffixes in description

0.6.1 (September 29, 2004)

  • Fixed critical nick list bug, which caused bad things to happen when the count hit 30 or so.
  • Replies to CTCP VERSION requests

0.6 (September 28, 2004)

  • IRC address pulled from a geocities webpage. Effective, but not very clean.

0.5.2 (September 27, 2004)

  • IRC address was locked to BS-Fnet's round-robin DNS. turned out to be a bad idea.

0.5.1 (September 26, 2004)

  • IRC address was chosen randomly from a list of 3

0.5 (September 26, 2004)

  • Realized ~ was not a permitted nick character, and replaced it with |
  • DCgate version visible in the IRC /whois

0.2 .. 0.4 (September 25, 2004)

  • New, shorter command formats
  • Restricted connection requests to private messages.
  • Added the /me command
  • Removed special prefixes from nicknames, just in case.
  • sends keep-alive messages to prevent router drop-outs.

0.1 (September 24, 2004)

  • First public test release