From 2cd68a25660ddfd9c0ce376ab95d534ad7009a74 Mon Sep 17 00:00:00 2001 From: Patrick Wuttke Date: Fri, 15 Nov 2019 14:59:49 +0100 Subject: [PATCH] do not wait for response body when making a HEAD request --- core/io/http_client.cpp | 10 ++++++++++ core/io/http_client.h | 1 + 2 files changed, 11 insertions(+) diff --git a/core/io/http_client.cpp b/core/io/http_client.cpp index 170bef44305..bb1befb2978 100644 --- a/core/io/http_client.cpp +++ b/core/io/http_client.cpp @@ -171,6 +171,7 @@ Error HTTPClient::request_raw(Method p_method, const String &p_url, const Vector } status = STATUS_REQUESTING; + head_request = p_method == METHOD_HEAD; return OK; } @@ -226,6 +227,7 @@ Error HTTPClient::request(Method p_method, const String &p_url, const Vectorerase_resolve_item(resolving); @@ -468,6 +471,12 @@ Error HTTPClient::poll() { } } + // This is a HEAD request, we wont receive anything. + if (head_request) { + body_size = 0; + body_left = 0; + } + if (body_size != -1 || chunked) { status = STATUS_BODY; @@ -718,6 +727,7 @@ HTTPClient::HTTPClient() { tcp_connection.instance(); resolving = IP::RESOLVER_INVALID_ID; status = STATUS_DISCONNECTED; + head_request = false; conn_port = -1; body_size = -1; chunked = false; diff --git a/core/io/http_client.h b/core/io/http_client.h index 85ee1959a22..33e4d151064 100644 --- a/core/io/http_client.h +++ b/core/io/http_client.h @@ -166,6 +166,7 @@ private: bool ssl_verify_host; bool blocking; bool handshaking; + bool head_request; Vector response_str;