- if (Instance->SE->GetRef(thefd) == sock)
- {
- if (sock->GetHook() && InspSocketHSCompleteRequest(sock, (Module*)Utils->Creator, sock->GetHook()).Send())
- {
- InspSocketAttachCertRequest(sock, (Module*)Utils->Creator, sock->GetHook()).Send();
- sock->SendCapabilities();
- if (sock->GetLinkState() == CONNECTING)
- {
- sock->WriteLine(std::string("SERVER ")+this->Instance->Config->ServerName+" "+lnk->SendPass+" 0 :"+this->Instance->Config->ServerDesc);
- }
- }
- else
- {
- Instance->Timers->AddTimer(new HandshakeTimer(Instance, sock, lnk, Utils));
- }
- }
+ if (Instance->SE->GetRef(thefd) == sock)
+ {
+ if (!sock->GetHook())
+ {
+ sock->SendCapabilities();
+ }
+ else
+ {
+ if (sock->GetHook() && InspSocketHSCompleteRequest(sock, (Module*)Utils->Creator, sock->GetHook()).Send())
+ {
+ InspSocketAttachCertRequest(sock, (Module*)Utils->Creator, sock->GetHook()).Send();
+ sock->SendCapabilities();
+ }
+ else
+ {
+ Instance->Timers->AddTimer(new HandshakeTimer(Instance, sock, lnk, Utils, 1));
+ }
+ }
+ }