]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/configreader.cpp
This file *BROKEN AGAIN* in windows builds (VC9) - uint_16t and uint_32t do not exist...
[user/henk/code/inspircd.git] / src / configreader.cpp
index eb5edbb09b52b780a85b067dfc2da8a792aac129..51045ef5859a8dba15f215e3666849a43f7e9b64 100644 (file)
@@ -739,10 +739,10 @@ void ServerConfig::ReportConfigError(const std::string &errormessage, bool bail,
                }
                else
                {
-                       ServerInstance->SNO->WriteToSnoMask('A', "There were errors in the configuration file:");
+                       ServerInstance->SNO->WriteToSnoMask('a', "There were errors in the configuration file:");
                        while (start < errors.length())
                        {
-                               ServerInstance->SNO->WriteToSnoMask('A', errors.substr(start, 360));
+                               ServerInstance->SNO->WriteToSnoMask('a', errors.substr(start, 360));
                                start += 360;
                        }
                }
@@ -1006,7 +1006,7 @@ void ServerConfig::Read(bool bail, const std::string &useruid)
                        if (!Values[Index].validation_function(this, Values[Index].tag, Values[Index].value, vi))
                                throw CoreException("One or more values in your configuration file failed to validate. Please see your ircd.log for more information.");
 
-                       ServerInstance->Threads->Lock();
+                       // XXX: ServerInstance->Threads->Lock();
                        switch (dt)
                        {
                                case DT_NOSPACES:
@@ -1035,7 +1035,7 @@ void ServerConfig::Read(bool bail, const std::string &useruid)
                                        ValueContainerChar* vcc = (ValueContainerChar*)Values[Index].val;
                                        if (*(vi.GetString()) && !ServerInstance->IsChannel(vi.GetString(), MAXBUF))
                                        {
-                                               ServerInstance->Threads->Unlock();
+                                               // XXX: ServerInstance->Threads->Unlock();
                                                throw CoreException("The value of <"+std::string(Values[Index].tag)+":"+Values[Index].value+"> is not a valid channel name");
                                        }
                                        vcc->Set(vi.GetString(), strlen(vi.GetString()) + 1);
@@ -1068,7 +1068,7 @@ void ServerConfig::Read(bool bail, const std::string &useruid)
                        }
                        /* We're done with this now */
                        delete Values[Index].val;
-                       ServerInstance->Threads->Unlock();
+                       // XXX: ServerInstance->Threads->Unlock();
                }
 
                /* Read the multiple-tag items (class tags, connect tags, etc)
@@ -1077,9 +1077,9 @@ void ServerConfig::Read(bool bail, const std::string &useruid)
                 */
                for (int Index = 0; MultiValues[Index].tag; ++Index)
                {
-                       ServerInstance->Threads->Lock();
+                       // XXX: ServerInstance->Threads->Lock();
                        MultiValues[Index].init_function(this, MultiValues[Index].tag);
-                       ServerInstance->Threads->Unlock();
+                       // XXX: ServerInstance->Threads->Unlock();
 
                        int number_of_tags = ConfValueEnum(newconfig, MultiValues[Index].tag);
 
@@ -1094,7 +1094,7 @@ void ServerConfig::Read(bool bail, const std::string &useruid)
                                        dt &= ~DT_ALLOW_NEWLINE;
                                        dt &= ~DT_ALLOW_WILD;
 
-                                       ServerInstance->Threads->Lock();
+                                       // XXX: ServerInstance->Threads->Lock();
                                        /* We catch and rethrow any exception here just so we can free our mutex
                                         */
                                        try
@@ -1173,10 +1173,10 @@ void ServerConfig::Read(bool bail, const std::string &useruid)
                                        }
                                        catch (CoreException &e)
                                        {
-                                               ServerInstance->Threads->Unlock();
+                                               // XXX: ServerInstance->Threads->Unlock();
                                                throw e;
                                        }
-                                       ServerInstance->Threads->Unlock();
+                                       // XXX: ServerInstance->Threads->Unlock();
                                }
                                MultiValues[Index].validation_function(this, MultiValues[Index].tag, (char**)MultiValues[Index].items, vl, MultiValues[Index].datatype);
                        }
@@ -1196,7 +1196,7 @@ void ServerConfig::Read(bool bail, const std::string &useruid)
                return;
        }
 
-       ServerInstance->Threads->Lock();
+       // XXX: ServerInstance->Threads->Lock();
        for (int i = 0; i < ConfValueEnum(newconfig, "type"); ++i)
        {
                char item[MAXBUF], classn[MAXBUF], classes[MAXBUF];
@@ -1230,7 +1230,7 @@ void ServerConfig::Read(bool bail, const std::string &useruid)
                                        if (bail)
                                                printf("Warning: Oper type '%s' has a missing class named '%s', this does nothing!\n", item, classname.c_str());
                                        else
-                                               ServerInstance->SNO->WriteToSnoMask('A', "Warning: Oper type '%s' has a missing class named '%s', this does nothing!", item, classname.c_str());
+                                               ServerInstance->SNO->WriteToSnoMask('a', "Warning: Oper type '%s' has a missing class named '%s', this does nothing!", item, classname.c_str());
                                }
                        }
                }
@@ -1239,7 +1239,7 @@ void ServerConfig::Read(bool bail, const std::string &useruid)
        /* If we succeeded, set the ircd config to the new one */
        this->config_data = newconfig;
 
-       ServerInstance->Threads->Unlock();
+       // XXX: ServerInstance->Threads->Unlock();
 
        // write once here, to try it out and make sure its ok
        ServerInstance->WritePID(this->PID);
@@ -1254,7 +1254,7 @@ void ServerConfig::Read(bool bail, const std::string &useruid)
 
                if (pl.size() && !useruid.empty())
                {
-                       ServerInstance->Threads->Lock();
+                       // XXX: ServerInstance->Threads->Lock();
                        User* user = ServerInstance->FindNick(useruid);
                        if (user)
                        {
@@ -1266,17 +1266,17 @@ void ServerConfig::Read(bool bail, const std::string &useruid)
                                        user->WriteServ("NOTICE %s :*** %d.   Address: %s        Reason: %s", user->nick.c_str(), j, i->first.empty() ? "<all>" : i->first.c_str(), i->second.c_str());
                                }
                        }
-                       ServerInstance->Threads->Unlock();
+                       // XXX: ServerInstance->Threads->Unlock();
                }
 
-               ServerInstance->Threads->Lock();
+               // XXX: ServerInstance->Threads->Lock();
                if (!removed_modules.empty())
                {
                        for (std::vector<std::string>::iterator removing = removed_modules.begin(); removing != removed_modules.end(); removing++)
                        {
                                if (ServerInstance->Modules->Unload(removing->c_str()))
                                {
-                                       ServerInstance->SNO->WriteToSnoMask('A', "*** REHASH UNLOADED MODULE: %s",removing->c_str());
+                                       ServerInstance->SNO->WriteToSnoMask('a', "*** REHASH UNLOADED MODULE: %s",removing->c_str());
 
                                        if (!useruid.empty())
                                        {
@@ -1285,7 +1285,7 @@ void ServerConfig::Read(bool bail, const std::string &useruid)
                                                        user->WriteNumeric(RPL_UNLOADEDMODULE, "%s %s :Module %s successfully unloaded.",user->nick.c_str(), removing->c_str(), removing->c_str());
                                        }
                                        else
-                                               ServerInstance->SNO->WriteToSnoMask('A', "Module %s successfully unloaded.", removing->c_str());
+                                               ServerInstance->SNO->WriteToSnoMask('a', "Module %s successfully unloaded.", removing->c_str());
 
                                        rem++;
                                }
@@ -1298,7 +1298,7 @@ void ServerConfig::Read(bool bail, const std::string &useruid)
                                                        user->WriteNumeric(ERR_CANTUNLOADMODULE, "%s %s :Failed to unload module %s: %s",user->nick.c_str(), removing->c_str(), removing->c_str(), ServerInstance->Modules->LastError().c_str());
                                        }
                                        else
-                                                ServerInstance->SNO->WriteToSnoMask('A', "Failed to unload module %s: %s", removing->c_str(), ServerInstance->Modules->LastError().c_str());
+                                                ServerInstance->SNO->WriteToSnoMask('a', "Failed to unload module %s: %s", removing->c_str(), ServerInstance->Modules->LastError().c_str());
                                }
                        }
                }
@@ -1309,7 +1309,7 @@ void ServerConfig::Read(bool bail, const std::string &useruid)
                        {
                                if (ServerInstance->Modules->Load(adding->c_str()))
                                {
-                                       ServerInstance->SNO->WriteToSnoMask('A', "*** REHASH LOADED MODULE: %s",adding->c_str());
+                                       ServerInstance->SNO->WriteToSnoMask('a', "*** REHASH LOADED MODULE: %s",adding->c_str());
                                        if (!useruid.empty())
                                        {
                                                User* user = ServerInstance->FindNick(useruid);
@@ -1317,7 +1317,7 @@ void ServerConfig::Read(bool bail, const std::string &useruid)
                                                        user->WriteNumeric(RPL_LOADEDMODULE, "%s %s :Module %s successfully loaded.",user->nick.c_str(), adding->c_str(), adding->c_str());
                                        }
                                        else
-                                               ServerInstance->SNO->WriteToSnoMask('A', "Module %s successfully loaded.", adding->c_str());
+                                               ServerInstance->SNO->WriteToSnoMask('a', "Module %s successfully loaded.", adding->c_str());
 
                                        add++;
                                }
@@ -1330,11 +1330,11 @@ void ServerConfig::Read(bool bail, const std::string &useruid)
                                                        user->WriteNumeric(ERR_CANTLOADMODULE, "%s %s :Failed to load module %s: %s",user->nick.c_str(), adding->c_str(), adding->c_str(), ServerInstance->Modules->LastError().c_str());
                                        }
                                        else
-                                               ServerInstance->SNO->WriteToSnoMask('A', "Failed to load module %s: %s", adding->c_str(), ServerInstance->Modules->LastError().c_str());
+                                               ServerInstance->SNO->WriteToSnoMask('a', "Failed to load module %s: %s", adding->c_str(), ServerInstance->Modules->LastError().c_str());
                                }
                        }
                }
-               ServerInstance->Threads->Unlock();
+               // XXX: ServerInstance->Threads->Unlock();
 
        }
 
@@ -1347,7 +1347,7 @@ void ServerConfig::Read(bool bail, const std::string &useruid)
                                user->WriteServ("NOTICE %s :*** Successfully rehashed server.", user->nick.c_str());
                }
                else
-                       ServerInstance->SNO->WriteToSnoMask('A', "*** Successfully rehashed server.");
+                       ServerInstance->SNO->WriteToSnoMask('a', "*** Successfully rehashed server.");
        }
 
 }
@@ -2046,64 +2046,6 @@ char* ServerConfig::CleanFilename(char* name)
 }
 
 
-bool ServerConfig::DirValid(const char* dirandfile)
-{
-#ifdef WINDOWS
-       return true;
-#else
-
-       char work[1024];
-       char buffer[1024];
-       char otherdir[1024];
-       int p;
-
-       strlcpy(work, dirandfile, 1024);
-       p = strlen(work);
-
-       // we just want the dir
-       while (*work)
-       {
-               if (work[p] == '/')
-               {
-                       work[p] = '\0';
-                       break;
-               }
-
-               work[p--] = '\0';
-       }
-
-       // Get the current working directory
-       if (getcwd(buffer, 1024 ) == NULL )
-               return false;
-
-       if (chdir(work) == -1)
-               return false;
-
-       if (getcwd(otherdir, 1024 ) == NULL )
-               return false;
-
-       if (chdir(buffer) == -1)
-               return false;
-
-       size_t t = strlen(work);
-
-       if (strlen(otherdir) >= t)
-       {
-               otherdir[t] = '\0';
-               if (!strcmp(otherdir,work))
-               {
-                       return true;
-               }
-
-               return false;
-       }
-       else
-       {
-               return false;
-       }
-#endif
-}
-
 std::string ServerConfig::GetFullProgDir()
 {
        char buffer[PATH_MAX];
@@ -2205,15 +2147,6 @@ bool ValueItem::GetBool()
  */
 bool InitTypes(ServerConfig* conf, const char*)
 {
-       if (conf->opertypes.size())
-       {
-               for (opertype_t::iterator n = conf->opertypes.begin(); n != conf->opertypes.end(); n++)
-               {
-                       if (n->second)
-                               delete[] n->second;
-               }
-       }
-
        conf->opertypes.clear();
        return true;
 }
@@ -2250,7 +2183,7 @@ bool DoType(ServerConfig* conf, const char*, char**, ValueList &values, int*)
        const char* TypeName = values[0].GetString();
        const char* Classes = values[1].GetString();
 
-       conf->opertypes[TypeName] = strnewdup(Classes);
+       conf->opertypes[TypeName] = std::string(Classes);
        return true;
 }
 
@@ -2372,7 +2305,5 @@ bool DoneELine(ServerConfig* conf, const char* tag)
 void ConfigReaderThread::Run()
 {
        ServerInstance->Config->Read(do_bail, TheUserUID);
-       ServerInstance->Threads->Lock();
-       this->SetExitFlag();
-       ServerInstance->Threads->Unlock();
+       done = true;
 }