|
|
|
@ -832,6 +832,7 @@ impl HTTP2State {
|
|
|
|
let over = head.flags & parser::HTTP2_FLAG_HEADER_EOS != 0;
|
|
|
|
let over = head.flags & parser::HTTP2_FLAG_HEADER_EOS != 0;
|
|
|
|
let ftype = head.ftype;
|
|
|
|
let ftype = head.ftype;
|
|
|
|
let sid = head.stream_id;
|
|
|
|
let sid = head.stream_id;
|
|
|
|
|
|
|
|
let padded = head.flags & parser::HTTP2_FLAG_HEADER_PADDED != 0;
|
|
|
|
if dir == STREAM_TOSERVER {
|
|
|
|
if dir == STREAM_TOSERVER {
|
|
|
|
tx.frames_ts.push(HTTP2Frame {
|
|
|
|
tx.frames_ts.push(HTTP2Frame {
|
|
|
|
header: head,
|
|
|
|
header: head,
|
|
|
|
@ -851,8 +852,12 @@ impl HTTP2State {
|
|
|
|
if index > 0 {
|
|
|
|
if index > 0 {
|
|
|
|
let tx_same = &mut self.transactions[index - 1];
|
|
|
|
let tx_same = &mut self.transactions[index - 1];
|
|
|
|
let (files, flags) = self.files.get(dir);
|
|
|
|
let (files, flags) = self.files.get(dir);
|
|
|
|
|
|
|
|
let mut dinput = &rem[..hlsafe];
|
|
|
|
|
|
|
|
if padded && rem.len() > 0 && usize::from(rem[0]) < hlsafe{
|
|
|
|
|
|
|
|
dinput = &rem[1..hlsafe - usize::from(rem[0])];
|
|
|
|
|
|
|
|
}
|
|
|
|
match tx_same.decompress(
|
|
|
|
match tx_same.decompress(
|
|
|
|
&rem[..hlsafe],
|
|
|
|
dinput,
|
|
|
|
dir,
|
|
|
|
dir,
|
|
|
|
sfcm,
|
|
|
|
sfcm,
|
|
|
|
over,
|
|
|
|
over,
|
|
|
|
|