diff options
author | danieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-10-23 22:47:39 +0000 |
---|---|---|
committer | danieldg <danieldg@e03df62e-2008-0410-955e-edbf42e46eb7> | 2009-10-23 22:47:39 +0000 |
commit | b16e16ac1bae4ac5494778b4b8a7009febb58137 (patch) | |
tree | 62839ed4c9a899302146fd9f8bdae2ed919029bf /src/users.cpp | |
parent | 18abdab35dcfa6b3677d3bd8b898261af5acb7ee (diff) |
Make User::uuid and User::server const
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11962 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/users.cpp')
-rw-r--r-- | src/users.cpp | 43 |
1 files changed, 19 insertions, 24 deletions
diff --git a/src/users.cpp b/src/users.cpp index 170b0c7ec..36b41fb18 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -221,14 +221,14 @@ void User::DecrementModes() } } -User::User(const std::string &uid) +User::User(const std::string &uid, const std::string& sid) + : uuid(uid), server(sid) { - server = ServerInstance->Config->ServerName; age = ServerInstance->Time(); - signon = idle_lastmsg = registered = 0; + signon = idle_lastmsg = 0; + registered = 0; quietquit = quitting = exempt = dns_done = false; fd = -1; - uuid = uid; client_sa.sa.sa_family = AF_UNSPEC; ServerInstance->Logs->Log("USERS", DEBUG, "New UUID for user: %s", uuid.c_str()); @@ -240,7 +240,7 @@ User::User(const std::string &uid) throw CoreException("Duplicate UUID "+std::string(uuid)+" in User constructor"); } -LocalUser::LocalUser() : User(ServerInstance->GetUID()) +LocalUser::LocalUser() : User(ServerInstance->GetUID(), ServerInstance->Config->ServerName) { bytes_in = bytes_out = cmds_in = cmds_out = 0; server_sa.sa.sa_family = AF_UNSPEC; @@ -250,7 +250,7 @@ LocalUser::LocalUser() : User(ServerInstance->GetUID()) User::~User() { - if (uuid.length()) + if (ServerInstance->Users->uuidlist->find(uuid) != ServerInstance->Users->uuidlist->end()) ServerInstance->Logs->Log("USERS", ERROR, "User destructor for %s called without cull", uuid.c_str()); } @@ -294,7 +294,7 @@ const std::string& User::MakeHostIP() return this->cached_hostip; } -const std::string User::GetFullHost() +const std::string& User::GetFullHost() { if (!this->cached_fullhost.empty()) return this->cached_fullhost; @@ -328,7 +328,7 @@ char* User::MakeWildHost() return nresult; } -const std::string User::GetFullRealHost() +const std::string& User::GetFullRealHost() { if (!this->cached_fullrealhost.empty()) return this->cached_fullrealhost; @@ -584,11 +584,6 @@ CullResult User::cull() { if (!quitting) ServerInstance->Users->QuitUser(this, "Culled without QuitUser"); - if (uuid.empty()) - { - ServerInstance->Logs->Log("USERS", DEBUG, "User culled twice? UUID empty"); - return Extensible::cull(); - } PurgeEmptyChannels(); if (IS_LOCAL(this) && fd != INT_MAX) Close(); @@ -597,7 +592,6 @@ CullResult User::cull() this->DecrementModes(); ServerInstance->Users->uuidlist->erase(uuid); - uuid.clear(); return Extensible::cull(); } @@ -614,6 +608,13 @@ CullResult LocalUser::cull() return User::cull(); } +CullResult FakeUser::cull() +{ + // Fake users don't quit, they just get culled. + quitting = true; + return User::cull(); +} + void User::Oper(OperInfo* info) { if (this->IsModeSet('o')) @@ -1670,24 +1671,18 @@ void User::ShowRULES() this->WriteNumeric(RPL_RULESEND, "%s :End of RULES command.",this->nick.c_str()); } -void FakeUser::SetFakeServer(std::string name) -{ - this->nick = name; - this->server = name; -} - -const std::string FakeUser::GetFullHost() +const std::string& FakeUser::GetFullHost() { if (!ServerInstance->Config->HideWhoisServer.empty()) return ServerInstance->Config->HideWhoisServer; - return nick; + return server; } -const std::string FakeUser::GetFullRealHost() +const std::string& FakeUser::GetFullRealHost() { if (!ServerInstance->Config->HideWhoisServer.empty()) return ServerInstance->Config->HideWhoisServer; - return nick; + return server; } ConnectClass::ConnectClass(ConfigTag* tag, char t, const std::string& mask) |