summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDaniel Stenberg <daniel@haxx.se>2019-08-14 15:21:58 +0200
committerDaniel Stenberg <daniel@haxx.se>2019-08-14 15:22:46 +0200
commit83501e63ddc445647c36d07d92d2a55d4c35f0b1 (patch)
tree3f128845616fad406d3163491e267d04e036df29
parentb73f1e058cc73aa72646e248cd295473dfc8d93e (diff)
downloadcurl-bagder/h3-happy-eyeballs.tar.gz
fixup ngtcp2 - end the h3 stream after the requestbagder/h3-happy-eyeballs
-rw-r--r--lib/vquic/ngtcp2.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/vquic/ngtcp2.c b/lib/vquic/ngtcp2.c
index 9b5c9df96..b9dbfd403 100644
--- a/lib/vquic/ngtcp2.c
+++ b/lib/vquic/ngtcp2.c
@@ -1698,6 +1698,7 @@ static CURLcode http_request(struct connectdata *conn, const void *mem,
#endif
break;
default:
+ stream->upload_left = 0; /* nothing left to send */
rc = nghttp3_conn_submit_request(qs->h3conn, stream->stream3_id,
nva, nheader,
NULL, /* no body! */
@@ -1711,6 +1712,15 @@ static CURLcode http_request(struct connectdata *conn, const void *mem,
Curl_safefree(nva);
+ if(!stream->upload_left) {
+ /* done with this stream, FIN it */
+ rc = nghttp3_conn_end_stream(qs->h3conn, stream->stream3_id);
+ if(rc) {
+ result = CURLE_SEND_ERROR;
+ goto fail;
+ }
+ }
+
infof(data, "Using HTTP/3 Stream ID: %x (easy handle %p)\n",
stream3_id, (void *)data);