diff options
-rw-r--r-- | src/modules/m_ident.cpp | 12 | ||||
-rw-r--r-- | src/modules/m_spanningtree.cpp | 20 |
2 files changed, 28 insertions, 4 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) diff --git a/src/modules/m_spanningtree.cpp b/src/modules/m_spanningtree.cpp index 842c0e770..16be107e1 100644 --- a/src/modules/m_spanningtree.cpp +++ b/src/modules/m_spanningtree.cpp @@ -2722,7 +2722,15 @@ class ModuleSpanningTree : public Module // an autoconnected server is not connected. Check if its time to connect it WriteOpers("*** AUTOCONNECT: Auto-connecting server \002%s\002 (%lu seconds until next attempt)",x->Name.c_str(),x->AutoConnect); TreeSocket* newsocket = new TreeSocket(x->IPAddr,x->Port,false,10,x->Name); - Srv->AddSocket(newsocket); + if (newsocket->GetState() != I_ERROR) + { + Srv->AddSocket(newsocket); + } + else + { + WriteOpers("*** AUTOCONNECT: Error autoconnecting \002%s\002.",x->Name.c_str()); + delete newsocket; + } } } } @@ -2774,7 +2782,15 @@ class ModuleSpanningTree : public Module { WriteServ(user->fd,"NOTICE %s :*** CONNECT: Connecting to server: \002%s\002 (%s:%d)",user->nick,x->Name.c_str(),(x->HiddenFromStats ? "<hidden>" : x->IPAddr.c_str()),x->Port); TreeSocket* newsocket = new TreeSocket(x->IPAddr,x->Port,false,10,x->Name); - Srv->AddSocket(newsocket); + if (newsocket->GetState() != I_ERROR) + { + Srv->AddSocket(newsocket); + } + else + { + WriteServ(user->fd,"NOTICE %s :*** CONNECT: Error connecting \002%s\002.",user->nick,x->Name.c_str()); + delete newsocket; + } return 1; } else |