[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