]> git.netwichtig.de Git - user/henk/code/inspircd.git/commitdiff
Move lowermap[] into a pre-initialised const array in hashcomp.h,
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Fri, 18 Aug 2006 15:59:23 +0000 (15:59 +0000)
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>
Fri, 18 Aug 2006 15:59:23 +0000 (15:59 +0000)
get rid of InspIRCd::MakeLowertab()

git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4951 e03df62e-2008-0410-955e-edbf42e46eb7

include/hashcomp.h
include/inspircd.h
src/hashcomp.cpp
src/inspircd.cpp
src/wildcard.cpp

index 9ead61b6f4252dcfe9b75df002925fcc4559cec1..218f584e95a09462c28551f025bd1aa5cb7bfe13 100644 (file)
@@ -41,6 +41,24 @@ using irc::sockets::insp_aton;
 using irc::sockets::insp_ntoa;
 using irc::sockets::insp_inaddr;
 
+#ifndef LOWERMAP
+#define LOWERMAP
+unsigned const char lowermap[256] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 
+                               20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 
+                               40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 
+                               60, 61, 62, 63, 64, 97, 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 
+                               112, 113, 114, 115, 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 94, 95, 96, 97, 98, 99, 
+                               100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, 113, 114, 115, 116, 117, 118, 119, 
+                               120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, 131, 132, 133, 134, 135, 136, 137, 138, 139, 
+                               140, 141, 142, 143, 144, 145, 146, 147, 148, 149, 150, 151, 152, 153, 154, 155, 156, 157, 158, 159, 
+                               160, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 
+                               180, 181, 182, 183, 184, 185, 186, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 
+                               200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 
+                               220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, 239, 
+                               240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255
+};
+#endif
+
 /** Because of weirdness in g++, before 3.x this was namespace std. It's now __gnu_cxx.
  * This is a #define'd alias.
  */
index 77a1e45ac2fa402a030448a0e8068bcae141ffcc..44f5b519c41a415d42e5d7b3a92af7d07fe12978 100644 (file)
@@ -189,10 +189,6 @@ class InspIRCd : public classbase
         */
        bool DaemonSeed();
 
-       /** Build the upper/lowercase comparison table
-        */
-       void MakeLowerMap();
-
        /** Moves the given module to the last slot in the list
         * @param modulename The module name to relocate
         */
index d4f9e53d646caf6097364ed31a5379be2ddc6d70..f5cc5efe05c71e3e154ba31eb8897af60c7d4e19 100644 (file)
@@ -25,8 +25,6 @@ using namespace std;
 
 #define nspace __gnu_cxx
 
-char lowermap[255];
-
 /******************************************************
  *
  * The hash functions of InspIRCd are the centrepoint
@@ -127,9 +125,7 @@ bool irc::InAddr_HashComp::operator()(const insp_inaddr &s1, const insp_inaddr &
  * std::string which is not only case-insensitive but
  * can also do scandanavian comparisons, e.g. { = [, etc.
  *
- * This class depends on the global 'lowermap' which is
- * initialized at startup by inspircd.cpp, and contains
- * the 'scandanavian' casemappings for fast irc compare.
+ * This class depends on the const array 'lowermap'.
  *
  ******************************************************/
 
@@ -282,18 +278,3 @@ const std::string irc::commasepstream::GetToken()
 irc::commasepstream::~commasepstream()
 {
 }
-
-void InspIRCd::MakeLowerMap()
-{       
-       // initialize the lowercase mapping table
-       for (unsigned char cn = 0; cn < 255; cn++)
-               lowermap[cn] = cn;
-       // lowercase the uppercase chars
-       for (unsigned char cn = 65; cn < 91; cn++)
-               lowermap[cn] = tolower(cn);
-       // now replace the specific chars for scandanavian comparison
-       lowermap[(unsigned char)'['] = '{';
-       lowermap[(unsigned char)']'] = '}';
-       lowermap[(unsigned char)'\\'] = '|';
-}
-
index e58e8039b23506dd72b4c2379a44af08a38c5f67..3fddb2d8b47fdde47185968738302227840a6f2f 100644 (file)
@@ -54,8 +54,6 @@ using irc::sockets::insp_ntoa;
 using irc::sockets::insp_inaddr;
 using irc::sockets::insp_sockaddr;
 
-char lowermap[255];
-
 InspIRCd* SI = NULL;
 
 void InspIRCd::AddServerName(const std::string &servername)
@@ -240,9 +238,7 @@ InspIRCd::InspIRCd(int argc, char** argv)
 
        strlcpy(Config->MyExecutable,argv[0],MAXBUF);
 
-       this->MakeLowerMap();
-
-       OpenLog(argv, argc);
+       this->OpenLog(argv, argc);
        this->stats = new serverstats();
        this->Parser = new CommandParser(this);
        this->Timers = new TimerManager();
@@ -281,10 +277,7 @@ InspIRCd::InspIRCd(int argc, char** argv)
 
        this->Res = new DNS(this);
 
-       this->Log(DEBUG,"RES: %08x",this->Res);
-
        this->LoadAllModules();
-
        /* Just in case no modules were loaded - fix for bug #101 */
        this->BuildISupport();
 
@@ -625,38 +618,22 @@ bool InspIRCd::LoadModule(const char* filename)
        for (unsigned int j = 0; j < Config->module_names.size(); j++)
        {
                if (modules[j]->Prioritize() == PRIORITY_LAST)
-               {
                        put_to_back.push_back(Config->module_names[j]);
-               }
                else if (modules[j]->Prioritize() == PRIORITY_FIRST)
-               {
                        put_to_front.push_back(Config->module_names[j]);
-               }
                else if ((modules[j]->Prioritize() & 0xFF) == PRIORITY_BEFORE)
-               {
                        put_before[Config->module_names[j]] = Config->module_names[modules[j]->Prioritize() >> 8];
-               }
                else if ((modules[j]->Prioritize() & 0xFF) == PRIORITY_AFTER)
-               {
                        put_after[Config->module_names[j]] = Config->module_names[modules[j]->Prioritize() >> 8];
-               }
        }
        for (unsigned int j = 0; j < put_to_back.size(); j++)
-       {
                MoveToLast(put_to_back[j]);
-       }
        for (unsigned int j = 0; j < put_to_front.size(); j++)
-       {
                MoveToFirst(put_to_front[j]);
-       }
        for (std::map<std::string,std::string>::iterator j = put_before.begin(); j != put_before.end(); j++)
-       {
                MoveBefore(j->first,j->second);
-       }
        for (std::map<std::string,std::string>::iterator j = put_after.begin(); j != put_after.end(); j++)
-       {
                MoveAfter(j->first,j->second);
-       }
        BuildISupport();
        return true;
 }
index 502dc89c3273ab54b8b7f82729eb342ad81faa41..b0602c82e4cadf2fd9a63b24358567bc11efc513 100644 (file)
@@ -19,7 +19,7 @@ using namespace std;
 #include <string>
 #include "inspircd_config.h"
 #include "inspircd.h"
-
+#include "hashcomp.h"
 #include "inspstring.h"
 
 using irc::sockets::MatchCIDR;
@@ -39,7 +39,6 @@ bool match(const char *str, const char *mask)
        unsigned char *cp, *mp;
        unsigned char* string = (unsigned char*)str;
        unsigned char* wild = (unsigned char*)mask;
-       extern char lowermap[255];
 
        while ((*string) && (*wild != '*'))
        {