* body or directly end in TRL2.
*/
if (es_now) {
+ // trim any possibly pending data (eg: inconsistent content-length)
+ bo_del(buf, buf->o);
+
h1m->state = HTTP_MSG_DONE;
h2s->flags |= H2_SF_ES_SENT;
if (h2s->st == H2_SS_OPEN)
else
h2c_stream_close(h2c, h2s);
- if (!(h1m->flags & H1_MF_CHNK))
+ if (!(h1m->flags & H1_MF_CHNK)) {
+ // trim any possibly pending data (eg: inconsistent content-length)
+ bo_del(buf, buf->o);
+
h1m->state = HTTP_MSG_DONE;
+ }
h2s->flags |= H2_SF_ES_SENT;
}
}
total += count;
bo_del(buf, count);
+
+ // trim any possibly pending data (eg: extra CR-LF, ...)
+ bo_del(buf, buf->o);
+
h2s->res.state = HTTP_MSG_DONE;
break;
}