VirtualBox

Changeset 85139 in vbox for trunk/src/VBox/Runtime


Ignore:
Timestamp:
Jul 9, 2020 7:49:52 AM (5 years ago)
Author:
vboxsync
svn:sync-xref-src-repo-rev:
139085
Message:

OCI: (bugref:9469) Proxy support (without authentication) for local gateway, cloud ssh and vpn. Proxy info retrieval in IPRT.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Runtime/generic/http-curl.cpp

    r85121 r85139  
    35473547
    35483548
     3549RTR3DECL(int) RTHttpGetProxyInfoForUrl(RTHTTP hHttp, const char *pcszUrl, PRTHTTPPROXYINFO pProxy)
     3550{
     3551    PRTHTTPINTERNAL pThis = hHttp;
     3552    rtHttpResetState(pThis);
     3553    int rc = rtHttpApplySettings(pThis, pcszUrl);
     3554    if (RT_FAILURE(rc))
     3555        return rc;
     3556
     3557    switch (pThis->enmProxyType)
     3558    {
     3559        case CURLPROXY_HTTP:
     3560        case CURLPROXY_HTTP_1_0:
     3561            pProxy->enmProxyType = RTHTTPPROXYTYPE_HTTP;
     3562            break;
     3563        case CURLPROXY_HTTPS:
     3564            pProxy->enmProxyType = RTHTTPPROXYTYPE_HTTPS;
     3565            break;
     3566        case CURLPROXY_SOCKS4:
     3567        case CURLPROXY_SOCKS4A:
     3568            pProxy->enmProxyType = RTHTTPPROXYTYPE_SOCKS4;
     3569            break;
     3570        case CURLPROXY_SOCKS5:
     3571        case CURLPROXY_SOCKS5_HOSTNAME:
     3572            pProxy->enmProxyType = RTHTTPPROXYTYPE_SOCKS5;
     3573            break;
     3574        default:
     3575            pProxy->enmProxyType = RTHTTPPROXYTYPE_UNKNOWN;
     3576            break;
     3577    }
     3578    if (pThis->pszProxyHost == NULL)
     3579        return VERR_INTERNAL_ERROR;
     3580    pProxy->pszProxyHost = RTStrDup(pThis->pszProxyHost);
     3581    pProxy->uProxyPort = pThis->uProxyPort;
     3582    pProxy->pszProxyUsername = NULL;
     3583    pProxy->pszProxyPassword = NULL;
     3584
     3585    return VINF_SUCCESS;
     3586}
     3587
     3588
     3589RTR3DECL(int) RTHttpFreeProxyInfo(PRTHTTPPROXYINFO pProxy)
     3590{
     3591    if (pProxy)
     3592    {
     3593        RTStrFree(pProxy->pszProxyHost);
     3594        RTStrFree(pProxy->pszProxyUsername);
     3595        RTStrFree(pProxy->pszProxyPassword);
     3596    }
     3597    return VINF_SUCCESS;
     3598}
     3599
     3600
    35493601RTR3DECL(int) RTHttpPerform(RTHTTP hHttp, const char *pszUrl, RTHTTPMETHOD enmMethod, void const *pvReqBody, size_t cbReqBody,
    35503602                            uint32_t *puHttpStatus, void **ppvHeaders, size_t *pcbHeaders, void **ppvBody, size_t *pcbBody)
Note: See TracChangeset for help on using the changeset viewer.

© 2025 Oracle Support Privacy / Do Not Sell My Info Terms of Use Trademark Policy Automated Access Etiquette