X-Git-Url: https://git.netwichtig.de/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcoremods%2Fcore_reloadmodule.cpp;h=ce1f636677694ef7b48edddc7dc0e41dc8c93cb8;hb=b4a174ee9c32d62ea6bf010e837e8c5b1c3d36a3;hp=b330797d5d093cdfafd795431858f6fd4f2fdcb0;hpb=aa692dc1039b63deef7886e914ec499abe7facaf;p=user%2Fhenk%2Fcode%2Finspircd.git diff --git a/src/coremods/core_reloadmodule.cpp b/src/coremods/core_reloadmodule.cpp index b330797d5..ce1f63667 100644 --- a/src/coremods/core_reloadmodule.cpp +++ b/src/coremods/core_reloadmodule.cpp @@ -1,7 +1,7 @@ /* * InspIRCd -- Internet Relay Chat Daemon * - * Copyright (C) 2017-2019 Sadie Powell + * Copyright (C) 2017-2019, 2021 Sadie Powell * Copyright (C) 2014-2016, 2018 Attila Molnar * Copyright (C) 2012 Robby * Copyright (C) 2009 Daniel De Graaf @@ -31,10 +31,10 @@ static ClientProtocol::Serializer* dummyserializer; class DummySerializer : public ClientProtocol::Serializer { - bool Parse(LocalUser* user, const std::string& line, ClientProtocol::ParseOutput& parseoutput) CXX11_OVERRIDE - { - return false; - } + bool Parse(LocalUser* user, const std::string& line, ClientProtocol::ParseOutput& parseoutput) CXX11_OVERRIDE + { + return false; + } ClientProtocol::SerializedMessage Serialize(const ClientProtocol::Message& msg, const ClientProtocol::TagSelection& tagwl) const CXX11_OVERRIDE { @@ -284,7 +284,7 @@ class DataKeeper /** Restore all modes and extensions of all members on a channel * @param chan Channel whose members are being restored - * @param memberdata Data to restore + * @param memberdatalist Data to restore * @param modechange Mode change to populate with prefix modes */ void RestoreMemberData(Channel* chan, const std::vector& memberdatalist, Modes::ChangeList& modechange); @@ -720,25 +720,31 @@ class ReloadAction : public ActionBase ReloadModule::DataKeeper datakeeper; datakeeper.Save(mod); - DLLManager* dll = mod->ModuleDLLManager; std::string name = mod->ModuleSourceFile; ServerInstance->Modules->DoSafeUnload(mod); ServerInstance->GlobalCulls.Apply(); - delete dll; bool result = ServerInstance->Modules->Load(name); if (result) { Module* newmod = ServerInstance->Modules->Find(name); datakeeper.Restore(newmod); + ServerInstance->SNO->WriteGlobalSno('a', "The %s module was reloaded.", passedname.c_str()); } else + { datakeeper.Fail(); + ServerInstance->SNO->WriteGlobalSno('a', "Failed to reload the %s module.", passedname.c_str()); + } - ServerInstance->SNO->WriteGlobalSno('a', "RELOAD MODULE: %s %ssuccessfully reloaded", passedname.c_str(), result ? "" : "un"); User* user = ServerInstance->FindUUID(uuid); if (user) - user->WriteNumeric(RPL_LOADEDMODULE, passedname, InspIRCd::Format("Module %ssuccessfully reloaded.", (result ? "" : "un"))); + { + if (result) + user->WriteNumeric(RPL_LOADEDMODULE, passedname, InspIRCd::Format("The %s module was reloaded.", passedname.c_str())); + else + user->WriteNumeric(ERR_CANTUNLOADMODULE, passedname, InspIRCd::Format("Failed to reload the %s module.", passedname.c_str())); + } ServerInstance->GlobalCulls.AddItem(this); } @@ -749,7 +755,7 @@ CmdResult CommandReloadmodule::Handle(User* user, const Params& parameters) Module* m = ServerInstance->Modules->Find(parameters[0]); if (m == creator) { - user->WriteNumeric(RPL_LOADEDMODULE, parameters[0], "You cannot reload core_reloadmodule (unload and load it)"); + user->WriteNumeric(ERR_CANTUNLOADMODULE, parameters[0], "You cannot reload core_reloadmodule (unload and load it)"); return CMD_FAILURE; } @@ -763,7 +769,7 @@ CmdResult CommandReloadmodule::Handle(User* user, const Params& parameters) } else { - user->WriteNumeric(RPL_LOADEDMODULE, parameters[0], "Could not find module by that name"); + user->WriteNumeric(ERR_CANTUNLOADMODULE, parameters[0], "Could not find a loaded module by that name"); return CMD_FAILURE; } }