From f54ae4ed4fd2f22525492e2525d0f24a314e65b2 Mon Sep 17 00:00:00 2001 From: Mauro Sardara Date: Wed, 27 May 2020 19:16:27 +0200 Subject: [HICH-618] HTTP proxy automatic configuration. Change-Id: I6a76b31b743f155a2d9f7b88e84b838265aab6c8 Signed-off-by: Mauro Sardara --- apps/http-proxy/src/http_proxy.h | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) (limited to 'apps/http-proxy/src/http_proxy.h') diff --git a/apps/http-proxy/src/http_proxy.h b/apps/http-proxy/src/http_proxy.h index 6fa394e28..aa47d6a92 100644 --- a/apps/http-proxy/src/http_proxy.h +++ b/apps/http-proxy/src/http_proxy.h @@ -18,6 +18,7 @@ #include #include +#include "forwarder_config.h" #include "http_session.h" #include "icn_receiver.h" @@ -37,11 +38,10 @@ class TcpListener { socket_(io_service), #endif callback_(callback) { - do_accept(); } - private: - void do_accept() { + public: + void doAccept() { #if ((ASIO_VERSION / 100 % 1000) >= 12) acceptor_.async_accept( [this](std::error_code ec, asio::ip::tcp::socket socket) { @@ -53,7 +53,7 @@ class TcpListener { callback_(std::move(socket)); } - do_accept(); + doAccept(); }); } @@ -87,11 +87,18 @@ class TcpReceiver : public Receiver { void onNewConnection(asio::ip::tcp::socket&& socket); void onClientDisconnect(HTTPClientConnectionCallback* client); + template + void parseHicnHeader(std::string& hicn_header, Callback&& callback) { + forwarder_config_.parseHicnHeader(hicn_header, + std::forward(callback)); + } + TcpListener listener_; std::string prefix_; std::string ipv6_first_word_; std::deque http_clients_; std::unordered_set used_http_clients_; + ForwarderConfig forwarder_config_; }; class IcnReceiver : public Receiver { -- cgit 1.2.3-korg