| @@ -32,7 +32,7 @@ impl Clone for MockStream { | ||||
| impl MockStream { | ||||
|     fn new() -> MockStream { | ||||
|         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); | ||||
|         MockStream { | ||||
|             read: MemReader::new(res), | ||||
|   | ||||
| @@ -59,15 +59,15 @@ impl Clone for Box<NetworkStream + Send> { | ||||
|  | ||||
| impl Reader for Box<NetworkStream + Send> { | ||||
|     #[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> { | ||||
|     #[inline] | ||||
|     fn write(&mut self, msg: &[u8]) -> IoResult<()> { self.write(msg) } | ||||
|     fn write(&mut self, msg: &[u8]) -> IoResult<()> { (**self).write(msg) } | ||||
|  | ||||
|     #[inline] | ||||
|     fn flush(&mut self) -> IoResult<()> { self.flush() } | ||||
|     fn flush(&mut self) -> IoResult<()> { (**self).flush() } | ||||
| } | ||||
|  | ||||
| /// A `NetworkListener` for `HttpStream`s. | ||||
|   | ||||
| @@ -1,6 +1,7 @@ | ||||
| //! HTTP Server | ||||
| use std::io::{Listener, IoResult, EndOfFile}; | ||||
| use std::io::net::ip::{IpAddr, Port, SocketAddr}; | ||||
| use std::task::TaskBuilder; | ||||
|  | ||||
| use intertwine::{Intertwine, Intertwined}; | ||||
| 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 sockets = Vec::new(); | ||||
|         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)); | ||||
|  | ||||
|             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()) | ||||
|             .intertwine(); | ||||
|  | ||||
|         spawn(proc() { | ||||
|         TaskBuilder::new().named("hyper acceptor").spawn(proc() { | ||||
|             handler.handle(Incoming { from: connections }); | ||||
|         }); | ||||
|  | ||||
|   | ||||
| @@ -37,6 +37,7 @@ impl Request { | ||||
|     /// immediately useful. | ||||
|     pub fn new<S: NetworkStream>(mut stream: S) -> HttpResult<Request> { | ||||
|         let remote_addr = try_io!(stream.peer_name()); | ||||
|         debug!("remote addr = {}", remote_addr); | ||||
|         let mut stream = BufferedReader::new(stream.abstract()); | ||||
|         let (method, uri, version) = try!(read_request_line(&mut stream)); | ||||
|         let headers = try!(Headers::from_raw(&mut stream)); | ||||
|   | ||||
		Reference in New Issue
	
	Block a user