Skip to content

Commit 9d289a4

Browse files
authored
Merge pull request #86 from gdamjan/fix-double-host
Don't add the Host header if it already exists
2 parents b911766 + 9d6aa32 commit 9d289a4

File tree

2 files changed

+14
-12
lines changed

2 files changed

+14
-12
lines changed

Cargo.toml

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ edition = "2018"
1515
url = "2.1.0"
1616
httparse = "1.3.3"
1717
async-std = { version = "1.5.0", features = ["unstable"] }
18-
http-types = "1.0.0"
18+
http-types = "1.2.0"
1919
pin-project-lite = "0.1.1"
2020
byte-pool = "0.2.1"
2121
lazy_static = "1.4.0"

src/client/encode.rs

+13-11
Original file line numberDiff line numberDiff line change
@@ -56,18 +56,20 @@ impl Encoder {
5656
log::trace!("> {}", &val);
5757
buf.write_all(val.as_bytes()).await?;
5858

59-
// Insert Host header
60-
// Insert host
61-
let host = req.url().host_str();
62-
let host = host.ok_or_else(|| format_err!("Missing hostname"))?;
63-
let val = if let Some(port) = req.url().port() {
64-
format!("host: {}:{}\r\n", host, port)
65-
} else {
66-
format!("host: {}\r\n", host)
67-
};
59+
if req.header(&http_types::headers::HOST).is_none() {
60+
// Insert Host header
61+
// Insert host
62+
let host = req.url().host_str();
63+
let host = host.ok_or_else(|| format_err!("Missing hostname"))?;
64+
let val = if let Some(port) = req.url().port() {
65+
format!("host: {}:{}\r\n", host, port)
66+
} else {
67+
format!("host: {}\r\n", host)
68+
};
6869

69-
log::trace!("> {}", &val);
70-
buf.write_all(val.as_bytes()).await?;
70+
log::trace!("> {}", &val);
71+
buf.write_all(val.as_bytes()).await?;
72+
}
7173

7274
// Insert Proxy-Connection header when method is CONNECT
7375
if req.method() == Method::Connect {

0 commit comments

Comments
 (0)