diff options
Diffstat (limited to 'src/server.cc')
| -rw-r--r-- | src/server.cc | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/src/server.cc b/src/server.cc index b2d03fa..7200be0 100644 --- a/src/server.cc +++ b/src/server.cc @@ -122,11 +122,11 @@ public: auto int_handler = SignalHandler::create( looper_, SignalHandler::Signal::INT, - std::bind(&Looper::quit, looper_)); + std::bind(&Server::quit, this, "INT")); auto term_handler = SignalHandler::create( looper_, SignalHandler::Signal::TERM, - std::bind(&Looper::quit, looper_)); + std::bind(&Server::quit, this, "TERM")); auto hup_handler = SignalHandler::create( looper_, SignalHandler::Signal::HUP, @@ -140,10 +140,16 @@ public: private: void reload() { + logger_->info("Caught HUP, starting reload."); travel_->reload(); site_->reload(); } + void quit(std::string const& signal) { + logger_->info("Caught %s, quitting.", signal.c_str()); + looper_->quit(); + } + void accept(int listen_fd, uint8_t event) { if (event & Looper::EVENT_READ) { auto fd = inet::accept(logger_.get(), listen_fd, true); |
