git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4976
e03df62e-2008-0410-955e-
edbf42e46eb7
userrec* u; // user record that the lookup is associated with
int ufd;
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)
}
virtual void OnTimeout()
}
virtual void OnTimeout()
virtual bool OnConnected()
{
virtual bool OnConnected()
{
+ Instance->Log(DEBUG,"Ident: connected");
if (u && (Instance->SE->GetRef(ufd) == u))
{
uslen = sizeof(sock_us);
if (u && (Instance->SE->GetRef(ufd) == u))
{
uslen = sizeof(sock_us);
* have an ident field any more.
*/
RFC1413* ident;
* have an ident field any more.
*/
RFC1413* ident;
+ if (user->GetExt("ident_data", ident))
+ {
+ if (ident->timeout_end > ServerInstance->Time())
+ {
+ ident->u = NULL;
+ ServerInstance->RemoveSocket(ident);
+ }
+ }
return (!user->GetExt("ident_data", ident));
}
return (!user->GetExt("ident_data", ident));
}