diff options
author | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-02-24 17:18:15 +0000 |
---|---|---|
committer | brain <brain@e03df62e-2008-0410-955e-edbf42e46eb7> | 2008-02-24 17:18:15 +0000 |
commit | f7df5c69c4c54ebac32b1f3af3381495bef2cbd5 (patch) | |
tree | cae8fade2d47600b1828fa67e6f1c96686d72551 /src/commands | |
parent | 3a6199fb2348f9bdef8ab155fdd158a3e8cbfeec (diff) |
Theres more to do here. Read the TODOs
git-svn-id: http://svn.inspircd.org/repository/trunk/inspircd@9021 e03df62e-2008-0410-955e-edbf42e46eb7
Diffstat (limited to 'src/commands')
-rw-r--r-- | src/commands/cmd_rehash.cpp | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/src/commands/cmd_rehash.cpp b/src/commands/cmd_rehash.cpp index 760689eb0..85df91930 100644 --- a/src/commands/cmd_rehash.cpp +++ b/src/commands/cmd_rehash.cpp @@ -36,16 +36,33 @@ CmdResult CommandRehash::Handle (const char* const* parameters, int pcnt, User * ServerInstance->SNO->WriteToSnoMask('A', "%s is rehashing config file %s",user->nick,ServerConfig::CleanFilename(ServerInstance->ConfigFileName)); ServerInstance->Logs->CloseLogs(); if (!ServerInstance->OpenLog(ServerInstance->Config->argv, ServerInstance->Config->argc)) - user->WriteServ("*** NOTICE %s :ERROR: Could not open logfile %s: %s", user->nick, ServerInstance->Config->logpath.c_str(), strerror(errno)); + user->WriteServ("NOTICE %s :*** ERROR: Could not open logfile %s: %s", user->nick, ServerInstance->Config->logpath.c_str(), strerror(errno)); ServerInstance->RehashUsersAndChans(); FOREACH_MOD(I_OnGarbageCollect, OnGarbageCollect()); - /*ServerInstance->Config->Read(false,user);*/ + if (!ServerInstance->ConfigThread) + { + ServerInstance->ConfigThread = new ConfigReaderThread(ServerInstance); + ServerInstance->Threads->Create(ServerInstance->ConfigThread); + } + else + { + /* A rehash is already in progress! ahh shit. */ + user->WriteServ("*** NOTICE %s :*** Could not rehash: A rehash is already in progress.", user->nick); + return CMD_FAILURE; + } + /* TODO: + * ALL THIS STUFF HERE NEEDS TO BE HOOKED TO THE 'DEATH' OF THE REHASH THREAD + * VIA SOME NOTIFICATION EVENT. WE CANT JUST CALL IT ALL HERE. + * -- B + */ // Get XLine to do it's thing. - ServerInstance->XLines->CheckELines(); + /*ServerInstance->XLines->CheckELines(); ServerInstance->XLines->ApplyLines(); ServerInstance->Res->Rehash(); - ServerInstance->ResetMaxBans(); + ServerInstance->ResetMaxBans();*/ } + + /* TODO: Same as above for all this stuff, really */ if (old_disabled != ServerInstance->Config->DisabledCommands) InitializeDisabledCommands(ServerInstance->Config->DisabledCommands, ServerInstance); |