]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/users.cpp
Some AddMode fixes
[user/henk/code/inspircd.git] / src / users.cpp
index 78af0ba8df31ad81f21bf7f0bef547ae9a1af94f..fec5694a4dceb80ad83d9e3e21c036dfbbc69ca9 100644 (file)
@@ -11,6 +11,8 @@
  * ---------------------------------------------------
  */
 
+/* $Core: libIRCDusers */
+
 #include "inspircd.h"
 #include <stdarg.h>
 #include "socketengine.h"
@@ -175,9 +177,10 @@ User::User(InspIRCd* Instance, const std::string &uid) : ServerInstance(Instance
        server = (char*)Instance->FindServerNamePtr(Instance->Config->ServerName);
        reset_due = ServerInstance->Time();
        age = ServerInstance->Time(true);
+       Penalty = 0;
        lines_in = lastping = signon = idle_lastmsg = nping = registered = 0;
        ChannelCount = timeout = flood = bytes_in = bytes_out = cmds_in = cmds_out = 0;
-       muted = exempt = haspassed = dns_done = false;
+       OverPenalty = ExemptFromPenalty = muted = exempt = haspassed = dns_done = false;
        fd = -1;
        recvq.clear();
        sendq.clear();
@@ -700,8 +703,8 @@ void User::UnOper()
 
 void User::QuitUser(InspIRCd* Instance, User *user, const std::string &quitreason, const char* operreason)
 {
-       Instance->Log(DEBUG,"QuitUser: %s", user->nick);
-       user->Write("ERROR :Closing link (%s@%s) [%s]", user->ident, user->host, operreason);
+       Instance->Log(DEBUG,"QuitUser: %s '%s'", user->nick, quitreason.c_str());
+       user->Write("ERROR :Closing link (%s@%s) [%s]", user->ident, user->host, *operreason ? operreason : quitreason.c_str());
        user->muted = true;
        Instance->GlobalCulls.AddItem(user, quitreason.c_str(), operreason);
 }
@@ -847,6 +850,15 @@ void User::AddClient(InspIRCd* Instance, int socket, int port, bool iscached, in
         * BOPM and other stuff requires it.
         */
        New->WriteServ("NOTICE Auth :*** Looking up your hostname...");
+
+       if (Instance->Config->NoUserDns)
+       {
+               New->dns_done = true;
+       }
+       else
+       {
+               New->StartDNSLookup();
+       }
 }
 
 unsigned long User::GlobalCloneCount()
@@ -1845,6 +1857,16 @@ const char* User::GetOperQuit()
        return operquit ? operquit : "";
 }
 
+void User::IncreasePenalty(int increase)
+{
+       this->Penalty += increase;
+}
+
+void User::DecreasePenalty(int decrease)
+{
+       this->Penalty -= decrease;
+}
+
 VisData::VisData()
 {
 }