forked from pool/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))
|