1
0
forked from pool/virtualbox
Files
virtualbox/curl-8.16.patch
2025-09-11 17:03:51 +02:00

60 lines
3.1 KiB
Diff
Raw Permalink Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
References: https://bugzilla.suse.com/1249448
From: Gianfranco Costamagna <locutusofborg@debian.org>
From: Jan Engelhardt <ej@inai.de>
Date: 2025-09-09 12:22:00 +0200
Subject: [PATCH] Fix build with new curl version
References: https://github.com/curl/curl/pull/18054
References: https://bugs.debian.org/1114436
References: https://salsa.debian.org/pkg-virtualbox-team/virtualbox/-/commit/dbf9a6ef75380ebd2705df0198c6ac8073d0b4cb#f28811e0ca565091f1d341d90b8ba208319492f5
References: https://bugzilla.suse.com/1249448
curl 8.16 changed CURLPROXY_* definitions from enum{int} to long.
C++ has more rules than C, preventing some implicit conversions
involving enums. Debian patch changed to instead use an explicit
conversion. [-jengelh]
http-curl.cpp: In function int rtHttpUpdateAutomaticProxyDisable(PRTHTTPINTERNAL):
http-curl.cpp:702:27: error: invalid conversion from long int to curl_proxytype [-fpermissive]
702 | pThis->enmProxyType = CURLPROXY_HTTP;
diff --git a/src/VBox/Runtime/generic/http-curl.cpp b/src/VBox/Runtime/generic/http-curl.cpp
index 4cf51049d..a76bf14f8 100644
--- a/src/VBox/Runtime/generic/http-curl.cpp
+++ b/src/VBox/Runtime/generic/http-curl.cpp
@@ -188,7 +188,7 @@ typedef struct RTHTTPINTERNAL
/** Proxy port number (UINT32_MAX if not specified). */
uint32_t uProxyPort;
/** The proxy type (CURLPROXY_HTTP, CURLPROXY_SOCKS5, ++). */
- curl_proxytype enmProxyType;
+ long enmProxyType;
/** Proxy username (RTStrFree). */
char *pszProxyUsername;
/** Proxy password (RTStrFree). */
@@ -591,7 +591,7 @@ RTR3DECL(int) RTHttpUseSystemProxySettings(RTHTTP hHttp)
* @param pszUsername The proxy username, or NULL if none.
* @param pszPassword The proxy password, or NULL if none.
*/
-static int rtHttpUpdateProxyConfig(PRTHTTPINTERNAL pThis, curl_proxytype enmProxyType, const char *pszHost,
+static int rtHttpUpdateProxyConfig(PRTHTTPINTERNAL pThis, long enmProxyType, const char *pszHost,
uint32_t uPort, const char *pszUsername, const char *pszPassword)
{
CURLcode rcCurl;
@@ -871,7 +871,7 @@ static int rtHttpConfigureProxyFromUrl(PRTHTTPINTERNAL pThis, const char *pszPro
char *pszPassword = RTUriParsedAuthorityPassword(pszProxyUrl, &Parsed);
uint32_t uProxyPort = RTUriParsedAuthorityPort(pszProxyUrl, &Parsed);
bool fUnknownProxyType = false;
- curl_proxytype enmProxyType;
+ long enmProxyType;
if (RTUriIsSchemeMatch(pszProxyUrl, "http"))
{
enmProxyType = CURLPROXY_HTTP;
@@ -1352,7 +1352,7 @@ static int rtHttpDarwinTryConfigProxy(PRTHTTPINTERNAL pThis, CFDictionaryRef hDi
* Determine the proxy type (not entirely sure about type == proxy type and
* not scheme/protocol)...
*/
- curl_proxytype enmProxyType = CURLPROXY_HTTP;
+ long enmProxyType = (long)CURLPROXY_HTTP;
uint32_t uDefaultProxyPort = 8080;
if ( CFEqual(hStrProxyType, kCFProxyTypeHTTP)
|| CFEqual(hStrProxyType, kCFProxyTypeHTTPS))