summaryrefslogtreecommitdiff
path: root/core/io
diff options
context:
space:
mode:
authorMartin Capitanio <capnm@capitanio.org>2017-06-13 22:58:23 +0200
committerMartin Capitanio <capnm@capitanio.org>2017-06-13 22:58:23 +0200
commit5cabe5f0fcdf10eb025f24adfbf7f6864465f8f0 (patch)
treedc3738adf6300885b72ae501f63f262e1789c681 /core/io
parenta8a1f2e2a864e6b58d5bcf1c7e53a43cdb6d95d9 (diff)
Don't append standard ports to the request header.
Breaks the SSL communication with some servers, do the same that the other curl, wget, firefox & co clients do. Fixes #9146
Diffstat (limited to 'core/io')
-rw-r--r--core/io/http_client.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/core/io/http_client.cpp b/core/io/http_client.cpp
index 899f3b3b2d..0c84a5213f 100644
--- a/core/io/http_client.cpp
+++ b/core/io/http_client.cpp
@@ -96,7 +96,12 @@ Error HTTPClient::request_raw(Method p_method, const String &p_url, const Vector
};
String request = String(_methods[p_method]) + " " + p_url + " HTTP/1.1\r\n";
- request += "Host: " + conn_host + ":" + itos(conn_port) + "\r\n";
+ if ((ssl && conn_port == 443) || (!ssl && conn_port == 80)) {
+ // don't append the standard ports
+ request += "Host: " + conn_host + "\r\n";
+ } else {
+ request += "Host: " + conn_host + ":" + itos(conn_port) + "\r\n";
+ }
bool add_clen = p_body.size() > 0;
for (int i = 0; i < p_headers.size(); i++) {
request += p_headers[i] + "\r\n";
@@ -151,7 +156,12 @@ Error HTTPClient::request(Method p_method, const String &p_url, const Vector<Str
};
String request = String(_methods[p_method]) + " " + p_url + " HTTP/1.1\r\n";
- request += "Host: " + conn_host + ":" + itos(conn_port) + "\r\n";
+ if ((ssl && conn_port == 443) || (!ssl && conn_port == 80)) {
+ // don't append the standard ports
+ request += "Host: " + conn_host + "\r\n";
+ } else {
+ request += "Host: " + conn_host + ":" + itos(conn_port) + "\r\n";
+ }
bool add_clen = p_body.length() > 0;
for (int i = 0; i < p_headers.size(); i++) {
request += p_headers[i] + "\r\n";