DCgate | The only way to share!
 
HOME - CHANGE LOG - DOWNLOAD - WIKI - FORUM - STATS - IRC SERVER
 

3.2 (August 26, 2006)
- DNS resolver now gets the server list before each lookup, because the user may switch ISPs while DCgate is running.
- Added a 'dns_server' option to the ini file, because occasionally it's useful to 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

 

 

PLEASE NOTE: THIS PROGRAM IS NOT FOR SHARING COPYRIGHTED MATERIAL. IT IS THE USERS RESPONSIBILITY TO MAKE SURE THAT THEY HAVE THE RIGHT TO DOWNLOAD AND SHARE FILES USING THIS PROGRAM. THE AUTHOR, THE ISP AND THE NETWORK BEAR NO RESPONSIBILITY FOR THE ACTIONS OF PEOPLE USING THIS PROGRAM.

This Site and all content is © 2005-2006 by Dark Horse Networks. DCgate was created by Paul Marks