Commit c60ca347 authored by Tatsuhiro Tsujikawa's avatar Tatsuhiro Tsujikawa

Ensure complete packet is written

parent a4dc6cf5
...@@ -647,7 +647,13 @@ int Client::write_quic() { ...@@ -647,7 +647,13 @@ int Client::write_quic() {
case NGTCP2_ERR_STREAM_SHUT_WR: case NGTCP2_ERR_STREAM_SHUT_WR:
if (nwrite == NGTCP2_ERR_STREAM_DATA_BLOCKED && if (nwrite == NGTCP2_ERR_STREAM_DATA_BLOCKED &&
ngtcp2_conn_get_max_data_left(quic.conn) == 0) { ngtcp2_conn_get_max_data_left(quic.conn) == 0) {
return 0; /* Call ngtcp2_conn_writev_stream to ensure that a complete
packet is written to the buffer. */
nwrite = ngtcp2_conn_writev_stream(
quic.conn, &ps.path, buf.data(), quic.max_pktlen, nullptr,
NGTCP2_WRITE_STREAM_FLAG_NONE, /* stream_id = */ 0, /* fin = */ 0,
nullptr, 0, timestamp(worker->loop));
break;
} }
if (s->block_stream(stream_id) != 0) { if (s->block_stream(stream_id) != 0) {
...@@ -662,8 +668,10 @@ int Client::write_quic() { ...@@ -662,8 +668,10 @@ int Client::write_quic() {
continue; continue;
} }
quic.last_error = quic::err_transport(nwrite); if (nwrite < 0) {
return -1; quic.last_error = quic::err_transport(nwrite);
return -1;
}
} }
quic_restart_pkt_timer(); quic_restart_pkt_timer();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment