H3: Set encoder settings on receive

This commit is contained in:
stammw
2019-11-19 00:19:09 +01:00
committed by Dirkjan Ochtman
parent 807ae068cf
commit 77d32c3352
2 changed files with 8 additions and 4 deletions
+1 -1
View File
@@ -249,7 +249,7 @@ impl ConnectionInner {
Poll::Ready(Some(Ok(frame))) => {
match (self.inner.remote_settings().is_some(), self.side, frame) {
(_, _, HttpFrame::Settings(s)) => {
self.inner.set_remote_settings(s);
self.inner.set_remote_settings(s)?;
}
(true, Side::Client, HttpFrame::Goaway(id)) => {
self.inner.leave(StreamId(id));
+7 -3
View File
@@ -47,8 +47,7 @@ impl Connection {
pub fn with_settings(settings: Settings) -> Result<Self> {
let mut decoder_table = DynamicTable::new();
decoder_table.set_max_blocked(settings.qpack_blocked_streams as usize)?;
decoder_table
.set_max_size(settings.qpack_max_table_capacity as usize)?;
decoder_table.set_max_size(settings.qpack_max_table_capacity as usize)?;
let mut pending_control = BytesMut::with_capacity(128);
settings.encode(&mut pending_control);
@@ -114,8 +113,13 @@ impl Connection {
&self.remote_settings
}
pub fn set_remote_settings(&mut self, settings: Settings) {
pub fn set_remote_settings(&mut self, settings: Settings) -> Result<()> {
self.encoder_table
.set_max_blocked(settings.qpack_blocked_streams as usize)?;
self.encoder_table
.set_max_size(settings.qpack_max_table_capacity as usize)?;
self.remote_settings = Some(settings);
Ok(())
}
pub fn pending_stream_take(&mut self, ty: PendingStreamType) -> Option<Bytes> {