@ -466,17 +466,19 @@ impl HTTP2State {
Ok ( ( _ , set ) ) = > {
Ok ( ( _ , set ) ) = > {
for i in 0 .. set . len ( ) {
for i in 0 .. set . len ( ) {
if set [ i ] . id = = parser ::HTTP2SettingsId ::SETTINGSHEADERTABLESIZE {
if set [ i ] . id = = parser ::HTTP2SettingsId ::SETTINGSHEADERTABLESIZE {
//set for both endpoints ? to be tested
//reverse order as this is what we accept from the other endpoint
self . dynamic_headers_tc . max_size = set [ i ] . value as usize ;
let dyn_headers = if dir = = STREAM_TOCLIENT {
self . dynamic_headers_ts . max_size = set [ i ] . value as usize ;
& mut self . dynamic_headers_ts
} else {
& mut self . dynamic_headers_tc
} ;
dyn_headers . max_size = set [ i ] . value as usize ;
if set [ i ] . value > HTTP2_MAX_TABLESIZE {
if set [ i ] . value > HTTP2_MAX_TABLESIZE {
//mark potential overflow
//mark potential overflow
self . dynamic_headers_tc . overflow = 1 ;
dyn_headers . overflow = 1 ;
self . dynamic_headers_ts . overflow = 1 ;
} else {
} else {
//reset in case peer set a lower value, to be tested
//reset in case peer set a lower value, to be tested
self . dynamic_headers_tc . overflow = 0 ;
dyn_headers . overflow = 0 ;
self . dynamic_headers_ts . overflow = 0 ;
}
}
}
}
}
}