From 572d9ba729e12708deed0a6156209bbdc28698af Mon Sep 17 00:00:00 2001 From: Joel Klinghed Date: Wed, 9 Aug 2017 21:11:30 +0200 Subject: Handle HEAD requests over https Responses to HEAD requests are always empty --- src/proxy.cc | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/proxy.cc b/src/proxy.cc index c67b0df..70a14cd 100644 --- a/src/proxy.cc +++ b/src/proxy.cc @@ -10,6 +10,7 @@ #include #include #include +#include #include #include #include @@ -342,6 +343,7 @@ private: bool first_remote_; NewPackageIdCallback const new_pkg_id_callback_; State state_; + std::deque head_request_; std::string req_buffer_; Content request_; std::string resp_buffer_; @@ -2077,6 +2079,7 @@ void ProxyImpl::MitmMonitor::local2remote(void const* data, size_t size) { req_buffer_.clear(); break; } + head_request_.push_back(req->method_equal("HEAD")); req_buffer_.clear(); state_ = HTTP; auto used = req->size() - offset; @@ -2143,6 +2146,8 @@ void ProxyImpl::MitmMonitor::remote2local(void const* data, size_t size) { resp_buffer_.clear(); break; } + if (head_request_.front()) response_.type = CONTENT_NONE; + head_request_.pop_front(); resp_buffer_.clear(); auto used = resp->size() - offset; if (first_remote_) { -- cgit v1.2.3-70-g09d2