prevent a leak of 'active streams' if client request has user error (#266)

This commit is contained in:
Sean McArthur
2018-04-26 18:20:32 -07:00
committed by GitHub
parent 279dd93354
commit fadec67fdf
2 changed files with 17 additions and 4 deletions

View File

@@ -607,13 +607,21 @@ where
let mut stream = me.store.insert(stream.id, stream);
me.actions.send.send_headers(
let sent = me.actions.send.send_headers(
headers,
send_buffer,
&mut stream,
&mut me.counts,
&mut me.actions.task,
)?;
);
// send_headers can return a UserError, if it does,
// we should forget about this stream.
if let Err(err) = sent {
stream.unlink();
stream.remove();
return Err(err.into());
}
// Given that the stream has been initialized, it should not be in the
// closed state.