]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/users.cpp
+Q and +C (remote quit and connect) snomasks implemented
[user/henk/code/inspircd.git] / src / users.cpp
index 27eb0a1f696dead2f14733927e4e23d761eca836..36905beefb5ab0a9d9d02136a9602dbd1569bea4 100644 (file)
@@ -98,8 +98,12 @@ std::string userrec::ProcessNoticeMasks(const char *sm)
        const char *c = sm;
        std::string output = "";
 
+       ServerInstance->Log(DEBUG,"Process notice masks");
+
        while (c && *c)
        {
+               ServerInstance->Log(DEBUG,"Process notice mask %c",*c);
+               
                switch (*c)
                {
                        case '+':
@@ -111,7 +115,7 @@ std::string userrec::ProcessNoticeMasks(const char *sm)
                        default:
                                if ((*c >= 'A') && (*c <= 'z') && (ServerInstance->SNO->IsEnabled(*c)))
                                {
-                                       if ((IsNoticeMaskSet(*c) && adding) || (!IsNoticeMaskSet(*c) && !adding))
+                                       if ((!IsNoticeMaskSet(*c) && adding) || (IsNoticeMaskSet(*c) && !adding))
                                        {
                                                if ((oldadding != adding) || (sm == c))
                                                        output += (adding ? '+' : '-');
@@ -287,6 +291,7 @@ userrec::userrec(InspIRCd* Instance) : ServerInstance(Instance)
        invites.clear();
        chans.resize(MAXCHANS);
        memset(modes,0,sizeof(modes));
+       memset(snomasks,0,sizeof(snomasks));
        
        for (unsigned int n = 0; n < MAXCHANS; n++)
        {
@@ -718,7 +723,9 @@ void userrec::QuitUser(InspIRCd* Instance, userrec *user,const std::string &quit
        if (user->registered == REG_ALL)
        {
                if (IS_LOCAL(user))
-                       Instance->WriteOpers("*** Client exiting: %s!%s@%s [%s]",user->nick,user->ident,user->host,reason.c_str());
+                       Instance->SNO->WriteToSnoMask('q',"Client exiting: %s!%s@%s [%s]",user->nick,user->ident,user->host,reason.c_str());
+               else
+                       Instance->SNO->WriteToSnoMask('Q',"Client exiting: %s!%s@%s [%s]",user->nick,user->ident,user->host,reason.c_str());
                user->AddToWhoWas();
        }
 
@@ -1074,7 +1081,7 @@ void userrec::FullConnect(CullList* Goners)
        FOREACH_MOD(I_OnUserConnect,OnUserConnect(this));
        FOREACH_MOD(I_OnPostConnect,OnPostConnect(this));
        this->registered = REG_ALL;
-       ServerInstance->WriteOpers("*** Client connecting on port %d: %s!%s@%s [%s]", this->GetPort(), this->nick, this->ident, this->host, this->GetIPString());
+       ServerInstance->SNO->WriteToSnoMask('c',"Client connecting on port %d: %s!%s@%s [%s]", this->GetPort(), this->nick, this->ident, this->host, this->GetIPString());
 }
 
 /** userrec::UpdateNick()