]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
ngtcp2: deal with stream close
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
Thu, 15 Aug 2019 05:52:56 +0000 (14:52 +0900)
committerDaniel Stenberg <daniel@haxx.se>
Thu, 15 Aug 2019 06:02:23 +0000 (08:02 +0200)
lib/vquic/ngtcp2.c

index c26e806700c0243f0b88c8c9cbc3339031428c12..38bea45202ca71b6af5fd191e4f91c4eb53f0362 100644 (file)
@@ -1217,12 +1217,16 @@ static int cb_h3_stream_close(nghttp3_conn *conn, int64_t stream_id,
                               uint64_t app_error_code, void *user_data,
                               void *stream_user_data)
 {
+  struct Curl_easy *data = stream_user_data;
+  struct HTTP *stream = data->req.protop;
   (void)conn;
   (void)stream_id;
   (void)app_error_code;
   (void)user_data;
-  (void)stream_user_data;
   fprintf(stderr, "cb_h3_stream_close CALLED\n");
+
+  stream->closed = TRUE;
+
   return 0;
 }
 
@@ -1481,6 +1485,11 @@ static ssize_t ngh3_stream_recv(struct connectdata *conn,
     return stream->memlen;
   }
 
+  if(stream->closed) {
+    *curlcode = CURLE_OK;
+    return 0;
+  }
+
   infof(conn->data, "ngh3_stream_recv returns 0 bytes and EAGAIN\n");
   *curlcode = CURLE_AGAIN;
   return -1;