View Single Post
  #202 (permalink)  
Old May 25th, 2002
Vinnie Vinnie is offline
BearShare Developer
 
Join Date: May 25th, 2001
Posts: 163
Vinnie is flying high
Default Wrong again

Quote:
Originally posted by Abaris
Adam: is there a reason to completely stop support for 0.4 clients?
There have been a lot of accusations and crap leveled at me for dropping 0.4 connection support but the simple fact is that the 0.6 handshake method is a MUCH more robust system for implementing "temp hosts".

In other words, when a 0.4 host connects to you and you are "full" (i.e. you have no free host slots) you have no choice but to send them 10 (or so) pongs and then disconnect.

During this time, the other host is free to send you queries and pings and pongs and what not, and you have no choice but to accept them (since shutting down the receiver would cause a TCP RESET and prevent the pongs from being delivered).

Using the 0.6 handshake, it is possible to inform the remote end that the servent is full, still deliver alternate IP addresses (via X-Try) and gracefully close the connection.

And its even possible to avoid a TIME_WAIT state, by simply waiting for the remote end to shut down (if you were the one who accepted the connection).

Clearly, this is WAY more efficient than supporting the old 0.4 connections. Personally, I *like* clean code, and it was very therapeutic to lop off the old 0.4 code since what was left is much cleaner, less buggy, and easier to work on.

It also performs much better, and allows us to leave the user with NO time wait states.

But there are certain people (called Trolls) who are just pissed off for one reason or another (admittedly I might have rubbed a few people the wrong way in the past), and see fit to criticize both BearShare and Vinnie (that's me) for dropping 0.4 connection support.
Reply With Quote