$RevConnectToMe question ....

Technical discussion about the NMDC and <a href="http://dcpp.net/ADC.html">ADC</A> protocol. The NMDC protocol is documented in the <a href="http://dcpp.net/wiki/">Wiki</a>, so feel free to refer to it.

Moderator: Moderators

Locked
dahwoud
Posts: 3
Joined: 2004-04-13 09:22

$RevConnectToMe question ....

Post by dahwoud » 2004-05-10 05:19

:evil:

I thinks that $RevConnectToMe is not very well thinked, i explain why with a little commands sequence:


Me->H: $RevConnectToMe mynick user1nick
H->Me: $RevConnectToMe user1nick mynick

everything fine with passive client, cause i always receive $RevConnectToMe from them directly after sending $RevConnectToMe ...

But it's completly different with active client
Me->H: $RevConnectToMe mynick user2nick
H->Me: $ConnectToMe mynick IP:PORT
Me->H: $RevConnectToMe mynick user3nick
Me->H: $RevConnectToMe mynick user4nick
H->Me: $ConnectToMe mynick IP:PORT
H->Me: $ConnectToMe mynick IP:PORT

In most case, i receive usernick $ConnectToMe directly after sending my $RevConnectToMe, this is the case with user2

But, user3nick doesn't respond immediatly, so in case of user3nick & user4nick, it is impossible to determine from whose $ConnectToMe comes from ...

I don't understand why original DC protocol doesn't include mynick in $ConnectToMe. Is there a way to hack this lack ?

thanks ...

ivulfusbar
Posts: 506
Joined: 2003-01-03 07:33

Post by ivulfusbar » 2004-05-10 05:27

Yes there is a way that i and cologic favor. Its called the magic cookie. But hacking the old nmdc-protocol developed by Jon when he was 17 is not interesting anymore. If you look at the ADC specification http://dcplusplus.sf.net/ADC.htm , the token will unqiley identify which connection we talk about. The token in the ADC_protocol is what cologic and I sometimes refer to as the magic cookie.

The ADC-protocol has already begun to be implimented in the dc++ core. A fully freely distributed hub for the ADC_protocol is not yet available to the masses. I think no one has gone public yet.

don't-blame-us-for-the-nmdc-protocol-we-have-only-been-involved-in-the-ADC-protocol-if-we-ignore-the-adding-of-supports-dervied-commands'ly'ers
Everyone is supposed to download from the hubs, - I don´t know why, but I never do anymore.

ivulfusbar
Posts: 506
Joined: 2003-01-03 07:33

Post by ivulfusbar » 2004-05-10 07:16

Several other tricks has been tried aswell which is more of hacks within the current protocol. We tried and played with following.

aUser to hub: $ConnectToMe AnotherUser ip:port
Hub to AnotherUser: $ConnectToMe SwitchNicknameAndHaveaUsersNicknameInstead ip:port

Unfortunantly some clients actualy checked its own nickname in recieved $ConnectToMe.

Another trick we tried is the following; To insert a cookie into the portnumber, i.e. to have
aUser to hub: $ConnectToMe AnotherUser ip:port:cookie
Hub to anotherUser $ConnectToMe AnotherUser ip:port:cookie

But this did not work either that well, some hubsofts had limits on this cookie being sent, i.e. limits on how long $ConnectToMe strings could be. And this is also very DC++ish since in the C/C++ish world very often converttointfromstring(1234foooasdlaskjasd) = 1234.

two-other-things-we-played-with-within-the-current-protocol-ly'ers.
Everyone is supposed to download from the hubs, - I don´t know why, but I never do anymore.

Locked