forked from jengelh/virtualbox
60 lines
3.1 KiB
Diff
60 lines
3.1 KiB
Diff
|
|
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))
|