X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;f=src%2Fcmd_rehash.cpp;h=ed972007d61d7a1c83e763352faf8748bfb878fd;hb=bcf2e57d8125fceb2f573fe77ac122158aa75a13;hp=52a30428622b982af1be55b062bb2a6516e8716e;hpb=1552f3918ac0dad7fef9b86b70c0f4a63d4e37a7;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/cmd_rehash.cpp b/src/cmd_rehash.cpp index 52a304286..ed972007d 100644 --- a/src/cmd_rehash.cpp +++ b/src/cmd_rehash.cpp @@ -11,22 +11,20 @@ * --------------------------------------------------- */ -#include "configreader.h" -#include "users.h" -#include "modules.h" +#include "inspircd.h" #include "commands/cmd_rehash.h" -extern "C" command_t* init_command(InspIRCd* Instance) +extern "C" DllExport command_t* init_command(InspIRCd* Instance) { return new cmd_rehash(Instance); } CmdResult cmd_rehash::Handle (const char** parameters, int pcnt, userrec *user) { - user->WriteServ("382 %s %s :Rehashing",user->nick,ServerConfig::CleanFilename(CONFIG_FILE)); - std::string parameter = ""; + user->WriteServ("382 %s %s :Rehashing",user->nick,ServerConfig::CleanFilename(ServerInstance->ConfigFileName)); + std::string parameter; std::string old_disabled = ServerInstance->Config->DisabledCommands; if (pcnt) { @@ -34,13 +32,22 @@ CmdResult cmd_rehash::Handle (const char** parameters, int pcnt, userrec *user) } else { - ServerInstance->WriteOpers("%s is rehashing config file %s",user->nick,ServerConfig::CleanFilename(CONFIG_FILE)); + ServerInstance->WriteOpers("*** %s is rehashing config file %s",user->nick,ServerConfig::CleanFilename(ServerInstance->ConfigFileName)); + ServerInstance->CloseLog(); + 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)); + ServerInstance->RehashUsersAndChans(); + FOREACH_MOD(I_OnGarbageCollect, OnGarbageCollect()); ServerInstance->Config->Read(false,user); + ServerInstance->Res->Rehash(); + ServerInstance->ResetMaxBans(); } if (old_disabled != ServerInstance->Config->DisabledCommands) InitializeDisabledCommands(ServerInstance->Config->DisabledCommands, ServerInstance); - FOREACH_MOD(I_OnRehash,OnRehash(parameter)); + FOREACH_MOD(I_OnRehash,OnRehash(user, parameter)); + + ServerInstance->BuildISupport(); return CMD_SUCCESS; }