]> git.ipfire.org Git - thirdparty/curl.git/commitdiff
ngtcp2: fix build with ngtcp2 and nghttp3
authorTatsuhiro Tsujikawa <tatsuhiro.t@gmail.com>
Sun, 12 Sep 2021 06:27:33 +0000 (15:27 +0900)
committerDaniel Stenberg <daniel@haxx.se>
Sun, 12 Sep 2021 10:34:32 +0000 (12:34 +0200)
ngtcp2_conn_client_new and nghttp3_conn_client_new are now macros.
Check the wrapped functions instead.

ngtcp2_stream_close callback now takes flags parameter.

Closes #7709

configure.ac
lib/vquic/ngtcp2.c

index 34ec0efd3fc17e33e6ad743775c4d9210e836574..152b0472eb7c3fa406164f708c6badc2084bfac6 100644 (file)
@@ -2677,7 +2677,7 @@ if test X"$want_tcp2" != Xno; then
     if test "x$cross_compiling" != "xyes"; then
       DIR_TCP2=`echo $LD_TCP2 | $SED -e 's/^-L//'`
     fi
-    AC_CHECK_LIB(ngtcp2, ngtcp2_conn_client_new,
+    AC_CHECK_LIB(ngtcp2, ngtcp2_conn_client_new_versioned,
       [
        AC_CHECK_HEADERS(ngtcp2/ngtcp2.h,
           NGTCP2_ENABLED=1
@@ -2876,7 +2876,7 @@ if test X"$want_nghttp3" != Xno; then
     if test "x$cross_compiling" != "xyes"; then
       DIR_NGHTTP3=`echo $LD_NGHTTP3 | $SED -e 's/^-L//'`
     fi
-    AC_CHECK_LIB(nghttp3, nghttp3_conn_client_new,
+    AC_CHECK_LIB(nghttp3, nghttp3_conn_client_new_versioned,
       [
        AC_CHECK_HEADERS(nghttp3/nghttp3.h,
           curl_h3_msg="enabled (ngtcp2 + nghttp3)"
index 776cdc0690f8ddcf7ddc51efa7cba7a0eb2a6d4b..9fcfe81a8cda196ca173535ad86cf4fac487378e 100644 (file)
@@ -559,8 +559,8 @@ cb_acked_stream_data_offset(ngtcp2_conn *tconn, int64_t stream_id,
   return 0;
 }
 
-static int cb_stream_close(ngtcp2_conn *tconn, int64_t stream_id,
-                           uint64_t app_error_code,
+static int cb_stream_close(ngtcp2_conn *tconn, uint32_t flags,
+                           int64_t stream_id, uint64_t app_error_code,
                            void *user_data, void *stream_user_data)
 {
   struct quicsocket *qs = (struct quicsocket *)user_data;
@@ -569,6 +569,10 @@ static int cb_stream_close(ngtcp2_conn *tconn, int64_t stream_id,
   (void)stream_user_data;
   /* stream is closed... */
 
+  if(!(flags & NGTCP2_STREAM_CLOSE_FLAG_APP_ERROR_CODE_SET)) {
+    app_error_code = NGHTTP3_H3_NO_ERROR;
+  }
+
   rv = nghttp3_conn_close_stream(qs->h3conn, stream_id,
                                  app_error_code);
   if(rv) {