Skip to content

Commit 390b9fa

Browse files
committed
Merge pull request #520 from hyperium/conn-close
fix(client): dont call close() inside Request
2 parents a3637d5 + 3334fca commit 390b9fa

File tree

2 files changed

+7
-10
lines changed

2 files changed

+7
-10
lines changed

examples/client.rs

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,8 @@ use std::env;
77
use std::io;
88

99
use hyper::Client;
10+
use hyper::header::Connection;
11+
use hyper::header::ConnectionOption::Close;
1012

1113
fn main() {
1214
env_logger::init().unwrap();
@@ -21,10 +23,9 @@ fn main() {
2123

2224
let mut client = Client::new();
2325

24-
let mut res = match client.get(&*url).send() {
25-
Ok(res) => res,
26-
Err(err) => panic!("Failed to connect: {:?}", err)
27-
};
26+
let mut res = client.get(&*url)
27+
.header(Connection(vec![Close]))
28+
.send().unwrap();
2829

2930
println!("Response: {}", res.status);
3031
println!("Headers:\n{}", res.headers);

src/client/request.rs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,14 @@
11
//! Client Requests
22
use std::marker::PhantomData;
33
use std::io::{self, Write, BufWriter};
4-
use std::net::Shutdown;
54

65
use url::Url;
76

87
use method::{self, Method};
98
use header::Headers;
109
use header::{self, Host};
1110
use net::{NetworkStream, NetworkConnector, HttpConnector, Fresh, Streaming};
12-
use http::{self, HttpWriter, LINE_ENDING};
11+
use http::{HttpWriter, LINE_ENDING};
1312
use http::HttpWriter::{ThroughWriter, ChunkedWriter, SizedWriter, EmptyWriter};
1413
use version;
1514
use client::{Response, get_host_and_port};
@@ -154,10 +153,7 @@ impl Request<Streaming> {
154153
///
155154
/// Consumes the Request.
156155
pub fn send(self) -> ::Result<Response> {
157-
let mut raw = try!(self.body.end()).into_inner().unwrap(); // end() already flushes
158-
if !http::should_keep_alive(self.version, &self.headers) {
159-
try!(raw.close(Shutdown::Write));
160-
}
156+
let raw = try!(self.body.end()).into_inner().unwrap(); // end() already flushes
161157
Response::new(raw)
162158
}
163159
}

0 commit comments

Comments
 (0)