summaryrefslogtreecommitdiff
path: root/src/proxy.cc
diff options
context:
space:
mode:
Diffstat (limited to 'src/proxy.cc')
-rw-r--r--src/proxy.cc5
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_) {