From d509faacf6b728cefbf25fdf7902cca0505e419c Mon Sep 17 00:00:00 2001 From: Volker Birk Date: Mon, 8 Jun 2020 17:09:43 +0200 Subject: [PATCH] ... --- webserver.cc | 17 ++++++++++++++++- webserver.hh | 1 + 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/webserver.cc b/webserver.cc index 4235157..9846511 100644 --- a/webserver.cc +++ b/webserver.cc @@ -67,6 +67,11 @@ void Webserver::remove_url_handler(std::string url_regex) { _urls.erase(url_regex); } +void Webserver::deliver_file(boost::string_view target) +{ + +} + Webserver::handler_t Webserver::find_handler(request& r, boost::cmatch& m) { for (auto it=_urls.begin(); it!=_urls.end(); ++it) { @@ -91,7 +96,17 @@ void Webserver::do_session(tcp::socket *socket) if (ec) return fail(ec, "reading from stream"); - + boost::cmatch m; + Webserver::response *resp = nullptr; + Webserver::handler_t handler = find_handler(req, m); + + if (handler) { + resp = handler(m, req); + } + else { + deliver_file(req.target()); + } + delete resp; } socket->shutdown(tcp::socket::shutdown_send, ec); diff --git a/webserver.hh b/webserver.hh index f584f0b..f2c571b 100644 --- a/webserver.hh +++ b/webserver.hh @@ -52,6 +52,7 @@ namespace pEp { void shutdown(); protected: + void deliver_file(boost::string_view target); handler_t find_handler(request& r, boost::cmatch& m); void do_session(tcp::socket *socket); };