Actually get server working (maybe)
This commit is contained in:
@@ -36,7 +36,7 @@ pub fn main() {
|
||||
.uri("https://http2.akamai.com/")
|
||||
.body(()).unwrap();
|
||||
|
||||
let stream = client.request(request, true);
|
||||
let stream = client.request(request, true).unwrap();
|
||||
client.join(stream.and_then(|response| {
|
||||
println!("GOT RESPONSE: {:?}", response);
|
||||
Ok(())
|
||||
|
||||
@@ -35,8 +35,15 @@ pub fn main() {
|
||||
|
||||
println!("H2 connection bound");
|
||||
|
||||
conn.for_each(|(request, stream)| {
|
||||
conn.for_each(|(request, mut stream)| {
|
||||
println!("GOT request: {:?}", request);
|
||||
|
||||
let response = Response::builder()
|
||||
.status(status::OK)
|
||||
.body(()).unwrap();
|
||||
|
||||
stream.send_response(response, true).unwrap();
|
||||
|
||||
Ok(())
|
||||
})
|
||||
|
||||
|
||||
@@ -132,18 +132,17 @@ impl<B> Recv<B> where B: Buf {
|
||||
self.inc_num_streams();
|
||||
}
|
||||
|
||||
// Push the frame onto the stream's recv buffer
|
||||
stream.pending_recv.push_back(&mut self.buffer, frame.into());
|
||||
stream.notify_recv();
|
||||
|
||||
// Only servers can receive a headers frame that initiates the stream.
|
||||
// This is verified in `Streams` before calling this function.
|
||||
if P::is_server() {
|
||||
self.pending_accept.push(stream);
|
||||
Ok(())
|
||||
} else {
|
||||
// Push the frame onto the recv buffer
|
||||
stream.pending_recv.push_back(&mut self.buffer, frame.into());
|
||||
stream.notify_recv();
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
Ok(())
|
||||
}
|
||||
|
||||
pub fn recv_eos(&mut self, stream: &mut Stream<B>)
|
||||
|
||||
@@ -112,6 +112,7 @@ impl<T, B> futures::Stream for Server<T, B>
|
||||
}
|
||||
|
||||
if let Some(inner) = self.connection.next_incoming() {
|
||||
trace!("received incoming");
|
||||
let (head, _) = inner.take_request()?.into_parts();
|
||||
let body = Body { inner: inner.clone() };
|
||||
|
||||
|
||||
Reference in New Issue
Block a user