diff options
Diffstat (limited to 'src/proxy.cc')
| -rw-r--r-- | src/proxy.cc | 5 |
1 files changed, 5 insertions, 0 deletions
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 <cerrno> #include <chrono> #include <cstring> +#include <deque> #include <fcntl.h> #include <memory> #include <netdb.h> @@ -342,6 +343,7 @@ private: bool first_remote_; NewPackageIdCallback const new_pkg_id_callback_; State state_; + std::deque<bool> 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_) { |
