[dcc2] Final connection negotiation changes (WAS: Is DCC2 Dead?)

codemastr codemstr at ptd.net
Wed Jan 5 12:24:19 EST 2005


> Why not just have a version token, and set the defaults per version.
> Whenever IPv6 does come around, inc the version a little and define
> new defaults. You could perhaps specify a reply for 'max version
> supported' as an error, in which case the sending client can roll back
> to an earlier version. In any case, a version token is probably
> useful, so that in the future any changes won't have to be by way of
> defining an entirely new CTCP message etc., as DCC2 has done vs
> DCC1...

I disagree. I think we already have a versioning system, the one you just 
mentioned, changing the number in the CTCP. Creating a Version token won't 
conserve bandwidth, it will only waste it (I now have to specify a Version 
token). The DCC CTCP has a builtin version system DCCN. If we create a new 
version, then it is DCC3. This is superior to your proposal in everyway. 
Your proposal requires a fixed order (Version= must be the first token in 
order to ensure that the parameters of the message are interpreted 
correctly). And your method is going to use more bandwidth. You want to add 
a new token, even if we shorten it as much as possible to say, V=N, that's 
still 4 bytes more (trailing space) than my proposal will use. So I don't 
see any benefit to adding a new token as opposed to just increasing the 
number after DCC. Yeah, for something like this, where all we are changing 
is default values, a new token isn't a bad idea. But, for bigger things, 
it's bad. You're assuming that DCC2 v1.0s definition of "a token" will be 
the same as v2.0s, which is a bad assumption to make. The whole purpose of 
having a versioning system is because you can add new features that break 
compatibility. For example, what happens if, for example, version 2.0 
decides that  : makes a better name/value separator than = does (unlikely). 
Your versioning system no longer works (v1.0 requires "V=2 ..." v2.0 
requires "V:2 ..." changing it from DCC2 to DCC3, on the otherhand, would 
handle this flawlessly.

-- codemastr 




More information about the dcc2 mailing list