stupid $MyINFO

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
bulo
Posts: 2
Joined: 2004-05-17 15:18

stupid $MyINFO

Post by bulo » 2004-05-17 15:32

hi
I've got the following problem:
when i try to connect Dc++ v. 0.401 to my server... everything works fine until the server sends $Hello. DC Protocol on wiki says that client should soon send $MyINFO to server... well it doesn't (the same happens to $Version)... DC waits for sth, it asks for INFOs of other clients after receiving $NickList, receives messages from hub and displays it on main chat but doesn't want to pass any messages to others. What is wrong? I do everything as said in wiki... i encounter the same problem with DC:PRO.

thx for replies, sorry for my English

HaArD
Posts: 147
Joined: 2003-01-04 02:20
Location: Canada http://hub-link.sf.net
Contact:

Post by HaArD » 2004-05-17 20:03

Spell out your login sequence in detail.....

Hub Sends $Lock
Hub waits for $Key...

and so on....

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

Post by ivulfusbar » 2004-05-18 00:55

Code: Select all

			if(state == STATE_HELLO) {
				state = STATE_CONNECTED;
				updateCounts(false);

				version(SETTING(CLIENTVERSION));
				getNickList();
				myInfo();
			}
This is what DC++ does if it recives $Hello and are in its initial $Hello-State. First version, then getnicklist, then myinfo. In client-hub-login the nicklist-request is optional.
Everyone is supposed to download from the hubs, - I don´t know why, but I never do anymore.

bulo
Posts: 2
Joined: 2004-05-17 15:18

Post by bulo » 2004-05-18 01:25

Ok, looks like that DC++ is not logged in after receiving $Hello :(

Client connects to hub
Hub sends $Lock= ... Pk=...|
Client replies with $Key ...|$ValidateNick nick|
Hub accepts it and sends $HubName ...|
and $Hello nick|

DC++ should now send $Hello and so on

Sedulus
Forum Moderator
Posts: 687
Joined: 2003-01-04 09:32
Contact:

Post by Sedulus » 2004-05-18 03:06

I had the following conversation with dc++ today
--> $Lock abcde Pk=abcde|
<-- $Key V0p|$ValidateNick [0.5mb]23lutij64|
--> $Hello [0.5mb]23lutij64|
<-- $Version 0.261|$GetNickList|$MyINFO $ALL [0.5mb]23lutij64 ALL<++ V:0.261,M:P,H:3/0/0,S:6>$ $DSL$[email protected]$143605480043$||$Search Hub:[0.5mb]23lutij64 T?F?49999999?1?tmn$dkr2$r26|
't was a simple as opening a netcat session on an unused port, sending $Lock delimited by the pipe, and the $Hello (preceeded by a pipe as well - netcat needs a linefeed to send - so the unknown "\n|" command could be discarded)

(funny enough, it was some random user who connected to this port just when I decided to test.. but it was DC++ according to the tag)


now.. maybe you should consider that your code is not correct. perhaps you didn't flush the socket while the language/library you use needs that?
http://dc.selwerd.nl/hublist.xml.bz2
http://www.b.ali.btinternet.co.uk/DCPlusPlus/index.html (TheParanoidOne's DC++ Guide)
http://www.dslreports.com/faq/dc (BSOD2600's Direct Connect FAQ)

Locked