curl: fix symbolic constant typechecks with curl_easy_setopt()

As with the previous two commits, we should be passing long integers, not regular ones, to curl_easy_setopt(), and compiling against curl 8.14 loudly complains if we don't. This patch catches the remaining cases, which are ones where we pass curl's own symbolic constants. We'll cast them to long manually in each call. It seems kind of weird to me that curl doesn't define these constants as longs, since the point of them is to pass to curl_easy_setopt(). But in the curl documentation and examples, they clearly show casting them as part of the setopt calls. It may be that there is some reason not to push the type into the macro, like backwards compatibility. I didn't dig, as it doesn't really matter: we have to follow what existing curl versions ask for anyway. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jeff King committed Jun 4, 2025 at 16:56 UTC 4558c8f84b2f8d3ba1483727bcb49935ae8ff595
1 file changed +7 -7
http.c
+7 -7
@@ -1057,7 +1057,7 @@ static CURL *get_curl_handle(void)
1057
1058 if (http_ssl_backend && !strcmp("schannel", http_ssl_backend) &&
1059 !http_schannel_check_revoke) {
1060 - curl_easy_setopt(result, CURLOPT_SSL_OPTIONS, CURLSSLOPT_NO_REVOKE);
1060 + curl_easy_setopt(result, CURLOPT_SSL_OPTIONS, (long)CURLSSLOPT_NO_REVOKE);
1061 }
1062
1063 if (http_proactive_auth != PROACTIVE_AUTH_NONE)
@@ -1118,7 +1118,7 @@ static CURL *get_curl_handle(void)
1118 }
1119
1120 curl_easy_setopt(result, CURLOPT_MAXREDIRS, 20L);
1121 - curl_easy_setopt(result, CURLOPT_POSTREDIR, CURL_REDIR_POST_ALL);
1121 + curl_easy_setopt(result, CURLOPT_POSTREDIR, (long)CURL_REDIR_POST_ALL);
1122
1123 #ifdef GIT_CURL_HAVE_CURLOPT_PROTOCOLS_STR
1124 {
@@ -1193,18 +1193,18 @@ static CURL *get_curl_handle(void)
1193
1194 if (starts_with(curl_http_proxy, "socks5h"))
1195 curl_easy_setopt(result,
1196 - CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5_HOSTNAME);
1196 + CURLOPT_PROXYTYPE, (long)CURLPROXY_SOCKS5_HOSTNAME);
1197 else if (starts_with(curl_http_proxy, "socks5"))
1198 curl_easy_setopt(result,
1199 - CURLOPT_PROXYTYPE, CURLPROXY_SOCKS5);
1199 + CURLOPT_PROXYTYPE, (long)CURLPROXY_SOCKS5);
1200 else if (starts_with(curl_http_proxy, "socks4a"))
1201 curl_easy_setopt(result,
1202 - CURLOPT_PROXYTYPE, CURLPROXY_SOCKS4A);
1202 + CURLOPT_PROXYTYPE, (long)CURLPROXY_SOCKS4A);
1203 else if (starts_with(curl_http_proxy, "socks"))
1204 curl_easy_setopt(result,
1205 - CURLOPT_PROXYTYPE, CURLPROXY_SOCKS4);
1205 + CURLOPT_PROXYTYPE, (long)CURLPROXY_SOCKS4);
1206 else if (starts_with(curl_http_proxy, "https")) {
1207 - curl_easy_setopt(result, CURLOPT_PROXYTYPE, CURLPROXY_HTTPS);
1207 + curl_easy_setopt(result, CURLOPT_PROXYTYPE, (long)CURLPROXY_HTTPS);
1208
1209 if (http_proxy_ssl_cert)
1210 curl_easy_setopt(result, CURLOPT_PROXY_SSLCERT, http_proxy_ssl_cert);