]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Removed a whole lot of strchr's looking for mode +o where we can do if *user->oper
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Wed, 15 Feb 2006 19:23:01 +0000 (19:23 +0000)
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Wed, 15 Feb 2006 19:23:01 +0000 (19:23 +0000)
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@3221 e03df62e-2008-0410-955e-edbf42e46eb7

16 files changed:
src/channels.cpp
src/cmd_modules.cpp
src/cmd_oper.cpp
src/cmd_stats.cpp
src/cmd_trace.cpp
src/cmd_who.cpp
src/command_parse.cpp
src/commands.cpp
src/modules/m_nonicks.cpp
src/modules/m_operchans.cpp
src/modules/m_operlevels.cpp
src/modules/m_override.cpp
src/modules/m_restrictchans.cpp
src/modules/m_restrictmsg.cpp
src/modules/m_userip.cpp
src/users.cpp

index ec1be82cd0bbbccccc2482a67c0d2b5fc6e18001..8e5917d8564c8342a51ac398d7bf5a5e80b11267 100644 (file)
@@ -427,7 +427,7 @@ chanrec* add_channel(userrec *user, const char* cn, const char* key, bool overri
                user->chans.push_back(a);
                return c;
        }
-       else if (strchr(user->modes,'o'))
+       else if (*user->oper)
        {
                /* Oper allows extension up to the OPERMAXCHANS value */
                if (user->chans.size() < OPERMAXCHANS)
index 460290edcf41a1fd8ffaa37a046e3f6f040989f2..0a7108267f728aa93e71facdff2439ac6a3b9646 100644 (file)
@@ -96,7 +96,7 @@ void cmd_modules::Handle (char **parameters, int pcnt, userrec *user)
                if (!flagstate[0])
                        strcpy(flagstate,"  <no flags>");
                strlcpy(modulename,Config->module_names[i].c_str(),256);
-               if (strchr(user->modes,'o'))
+               if (*user->oper)
                {
                        if ((pcnt >= 2) && (!strcasecmp(parameters[0],"debug")))
                        {
index 8e57329d4702899a37f0652c3ca431743f930357..435e37e5920046a2718dca25d2c0d55471fb9ebf 100644 (file)
@@ -125,7 +125,7 @@ void cmd_oper::Handle (char **parameters, int pcnt, userrec *user)
                 /* correct oper credentials */
                 WriteOpers("*** %s (%s@%s) is now an IRC operator of type %s",user->nick,user->ident,user->host,OperType);
                 WriteServ(user->fd,"381 %s :You are now an IRC operator of type %s",user->nick,OperType);
-               if (!strchr(user->modes,'o'))
+               if (!*user->oper)
                {
                        strcat(user->modes,"o");
                        WriteServ(user->fd,"MODE %s :+o",user->nick);
index 98d3987e714b9e0b23b2f29abfea4e03311c3b39..d784b02f6a085c0b67fc6783badb5635e74ec542 100644 (file)
@@ -136,7 +136,7 @@ void cmd_stats::Handle (char **parameters, int pcnt, userrec *user)
                int idx = 0;
                for (user_hash::iterator i = clientlist.begin(); i != clientlist.end(); i++)
                {
-                       if (strchr(i->second->modes,'o'))
+                       if (*i->second->oper)
                        {
                                WriteServ(user->fd,"249 %s :%s (%s@%s) Idle: %d",user->nick,i->second->nick,i->second->ident,i->second->dhost,(TIME - i->second->idle_lastmsg));
                                idx++;
index 19b653842e81004fd4d40dd318ee749ac770c45e..242ff758659981d780fa86786b80f8940533b7a3 100644 (file)
@@ -70,7 +70,7 @@ void cmd_trace::Handle (char **parameters, int pcnt, userrec *user)
                {
                        if (isnick(i->second->nick))
                        {
-                               if (strchr(i->second->modes,'o'))
+                               if (*i->second->oper)
                                {
                                        WriteServ(user->fd,"205 %s :Oper 0 %s",user->nick,i->second->nick);
                                }
index 8292c0167576f5675e9d0b6bf33b8790a99ce75c..ecb52ea293c1c1d51a646f63b06e0b9f0457bc8b 100644 (file)
@@ -88,7 +88,7 @@ void cmd_who::Handle (char **parameters, int pcnt, userrec *user)
                                                } else {
                                                        strlcat(tmp, "H", 9);
                                                }
-                                               if (strchr(i->second->modes,'o')) { strlcat(tmp, "*", 9); }
+                                               if (*i->second->oper) { strlcat(tmp, "*", 9); }
                                                WriteServ(user->fd,"352 %s %s %s %s %s %s %s :0 %s",user->nick, Ptr ? Ptr->name : "*", i->second->ident, i->second->dhost, i->second->server, i->second->nick, tmp, i->second->fullname);
                                                if (n_list++ > Config->MaxWhoResults)
                                                {
@@ -125,7 +125,7 @@ void cmd_who::Handle (char **parameters, int pcnt, userrec *user)
                                                } else {
                                                        strlcat(tmp, "H", 9);
                                                }
-                                               if (strchr(i->second->modes,'o')) { strlcat(tmp, "*", 9); }
+                                               if (*i->second->oper) { strlcat(tmp, "*", 9); }
                                                strlcat(tmp, cmode(i->second, Ptr),5);
                                                WriteServ(user->fd,"352 %s %s %s %s %s %s %s :0 %s",user->nick, Ptr->name, i->second->ident, i->second->dhost, i->second->server, i->second->nick, tmp, i->second->fullname);
                                                 n_list++;
@@ -156,7 +156,7 @@ void cmd_who::Handle (char **parameters, int pcnt, userrec *user)
                                } else {
                                        strlcat(tmp, "H" ,9);
                                }
-                               if (strchr(u->modes,'o')) { strlcat(tmp, "*" ,9); }
+                               if (*u->oper) { strlcat(tmp, "*" ,9); }
                                WriteServ(user->fd,"352 %s %s %s %s %s %s %s :0 %s",user->nick, u->chans.size() && u->chans[0].channel ? u->chans[0].channel->name
                                 : "*", u->ident, u->dhost, u->server, u->nick, tmp, u->fullname);
                        }
index e5fc8fd7d9b34575b699f6d6cb92ed0de468bf37..0c61fd8b1ec24fe7b8392152e47a2f758eafa3b6 100644 (file)
@@ -596,7 +596,7 @@ void CommandParser::ProcessCommand(userrec *user, char* cmd)
                                        return;
                                }
                        }
-                       if ((user->registered == 7) && (!strchr(user->modes,'o')))
+                       if ((user->registered == 7) && (!*user->oper))
                        {
                                std::stringstream dcmds(Config->DisabledCommands);
                                while (!dcmds.eof())
index 5cb5af2ad249ef549cdf39e17237feb5407c8dca..00f44c74a4c7e251b99cd3a352e610d9848be8c1 100644 (file)
@@ -118,7 +118,7 @@ void do_whois(userrec* user, userrec* dest,unsigned long signon, unsigned long i
        if (dest->registered == 7)
        {
                WriteServ(user->fd,"311 %s %s %s %s * :%s",user->nick, dest->nick, dest->ident, dest->dhost, dest->fullname);
-               if ((user == dest) || (strchr(user->modes,'o')))
+               if ((user == dest) || (*user->oper))
                {
                        WriteServ(user->fd,"378 %s %s :is connecting from *@%s %s",user->nick, dest->nick, dest->host, (char*)inet_ntoa(dest->ip4));
                }
@@ -146,16 +146,9 @@ void do_whois(userrec* user, userrec* dest,unsigned long signon, unsigned long i
                {
                        WriteServ(user->fd,"301 %s %s :%s",user->nick, dest->nick, dest->awaymsg);
                }
-               if (strchr(dest->modes,'o'))
+               if (*dest->oper)
                {
-                       if (*dest->oper)
-                       {
-                               WriteServ(user->fd,"313 %s %s :is %s %s on %s",user->nick, dest->nick, (strchr("aeiou",dest->oper[0]) ? "an" : "a"),dest->oper, Config->Network);
-                       }
-                       else
-                       {
-                               WriteServ(user->fd,"313 %s %s :is an IRC operator",user->nick, dest->nick);
-                       }
+                       WriteServ(user->fd,"313 %s %s :is %s %s on %s",user->nick, dest->nick, (strchr("aeiou",*dest->oper) ? "an" : "a"),dest->oper, Config->Network);
                }
                if ((!signon) && (!idle))
                {
index 7c13d678ae46993acf6eadd32253535926e9a869..5f7be158044125d89acf80e19f64b9173270bdce 100644 (file)
@@ -71,7 +71,7 @@ class ModuleNoNickChange : public Module
                                        chanrec* curr = user->chans[i].channel;
                                        if (curr->IsCustomModeSet('N'))
                                        {
-                                               if (!strchr(user->modes,'o'))
+                                               if (!*user->oper)
                                                {
                                                        // don't allow the nickchange, theyre on at least one channel with +N set
                                                        // and theyre not an oper
index 1ec4b4fc79a33cefc5f0dcbe6ed419937d4f8318..fb181d1f54930234dfcf0ff7a3667e729de85186 100644 (file)
@@ -49,7 +49,7 @@ class ModuleOperChans : public Module
                {
                        chanrec* chan = (chanrec*)target;
                        
-                       if ((Srv->IsUlined(user->nick)) || (Srv->IsUlined(user->server)) || (!*user->server) || (strchr(user->modes,'o')))
+                       if ((Srv->IsUlined(user->nick)) || (Srv->IsUlined(user->server)) || (!*user->server) || (*user->oper))
                        {
                                log(DEBUG,"Allowing mode +O");
                                return 1;
@@ -75,7 +75,7 @@ class ModuleOperChans : public Module
        
        virtual int OnUserPreJoin(userrec* user, chanrec* chan, const char* cname)
        {
-               if (!strchr(user->modes,'o'))
+               if (!*user->oper)
                {
                        if (chan)
                        {
index da3ab18b36f5b00389881d182c26df2841c8aef1..bf5596330047edbb77f9dfc4866c8e37be1d9da1 100644 (file)
@@ -52,7 +52,7 @@ class ModuleOperLevels : public Module
                {
                        long dest_level = 0,source_level = 0;
                        // oper killing an oper?
-                       if (strchr(dest->modes,'o'))
+                       if (*dest->oper)
                        {
                                for (int j =0; j < conf->Enumerate("type"); j++)
                                {
index b6cafbc7788980cb50bbf77fb715ff01d5eae09c..8dfc5dd6f724b8825ce4ee53899dd2ae72df2840 100644 (file)
@@ -174,7 +174,7 @@ class ModuleOverride : public Module
        
        virtual int OnUserPreJoin(userrec* user, chanrec* chan, const char* cname)
        {
-               if (strchr(user->modes,'o'))
+               if (*user->oper)
                {
                        if (chan)
                        {
index 0ca0dd921602c8dd77d7056ae0f928f645c2cdc9..d4fbdfbb5382b5dcc3a95f163b687e0ac0bce37a 100644 (file)
@@ -68,7 +68,7 @@ class ModuleRestrictChans : public Module
        {
                irc::string x = cname;
                // user is not an oper and its not in the allow list
-               if ((!strchr(user->modes,'o')) && (allowchans.find(x) == allowchans.end()))
+               if ((!*user->oper) && (allowchans.find(x) == allowchans.end()))
                {
                        // channel does not yet exist (record is null, about to be created IF we were to allow it)
                        if (!chan)
index f960c65c81817600d09a2b33c38df4ff5b1020d9..c51ea4850ce5fd4c03e2f9780f5d5b6a0a33386b 100644 (file)
@@ -48,7 +48,7 @@ class ModuleRestrictMsg : public Module
                if (target_type == TYPE_USER)
                {
                        userrec* u = (userrec*)dest;
-                       if ((strchr(u->modes,'o')) || (strchr(user->modes,'o')))
+                       if (*u->oper || *user->oper)
                        {
                                // message allowed if:
                                // (1) the sender is opered
index 48befe370c207f2ac1969ce66c16f77db1fde531..4ffeca3d5a39a3f28b884519f418f70e749e0f26 100644 (file)
@@ -44,7 +44,7 @@ class cmd_userip : public command_t
                        userrec *u = Find(parameters[i]);
                        if (u)
                        {
-                               snprintf(junk,MAXBUF,"%s%s=+%s@%s ",u->nick,strchr(u->modes,'o') ? "*" : "",u->ident,(char*)inet_ntoa(u->ip4));
+                               snprintf(junk,MAXBUF,"%s%s=+%s@%s ",u->nick,*u->oper ? "*" : "",u->ident,(char*)inet_ntoa(u->ip4));
                                strlcat(Return,junk,MAXBUF);
                        }
                }
index 8c3ad496969496421a7e34e4c20813b3e01da714..15663a7d108abfec64e812c638177641922a5869 100644 (file)
@@ -211,7 +211,7 @@ bool userrec::HasPermission(std::string &command)
                return true;
        
        // are they even an oper at all?
-       if (strchr(this->modes,'o'))
+       if (*this->oper)
        {
                for (int j =0; j < Config->ConfValueEnum("type",&Config->config_f); j++)
                {