testing, debugging, making things private
This commit is contained in:
@@ -39,6 +39,8 @@ impl<T> FramedRead<T> {
|
||||
}
|
||||
|
||||
fn decode_frame(&mut self, mut bytes: Bytes) -> Result<Option<Frame>, ConnectionError> {
|
||||
trace!("decoding frame from {}B", bytes.len());
|
||||
|
||||
// Parse the head
|
||||
let head = frame::Head::parse(&bytes);
|
||||
|
||||
@@ -47,7 +49,7 @@ impl<T> FramedRead<T> {
|
||||
}
|
||||
|
||||
let kind = head.kind();
|
||||
debug!("received {:?}", kind);
|
||||
debug!("decoded; kind={:?}", kind);
|
||||
|
||||
let frame = match kind {
|
||||
Kind::Settings => {
|
||||
@@ -121,11 +123,13 @@ impl<T> Stream for FramedRead<T>
|
||||
|
||||
fn poll(&mut self) -> Poll<Option<Frame>, ConnectionError> {
|
||||
loop {
|
||||
trace!("poll");
|
||||
let bytes = match try_ready!(self.inner.poll()) {
|
||||
Some(bytes) => bytes.freeze(),
|
||||
None => return Ok(Async::Ready(None)),
|
||||
};
|
||||
|
||||
trace!("poll; bytes={}B", bytes.len());
|
||||
if let Some(frame) = try!(self.decode_frame(bytes)) {
|
||||
debug!("poll; frame={:?}", frame);
|
||||
return Ok(Async::Ready(Some(frame)));
|
||||
|
||||
@@ -110,29 +110,19 @@ impl<T, U> Stream for StreamRecvOpen<T>
|
||||
|
||||
trace!("poll");
|
||||
loop {
|
||||
let frame = match self.inner.poll()? {
|
||||
Async::NotReady => {
|
||||
panic!("poll: NotReady");
|
||||
}
|
||||
Async::Ready(None) => {
|
||||
panic!("poll: None");
|
||||
}
|
||||
Async::Ready(Some(f)) => {
|
||||
trace!("poll: id={:?} eos={}", f.stream_id(), f.is_end_stream());
|
||||
f
|
||||
}
|
||||
let frame = match try_ready!(self.inner.poll()) {
|
||||
None => return Ok(Async::Ready(None)),
|
||||
Some(f) => f,
|
||||
};
|
||||
// let frame = match try_ready!(self.inner.poll()) {
|
||||
// None => return Ok(Async::Ready(None)),
|
||||
// Some(f) => f,
|
||||
// };
|
||||
|
||||
let id = frame.stream_id();
|
||||
trace!("poll: id={:?}", id);
|
||||
|
||||
if id.is_zero() {
|
||||
if !frame.is_connection_frame() {
|
||||
return Err(ProtocolError.into())
|
||||
}
|
||||
|
||||
// Nothing to do on connection frames.
|
||||
return Ok(Async::Ready(Some(frame)));
|
||||
}
|
||||
|
||||
@@ -87,6 +87,7 @@ impl<T, U> Sink for StreamSendOpen<T>
|
||||
if !frame.is_connection_frame() {
|
||||
return Err(InvalidStreamId.into())
|
||||
}
|
||||
|
||||
// Nothing to do on connection frames.
|
||||
return self.inner.start_send(frame);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user