Get a server working
This commit is contained in:
		| @@ -1,10 +1,11 @@ | ||||
| use {frame, Frame, ConnectionError, Peer, StreamId}; | ||||
| use client::Client; | ||||
| use server::Server; | ||||
| use proto::{self, ReadySink, State}; | ||||
|  | ||||
| use tokio_io::{AsyncRead, AsyncWrite}; | ||||
|  | ||||
| use http::{request}; | ||||
| use http::{request, response}; | ||||
|  | ||||
| use futures::*; | ||||
|  | ||||
| @@ -52,6 +53,23 @@ impl<T> Connection<T, Client> | ||||
|     } | ||||
| } | ||||
|  | ||||
| impl<T> Connection<T, Server> | ||||
|     where T: AsyncRead + AsyncWrite, | ||||
| { | ||||
|     pub fn send_response(self, | ||||
|                         id: StreamId, // TODO: Generate one internally? | ||||
|                         response: response::Head, | ||||
|                         end_of_stream: bool) | ||||
|         -> sink::Send<Self> | ||||
|     { | ||||
|         self.send(Frame::Headers { | ||||
|             id: id, | ||||
|             headers: response, | ||||
|             end_of_stream: end_of_stream, | ||||
|         }) | ||||
|     } | ||||
| } | ||||
|  | ||||
| impl<T, P> Stream for Connection<T, P> | ||||
|     where T: AsyncRead + AsyncWrite, | ||||
|           P: Peer, | ||||
| @@ -126,7 +144,9 @@ impl<T, P> Sink for Connection<T, P> | ||||
|         match item { | ||||
|             Frame::Headers { id, headers, end_of_stream } => { | ||||
|                 // Ensure ID is valid | ||||
|                 try!(P::check_initiating_id(id)); | ||||
|                 // TODO: This check should only be done **if** this is a new | ||||
|                 // stream ID | ||||
|                 // try!(P::check_initiating_id(id)); | ||||
|  | ||||
|                 // TODO: Ensure available capacity for a new stream | ||||
|                 // This won't be as simple as self.streams.len() as closed | ||||
|   | ||||
		Reference in New Issue
	
	Block a user