diff --git a/src/http/server/mod.rs b/src/http/server/mod.rs index 72436a7..464d3a1 100644 --- a/src/http/server/mod.rs +++ b/src/http/server/mod.rs @@ -60,7 +60,8 @@ pub trait Server: Send + Clone { debug!("accepted connection"); loop { // A keep-alive loop, condition at end let time_spawned = precise_time_ns(); - let (request, err_status) = Request::load(&mut stream); + let remote_addr = stream.wrapped.peer_name().ok(); + let (request, err_status) = Request::load(&mut stream, remote_addr); let time_request_made = precise_time_ns(); let mut response = box ResponseWriter::new(&mut stream, request); let time_response_made = precise_time_ns(); diff --git a/src/http/server/request.rs b/src/http/server/request.rs index 65e790d..422df2d 100644 --- a/src/http/server/request.rs +++ b/src/http/server/request.rs @@ -295,13 +295,13 @@ impl fmt::Show for RequestUri { impl Request { /// Get a response from an open socket. - pub fn load(stream: &mut BufferedStream) -> (Box, Result<(), status::Status>) { + pub fn load(stream: &mut BufferedStream, remote_addr: Option) -> (Box, Result<(), status::Status>) { let mut buffer = RequestBuffer::new(stream); // Start out with dummy values let mut request = box Request { - remote_addr: buffer.stream.wrapped.peer_name().ok(), headers: box headers::request::HeaderCollection::new(), + remote_addr: remote_addr, body: String::new(), method: Options, request_uri: Star,