From c80a20b5a789f4c2079fe10da89a4095e179a35b Mon Sep 17 00:00:00 2001 From: danieldg Date: Sat, 17 Oct 2009 02:43:07 +0000 Subject: Clean up excessive bits in User struct git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@11882 e03df62e-2008-0410-955e-edbf42e46eb7 --- src/users.cpp | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) (limited to 'src/users.cpp') diff --git a/src/users.cpp b/src/users.cpp index 324edbfdb..657225069 100644 --- a/src/users.cpp +++ b/src/users.cpp @@ -228,17 +228,16 @@ User::User(const std::string &uid) Penalty = 0; lastping = signon = idle_lastmsg = nping = registered = 0; bytes_in = bytes_out = cmds_in = cmds_out = 0; - quietquit = quitting = exempt = haspassed = dns_done = false; + quietquit = quitting = exempt = dns_done = false; fd = -1; server_sa.sa.sa_family = AF_UNSPEC; client_sa.sa.sa_family = AF_UNSPEC; - MyClass = NULL; AllowedPrivs = AllowedOperCommands = NULL; if (uid.empty()) - uuid.assign(ServerInstance->GetUID(), 0, UUID_LENGTH - 1); + uuid = ServerInstance->GetUID(); else - uuid.assign(uid, 0, UUID_LENGTH - 1); + uuid = uid; ServerInstance->Logs->Log("USERS", DEBUG,"New UUID for user: %s (%s)", uuid.c_str(), uid.empty() ? "allocated new" : "used remote"); @@ -846,10 +845,13 @@ void User::FullConnect() /* Check the password, if one is required by the user's connect class. * This CANNOT be in CheckClass(), because that is called prior to PASS as well! */ - if (this->MyClass && !this->MyClass->GetPass().empty() && !this->haspassed) + if (MyClass && !MyClass->pass.empty()) { - ServerInstance->Users->QuitUser(this, "Invalid password"); - return; + if (ServerInstance->PassCompare(this, MyClass->pass.c_str(), password.c_str(), MyClass->hash.c_str())) + { + ServerInstance->Users->QuitUser(this, "Invalid password"); + return; + } } if (this->CheckLines()) -- cgit v1.2.3