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,
$LogedInIt really is $LogedIn, not $LoggedIn. If the user is not an Op, $LogedIn is skipped.
$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.
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...