summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-08-18 15:59:23 +0000
committerbrain <brain@e03df62e-2008-0410-955e-edbf42e46eb7>2006-08-18 15:59:23 +0000
commitd546725cb683f010b6090df78a54f6b943efd034 (patch)
tree53dc7e579f105c1d3d6a3bdef509b9a9ee29cffc /src
parent71b73c76bc0fb46a982a5d1611aa24e9b678b03c (diff)
Move lowermap[] into a pre-initialised const array in hashcomp.h,
get rid of InspIRCd::MakeLowertab() git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@4951 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src')
-rw-r--r--src/hashcomp.cpp21
-rw-r--r--src/inspircd.cpp25
-rw-r--r--src/wildcard.cpp3
3 files changed, 3 insertions, 46 deletions
diff --git a/src/hashcomp.cpp b/src/hashcomp.cpp
index d4f9e53d6..f5cc5efe0 100644
--- a/src/hashcomp.cpp
+++ b/src/hashcomp.cpp
@@ -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)'\\'] = '|';
-}
-
diff --git a/src/inspircd.cpp b/src/inspircd.cpp
index e58e8039b..3fddb2d8b 100644
--- a/src/inspircd.cpp
+++ b/src/inspircd.cpp
@@ -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;
}
diff --git a/src/wildcard.cpp b/src/wildcard.cpp
index 502dc89c3..b0602c82e 100644
--- a/src/wildcard.cpp
+++ b/src/wildcard.cpp
@@ -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 != '*'))
{