]> granicus.if.org Git - curl/commitdiff
http2: check nghttp2_session_set_local_window_size exists
authorJay Satiro <raysatiro@yahoo.com>
Mon, 28 Nov 2016 19:08:35 +0000 (14:08 -0500)
committerJay Satiro <raysatiro@yahoo.com>
Mon, 28 Nov 2016 19:08:35 +0000 (14:08 -0500)
The function only exists since nghttp2 1.12.0.

Bug: https://github.com/curl/curl/commit/a4d8888#commitcomment-19985676
Reported-by: Michael Kaufmann
lib/http2.c

index 16684da9d1a525261154a97668ec4933d7df6816..4cc17ba2b228c3a0466c00bfe47dda6bfef37f28 100644 (file)
 #define nghttp2_session_callbacks_set_error_callback(x,y)
 #endif
 
+#if (NGHTTP2_VERSION_NUM >= 0x010c00)
+#define NGHTTP2_HAS_SET_LOCAL_WINDOW_SIZE 1
+#endif
+
 #define HTTP2_HUGE_WINDOW_SIZE (1 << 30)
 
 /*
@@ -2044,6 +2048,7 @@ CURLcode Curl_http2_switched(struct connectdata *conn,
     }
   }
 
+#ifdef NGHTTP2_HAS_SET_LOCAL_WINDOW_SIZE
   rv = nghttp2_session_set_local_window_size(httpc->h2, NGHTTP2_FLAG_NONE, 0,
                                              HTTP2_HUGE_WINDOW_SIZE);
   if(rv != 0) {
@@ -2051,6 +2056,7 @@ CURLcode Curl_http2_switched(struct connectdata *conn,
           nghttp2_strerror(rv), rv);
     return CURLE_HTTP2;
   }
+#endif
 
   /* we are going to copy mem to httpc->inbuf.  This is required since
      mem is part of buffer pointed by stream->mem, and callbacks