]> git.netwichtig.de Git - user/henk/code/inspircd.git/blobdiff - src/modules.cpp
Dump sendq before closing socket
[user/henk/code/inspircd.git] / src / modules.cpp
index 558923332982cc0a5b30e44743f2922beb9e2e4c..6586166c8c21396094b1f89975675f8a283c7824 100644 (file)
@@ -101,6 +101,7 @@ void                Module::OnUnloadModule(Module*) { }
 void           Module::OnBackgroundTimer(time_t) { }
 ModResult      Module::OnPreCommand(std::string&, std::vector<std::string>&, LocalUser*, bool, const std::string&) { return MOD_RES_PASSTHRU; }
 void           Module::OnPostCommand(const std::string&, const std::vector<std::string>&, LocalUser*, CmdResult, const std::string&) { }
+void           Module::OnUserInit(LocalUser*) { }
 ModResult      Module::OnCheckReady(LocalUser*) { return MOD_RES_PASSTHRU; }
 ModResult      Module::OnUserRegister(LocalUser*) { return MOD_RES_PASSTHRU; }
 ModResult      Module::OnUserPreKick(User*, Membership*, const std::string&) { return MOD_RES_PASSTHRU; }
@@ -433,8 +434,7 @@ void ModuleManager::AddService(ServiceProvider& item)
                        if (!ServerInstance->Parser->AddCommand(static_cast<Command*>(&item)))
                                throw ModuleException("Command "+std::string(item.name)+" already exists.");
                        return;
-               case SERVICE_CMODE:
-               case SERVICE_UMODE:
+               case SERVICE_MODE:
                        if (!ServerInstance->Modes->AddMode(static_cast<ModeHandler*>(&item)))
                                throw ModuleException("Mode "+std::string(item.name)+" already exists.");
                        return;
@@ -686,13 +686,27 @@ void FileReader::CalcSize()
 
 void FileReader::LoadFile(const std::string &filename)
 {
-       file_cache c;
-       c.clear();
-       if (ServerInstance->Config->ReadFile(c,filename.c_str()))
+       std::map<std::string, file_cache>::iterator file = ServerInstance->Config->Files.find(filename);
+       if (file != ServerInstance->Config->Files.end())
        {
-               this->fc = c;
-               this->CalcSize();
+               this->fc = file->second;
        }
+       else
+       {
+               fc.clear();
+               FILE* f = fopen(filename.c_str(), "r");
+               if (!f)
+                       return;
+               char linebuf[MAXBUF*10];
+               while (fgets(linebuf, sizeof(linebuf), f))
+               {
+                       int len = strlen(linebuf);
+                       if (len)
+                               fc.push_back(std::string(linebuf, len - 1));
+               }
+               fclose(f);
+       }
+       CalcSize();
 }