panic if stuck in a CONTINUATION frame write loop
This commit is contained in:
@@ -197,6 +197,17 @@ where
|
|||||||
Some(Next::Continuation(frame)) => {
|
Some(Next::Continuation(frame)) => {
|
||||||
// Buffer the continuation frame, then try to write again
|
// Buffer the continuation frame, then try to write again
|
||||||
if let Some(continuation) = frame.encode(&mut self.hpack, self.buf.get_mut()) {
|
if let Some(continuation) = frame.encode(&mut self.hpack, self.buf.get_mut()) {
|
||||||
|
|
||||||
|
// We previously had a CONTINUATION, and after encoding
|
||||||
|
// it, we got *another* one? Let's just double check
|
||||||
|
// that at least some progress is being made...
|
||||||
|
if self.buf.get_ref().len() == frame::HEADER_LEN {
|
||||||
|
// If *only* the CONTINUATION frame header was
|
||||||
|
// written, and *no* header fields, we're stuck
|
||||||
|
// in a loop...
|
||||||
|
panic!("CONTINUATION frame write loop; header value too big to encode");
|
||||||
|
}
|
||||||
|
|
||||||
self.next = Some(Next::Continuation(continuation));
|
self.next = Some(Next::Continuation(continuation));
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user