summaryrefslogtreecommitdiff
path: root/src/server.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/server.cc')
-rw-r--r--src/server.cc10
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);