struct chunk_info {
OSSL_QUIC_FRAME_STREAM shdr;
+ uint64_t orig_len;
OSSL_QTX_IOVEC iov[2];
size_t num_stream_iovec;
int valid;
/* Should only have 0-length chunk if FIN */
return 0;
+ chunk->orig_len = chunk->shdr.len;
+
/* Clamp according to connection and stream-level TXFC. */
fc_credit = ossl_quic_txfc_get_credit(stream_txfc);
fc_swm = ossl_quic_txfc_get_swm(stream_txfc);
goto err;
shdr = &chunks[i % 2].shdr;
- orig_len = shdr->len;
+ orig_len = chunks[i % 2].orig_len;
if (i > 0)
/* Load next chunk for lookahead. */
if (!txp_plan_stream_chunk(txp, h, sstream, stream_txfc, i + 1,
if (shdr->len < orig_len) {
/*
* If we did not serialize all of this chunk we definitely do not
- * want to try the next chunk (and we must not mark the stream
- * as drained).
+ * want to try the next chunk
*/
rc = 1;
goto err;