| @@ -32,7 +32,7 @@ impl Clone for MockStream { | |||||||
| impl MockStream { | impl MockStream { | ||||||
|     fn new() -> MockStream { |     fn new() -> MockStream { | ||||||
|         let head = b"HTTP/1.1 200 OK\r\nServer: Mock\r\n\r\n"; |         let head = b"HTTP/1.1 200 OK\r\nServer: Mock\r\n\r\n"; | ||||||
|         let mut res = Vec::from_slice(head); |         let mut res = head.to_vec(); | ||||||
|         res.push_all(README); |         res.push_all(README); | ||||||
|         MockStream { |         MockStream { | ||||||
|             read: MemReader::new(res), |             read: MemReader::new(res), | ||||||
|   | |||||||
| @@ -59,15 +59,15 @@ impl Clone for Box<NetworkStream + Send> { | |||||||
|  |  | ||||||
| impl Reader for Box<NetworkStream + Send> { | impl Reader for Box<NetworkStream + Send> { | ||||||
|     #[inline] |     #[inline] | ||||||
|     fn read(&mut self, buf: &mut [u8]) -> IoResult<uint> { self.read(buf) } |     fn read(&mut self, buf: &mut [u8]) -> IoResult<uint> { (**self).read(buf) } | ||||||
| } | } | ||||||
|  |  | ||||||
| impl Writer for Box<NetworkStream + Send> { | impl Writer for Box<NetworkStream + Send> { | ||||||
|     #[inline] |     #[inline] | ||||||
|     fn write(&mut self, msg: &[u8]) -> IoResult<()> { self.write(msg) } |     fn write(&mut self, msg: &[u8]) -> IoResult<()> { (**self).write(msg) } | ||||||
|  |  | ||||||
|     #[inline] |     #[inline] | ||||||
|     fn flush(&mut self) -> IoResult<()> { self.flush() } |     fn flush(&mut self) -> IoResult<()> { (**self).flush() } | ||||||
| } | } | ||||||
|  |  | ||||||
| /// A `NetworkListener` for `HttpStream`s. | /// A `NetworkListener` for `HttpStream`s. | ||||||
|   | |||||||
| @@ -1,6 +1,7 @@ | |||||||
| //! HTTP Server | //! HTTP Server | ||||||
| use std::io::{Listener, IoResult, EndOfFile}; | use std::io::{Listener, IoResult, EndOfFile}; | ||||||
| use std::io::net::ip::{IpAddr, Port, SocketAddr}; | use std::io::net::ip::{IpAddr, Port, SocketAddr}; | ||||||
|  | use std::task::TaskBuilder; | ||||||
|  |  | ||||||
| use intertwine::{Intertwine, Intertwined}; | use intertwine::{Intertwine, Intertwined}; | ||||||
| use macceptor::MoveAcceptor; | use macceptor::MoveAcceptor; | ||||||
| @@ -58,6 +59,7 @@ impl<L: NetworkListener<S, A>, S: NetworkStream, A: NetworkAcceptor<S>> Server<L | |||||||
|         let mut acceptors = Vec::new(); |         let mut acceptors = Vec::new(); | ||||||
|         let mut sockets = Vec::new(); |         let mut sockets = Vec::new(); | ||||||
|         for (ip, port) in self.pairs.into_iter() { |         for (ip, port) in self.pairs.into_iter() { | ||||||
|  |             debug!("binding to {}:{}", ip, port); | ||||||
|             let mut listener: L = try_io!(NetworkListener::<S, A>::bind(ip.to_string().as_slice(), port)); |             let mut listener: L = try_io!(NetworkListener::<S, A>::bind(ip.to_string().as_slice(), port)); | ||||||
|  |  | ||||||
|             sockets.push(try_io!(listener.socket_name())); |             sockets.push(try_io!(listener.socket_name())); | ||||||
| @@ -71,7 +73,7 @@ impl<L: NetworkListener<S, A>, S: NetworkStream, A: NetworkAcceptor<S>> Server<L | |||||||
|             .map(|acceptor| acceptor.move_incoming()) |             .map(|acceptor| acceptor.move_incoming()) | ||||||
|             .intertwine(); |             .intertwine(); | ||||||
|  |  | ||||||
|         spawn(proc() { |         TaskBuilder::new().named("hyper acceptor").spawn(proc() { | ||||||
|             handler.handle(Incoming { from: connections }); |             handler.handle(Incoming { from: connections }); | ||||||
|         }); |         }); | ||||||
|  |  | ||||||
|   | |||||||
| @@ -37,6 +37,7 @@ impl Request { | |||||||
|     /// immediately useful. |     /// immediately useful. | ||||||
|     pub fn new<S: NetworkStream>(mut stream: S) -> HttpResult<Request> { |     pub fn new<S: NetworkStream>(mut stream: S) -> HttpResult<Request> { | ||||||
|         let remote_addr = try_io!(stream.peer_name()); |         let remote_addr = try_io!(stream.peer_name()); | ||||||
|  |         debug!("remote addr = {}", remote_addr); | ||||||
|         let mut stream = BufferedReader::new(stream.abstract()); |         let mut stream = BufferedReader::new(stream.abstract()); | ||||||
|         let (method, uri, version) = try!(read_request_line(&mut stream)); |         let (method, uri, version) = try!(read_request_line(&mut stream)); | ||||||
|         let headers = try!(Headers::from_raw(&mut stream)); |         let headers = try!(Headers::from_raw(&mut stream)); | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user