diff --git a/example/sample.cc b/example/sample.cc index bf7804d..9e8cce3 100644 --- a/example/sample.cc +++ b/example/sample.cc @@ -7,14 +7,23 @@ #include #include +#include using namespace httpsvrkit; +template void signal(int sig, Fn fn) +{ + static std::function signal_handler_; + struct SignalHandler { static void fn(int sig) { signal_handler_(); } }; + signal_handler_ = fn; + signal(sig, SignalHandler::fn); +} + int main(void) { const char* hi = "/hi"; - HTTP_SERVER("localhost", 1234) { + // svr, req, res GET("/", { res.set_redirect(hi); @@ -27,6 +36,10 @@ int main(void) GET("/dump", { res.set_content(dump_request(cxt)); }); + + signal(SIGINT, [&](){ + svr->stop(); + }); } }