diff options
Diffstat (limited to 'src/modules/m_ident.cpp')
-rw-r--r-- | src/modules/m_ident.cpp | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/src/modules/m_ident.cpp b/src/modules/m_ident.cpp index 93fe115a2..2f8ac8283 100644 --- a/src/modules/m_ident.cpp +++ b/src/modules/m_ident.cpp @@ -165,8 +165,16 @@ class ModuleIdent : public Module // Server::AddSocket() call. Srv->SendServ(user->fd,"NOTICE "+std::string(user->nick)+" :*** Looking up your ident..."); RFC1413* ident = new RFC1413(user, IdentTimeout, Srv); - user->Extend("ident_data", (char*)ident); - Srv->AddSocket(ident); + if (ident->GetState() != I_ERROR) + { + user->Extend("ident_data", (char*)ident); + Srv->AddSocket(ident); + } + else + { + Srv->SendServ(user->fd,"NOTICE "+std::string(user->nick)+" :*** Could not find your ident, using "+std::string(user->ident)+" instead."); + delete ident; + } } virtual bool OnCheckReady(userrec* user) |