summaryrefslogtreecommitdiffstats
path: root/pecl_http-curl.patch
blob: e10b05c1c2138fde39f406416311f172b4d0c176 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
From 9c0294956c75fda02269432ba4f693afecea1c5b Mon Sep 17 00:00:00 2001
From: Michael Wallner <mike@php.net>
Date: Tue, 27 Aug 2024 19:59:56 +0200
Subject: [PATCH] curl: add workaround for CURLOPT_INTERFACE for v8.9-8.10

---
 src/php_http_client_curl.c | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/src/php_http_client_curl.c b/src/php_http_client_curl.c
index 4decc7a..ed778b1 100644
--- a/src/php_http_client_curl.c
+++ b/src/php_http_client_curl.c
@@ -1413,7 +1413,12 @@ static void php_http_curle_options_init(php_http_options_t *registry)
 #endif
 
 	/* outgoing interface */
-	php_http_option_register(registry, ZEND_STRL("interface"), CURLOPT_INTERFACE, IS_STRING);
+	if ((opt = php_http_option_register(registry, ZEND_STRL("interface"), CURLOPT_INTERFACE, IS_STRING))) {
+#if PHP_HTTP_CURL_VERSION(8,9,0) && !PHP_HTTP_CURL_VERSION(8,10,0)
+		// NULL support lost in v8.9 and restored in libcurl v8.10
+		opt->flags |= PHP_HTTP_CURLE_OPTION_IGNORE_RC;
+#endif
+	}
 	if ((opt = php_http_option_register(registry, ZEND_STRL("portrange"), CURLOPT_LOCALPORT, IS_ARRAY))) {
 		opt->setter = php_http_curle_option_set_portrange;
 	}