userrec* u; // user record that the lookup is associated with
int ufd;
- RFC1413(InspIRCd* SI, userrec* user, int maxtime) : InspSocket(SI, user->GetIPString(), 113, false, maxtime), u(user), ufd(user->GetFd())
+ RFC1413(InspIRCd* SI, userrec* user, int maxtime) : InspSocket(SI, user->GetIPString(), 113, false, maxtime), u(user)
{
+ ufd = user->GetFd();
}
virtual void OnTimeout()
virtual bool OnConnected()
{
+ Instance->Log(DEBUG,"Ident: connected");
if (u && (Instance->SE->GetRef(ufd) == u))
{
uslen = sizeof(sock_us);
*/
user->WriteServ("NOTICE "+std::string(user->nick)+" :*** Looking up your ident...");
RFC1413* ident = new RFC1413(ServerInstance, user, IdentTimeout);
- if (ident->GetState() != I_ERROR)
+ if ((ident->GetState() == I_CONNECTING) || (ident->GetState() == I_CONNECTED))
{
user->Extend("ident_data", (char*)ident);
- ServerInstance->AddSocket(ident);
}
else
- {
- user->WriteServ("NOTICE "+std::string(user->nick)+" :*** Could not find your ident, using "+std::string(user->ident)+" instead.");
- DELETE(ident);
- }
+ delete ident;
}
virtual bool OnCheckReady(userrec* user)
// a user which has now vanished! To prevent this, set ident::u
// to NULL and check it so that we dont write users who have gone away.
ident->u = NULL;
- ServerInstance->RemoveSocket(ident);
}
}
}
if (user->GetExt("ident_data", ident))
{
ident->u = NULL;
- ServerInstance->RemoveSocket(ident);
}
}