<Introduction / Contents>

Client to Server Login

When first logging in, the client creates a socket connection. The server sends,

$Lock <lock> Pk=<pk>
$HubName <hubname>

The client must then respond with,

$Key <key>
$ValidateNick <nick>

If <nick> is already in use or is otherwise not accepted, the server must send,

$ValidateDenide

It really is $ValidateDenide, not $ValidateDenied. In this case, the client must send $ValidateNick again. Otherwise, the nick is accepted. The server may then send,

$GetPass

to which the client must reply,

$MyPass <password>

If the password is accepted and the user is an Op, the server must send,

$LogedIn
It really is $LogedIn, not $LoggedIn. If the user is not an Op, $LogedIn is skipped.
If the password is not accepted, the server must send,

$BadPass

and close the connection. NMDC hub answers with $HubIsFull even before the nickname is sent. Other hub implementations usually wait until the nickname is validated and then decide whether to let the user in or to disconnect him.
If no password is required or the server accepts the password, the server must finally send,

$Hello <nick>

The user is now logged in.


Download Example:

	Client <-> Server Communication in DC. 01-26-2003. By Sid
	---------------------------------------------------------- 

	Client Hub Login Example
	---------------------- 
	C = client
	H = hub 

	C>H: Connection
	H>C: $Lock <lock> Pk=<pk>|
	H>C: $HubName <hubname>|
	C>H: $Key <key>|$ValidateNick <nick>|
	C>H: $MyINFO $ALL <nick> <interest>$ $<speed>$<e-mail>$<sharesize>$
	C>H: $GetINFO <othernick> <nick>
	C>H: $GetINFO...