summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAlexandre Pion <pion@afnic.fr>2020-11-05 13:01:05 +0100
committerAlexandre Pion <pion@afnic.fr>2020-11-05 13:01:05 +0100
commit543c87a2f77ec60c6ab95c60a5fbbc0efba0dc1f (patch)
treecf8c7eeffcd9ce0a86bd9a937e75efa4f16298f4
parente633f9a1ac4df5e249e78c218d5fbbd848219042 (diff)
downloadpycurl-543c87a2f77ec60c6ab95c60a5fbbc0efba0dc1f.tar.gz
Expose MAX_CONCURRENT_STREAMS in CurlMulti
-rw-r--r--src/module.c3
-rw-r--r--src/multi.c3
-rw-r--r--src/pycurl.h4
3 files changed, 10 insertions, 0 deletions
diff --git a/src/module.c b/src/module.c
index 9204ee0..6d093f3 100644
--- a/src/module.c
+++ b/src/module.c
@@ -1071,6 +1071,9 @@ initpycurl(void)
insint_m(d, "M_PIPELINING_SITE_BL", CURLMOPT_PIPELINING_SITE_BL);
insint_m(d, "M_PIPELINING_SERVER_BL", CURLMOPT_PIPELINING_SERVER_BL);
#endif
+#ifdef HAVE_CURL_7_67_0_MULTI_STREAMS
+ insint_m(d, "M_MAX_CONCURRENT_STREAMS", CURLMOPT_MAX_CONCURRENT_STREAMS);
+#endif
#if LIBCURL_VERSION_NUM >= MAKE_LIBCURL_VERSION(7, 43, 0)
insint_m(d, "PIPE_NOTHING", CURLPIPE_NOTHING);
diff --git a/src/multi.c b/src/multi.c
index 5181119..52d18b5 100644
--- a/src/multi.c
+++ b/src/multi.c
@@ -276,6 +276,9 @@ do_multi_setopt_int(CurlMultiObject *self, int option, PyObject *obj)
case CURLMOPT_CONTENT_LENGTH_PENALTY_SIZE:
case CURLMOPT_CHUNK_LENGTH_PENALTY_SIZE:
#endif
+#ifdef HAVE_CURL_7_67_0_MULTI_STREAMS
+ case CURLMOPT_MAX_CONCURRENT_STREAMS:
+#endif
curl_multi_setopt(self->multi_handle, option, d);
break;
default:
diff --git a/src/pycurl.h b/src/pycurl.h
index 95e08b3..31d1eac 100644
--- a/src/pycurl.h
+++ b/src/pycurl.h
@@ -163,6 +163,10 @@ pycurl_inet_ntop (int family, void *addr, char *string, size_t string_size);
#define HAVE_CURL_GLOBAL_SSLSET
#endif
+#if LIBCURL_VERSION_NUM >= 0x074300 /* check for 7.67.0 or greater */
+#define HAVE_CURL_7_67_0_MULTI_STREAMS
+#endif
+
#undef UNUSED
#define UNUSED(var) ((void)&var)