]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/users.cpp
Allow modules to prevent a failed connection from being closed.
[user/henk/code/inspircd.git] / src / users.cpp
index 56f9f5591342e17c261579f9e3798f6985e6a9da..c0dc69ff4fc3b2dff5048ab9924d1579c83b5a18 100644 (file)
@@ -105,7 +105,7 @@ LocalUser::LocalUser(int myfd, irc::sockets::sockaddrs* client, irc::sockets::so
        signon = ServerInstance->Time();
        // The user's default nick is their UUID
        nick = uuid;
-       ident = "unknown";
+       ident = uuid;
        eh.SetFd(myfd);
        memcpy(&client_sa, client, sizeof(irc::sockets::sockaddrs));
        memcpy(&server_sa, servaddr, sizeof(irc::sockets::sockaddrs));
@@ -121,7 +121,6 @@ const std::string& User::MakeHost()
        if (!this->cached_makehost.empty())
                return this->cached_makehost;
 
-       // XXX: Is there really a need to cache this?
        this->cached_makehost = ident + "@" + GetRealHost();
        return this->cached_makehost;
 }
@@ -131,7 +130,6 @@ const std::string& User::MakeHostIP()
        if (!this->cached_hostip.empty())
                return this->cached_hostip;
 
-       // XXX: Is there really a need to cache this?
        this->cached_hostip = ident + "@" + this->GetIPString();
        return this->cached_hostip;
 }
@@ -141,7 +139,6 @@ const std::string& User::GetFullHost()
        if (!this->cached_fullhost.empty())
                return this->cached_fullhost;
 
-       // XXX: Is there really a need to cache this?
        this->cached_fullhost = nick + "!" + ident + "@" + GetDisplayedHost();
        return this->cached_fullhost;
 }
@@ -151,7 +148,6 @@ const std::string& User::GetFullRealHost()
        if (!this->cached_fullrealhost.empty())
                return this->cached_fullrealhost;
 
-       // XXX: Is there really a need to cache this?
        this->cached_fullrealhost = nick + "!" + ident + "@" + GetRealHost();
        return this->cached_fullrealhost;
 }
@@ -312,9 +308,12 @@ bool UserIOHandler::OnSetEndPoint(const irc::sockets::sockaddrs& server, const i
        return !user->quitting;
 }
 
-void UserIOHandler::OnError(BufferedSocketError)
+void UserIOHandler::OnError(BufferedSocketError error)
 {
-       ServerInstance->Users->QuitUser(user, getError());
+       ModResult res;
+       FIRST_MOD_RESULT(OnConnectionFail, res, (user, error));
+       if (res != MOD_RES_ALLOW)
+               ServerInstance->Users->QuitUser(user, getError());
 }
 
 CullResult User::cull()
@@ -368,7 +367,7 @@ void User::Oper(OperInfo* info)
        if (info->oper_block)
                opername = info->oper_block->getString("name");
 
-       ServerInstance->SNO->WriteToSnoMask('o',"%s (%s@%s) is now an IRC operator of type %s (using oper '%s')",
+       ServerInstance->SNO->WriteToSnoMask('o', "%s (%s@%s) is now a server operator of type %s (using oper '%s')",
                nick.c_str(), ident.c_str(), GetRealHost().c_str(), oper->name.c_str(), opername.c_str());
        this->WriteNumeric(RPL_YOUAREOPER, InspIRCd::Format("You are now %s %s", strchr("aeiouAEIOU", oper->name[0]) ? "an" : "a", oper->name.c_str()));