Wire up trailers
This commit is contained in:
@@ -146,10 +146,20 @@ impl<B> Recv<B> where B: Buf {
|
|||||||
Ok(())
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn recv_eos(&mut self, stream: &mut Stream<B>)
|
/// Transition the stream based on receiving trailers
|
||||||
|
pub fn recv_trailers<P: Peer>(&mut self,
|
||||||
|
frame: frame::Headers,
|
||||||
|
stream: &mut store::Ptr<B>)
|
||||||
-> Result<(), ConnectionError>
|
-> Result<(), ConnectionError>
|
||||||
{
|
{
|
||||||
stream.state.recv_close()
|
// Transition the state
|
||||||
|
stream.state.recv_close();
|
||||||
|
|
||||||
|
// Push the frame onto the stream's recv buffer
|
||||||
|
stream.pending_recv.push_back(&mut self.buffer, frame.into());
|
||||||
|
stream.notify_recv();
|
||||||
|
|
||||||
|
Ok(())
|
||||||
}
|
}
|
||||||
|
|
||||||
pub fn recv_data(&mut self,
|
pub fn recv_data(&mut self,
|
||||||
|
|||||||
@@ -91,15 +91,12 @@ impl<B> Streams<B>
|
|||||||
|
|
||||||
me.actions.transition::<P, _, _>(stream, |actions, stream| {
|
me.actions.transition::<P, _, _>(stream, |actions, stream| {
|
||||||
if frame.is_trailers() {
|
if frame.is_trailers() {
|
||||||
unimplemented!();
|
|
||||||
/*
|
|
||||||
if !frame.is_end_stream() {
|
if !frame.is_end_stream() {
|
||||||
// TODO: What error should this return?
|
// TODO: Is this the right error
|
||||||
unimplemented!();
|
return Err(ProtocolError.into());
|
||||||
}
|
}
|
||||||
|
|
||||||
try!(me.actions.recv.recv_eos(stream));
|
actions.recv.recv_trailers::<P>(frame, stream)
|
||||||
*/
|
|
||||||
} else {
|
} else {
|
||||||
actions.recv.recv_headers::<P>(frame, stream)
|
actions.recv.recv_headers::<P>(frame, stream)
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user