diff --git a/ClientContext.cpp b/ClientContext.cpp index 2bc13969..788e6a46 100644 --- a/ClientContext.cpp +++ b/ClientContext.cpp @@ -202,7 +202,13 @@ namespace client void ClientContext::ReloadConfig () { - ReadTunnels (); // TODO: it reads new tunnels only, should be implemented better + /* + std::string config; i2p::config::GetOption("conf", config); + i2p::config::ParseConfig(config); + */ + //I don't think we can just reload the main config without making a mess of things, so holding off for now. + Stop(); + Start(); } void ClientContext::LoadPrivateKeys (i2p::data::PrivateKeys& keys, const std::string& filename, i2p::data::SigningKeyType sigType) diff --git a/DaemonLinux.cpp b/DaemonLinux.cpp index 118fc5f5..22d7dec8 100644 --- a/DaemonLinux.cpp +++ b/DaemonLinux.cpp @@ -13,14 +13,16 @@ #include "FS.h" #include "Log.h" #include "RouterContext.h" +#include "ClientContext.h" void handle_signal(int sig) { switch (sig) { case SIGHUP: - LogPrint(eLogInfo, "Daemon: Got SIGHUP, reopening log..."); + LogPrint(eLogInfo, "Daemon: Got SIGHUP, reopening logs and tunnel configuration..."); i2p::log::Logger().Reopen (); + i2p::client::context.ReloadConfig(); break; case SIGINT: if (i2p::context.AcceptsTunnels () && !Daemon.gracefullShutdownInterval)