struct h2c *h2c = h2s->h2c;
struct wait_event *sw = &h2s->wait_event;
- if (h2s->st == H2_SS_HLOC || h2s->st == H2_SS_ERROR || h2s->st == H2_SS_CLOSED)
+ if (h2s->st == H2_SS_CLOSED)
goto done;
/* a connstream may require us to immediately kill the whole connection
struct h2c *h2c = h2s->h2c;
struct wait_event *sw = &h2s->wait_event;
- if (h2s->st == H2_SS_HLOC || h2s->st == H2_SS_ERROR || h2s->st == H2_SS_CLOSED)
+ if (h2s->st == H2_SS_CLOSED)
goto done;
- if (h2s->flags & H2_SF_HEADERS_SENT) {
+ if (h2s->st != H2_SS_HLOC && h2s->st != H2_SS_ERROR &&
+ (h2s->flags & H2_SF_HEADERS_SENT)) {
/* we can cleanly close using an empty data frame only after headers */
if (!(h2s->flags & (H2_SF_ES_SENT|H2_SF_RST_SENT)) &&