VirtualBox

Ignore:
Timestamp:
Apr 11, 2013 9:03:50 AM (12 years ago)
Author:
vboxsync
Message:

FE/Qt: Network manager: Network reply abort support.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/VBox/Frontends/VirtualBox/src/net/UINetworkReply.cpp

    r43733 r45476  
    4242        : m_request(request)
    4343        , m_iError(VINF_SUCCESS)
     44        , m_pHttp(0)
    4445    {
    4546    }
     
    4950    int error() const { return m_iError; }
    5051
     52    /* API: Abort stuff: */
     53    void abort()
     54    {
     55        /* Make sure http is created: */
     56        if (!m_pHttp)
     57            return;
     58
     59        /* Call for http abort: */
     60        RTHttpAbort(m_pHttp);
     61    }
     62
    5163private:
    5264
     
    5870
    5971        /* Create: */
    60         RTHTTP hHttp;
    61         m_iError = RTHttpCreate(&hHttp);
     72        m_iError = RTHttpCreate(&m_pHttp);
    6273
    6374        /* Setup proxy: */
     
    6576        if (proxyManager.proxyEnabled())
    6677        {
    67             RTHttpSetProxy(hHttp,
     78            RTHttpSetProxy(m_pHttp,
    6879                           proxyManager.proxyHost().toAscii().constData(),
    6980                           proxyManager.proxyPort().toUInt(), 0, 0);
     
    8697            }
    8798            const char **ppFormattedHeaders = formattedHeaderPointerVector.data();
    88             RTHttpSetHeaders(hHttp, formattedHeaderPointerVector.size(), ppFormattedHeaders);
     99            RTHttpSetHeaders(m_pHttp, formattedHeaderPointerVector.size(), ppFormattedHeaders);
    89100        }
    90101
     
    93104        {
    94105            char *pszBuf = 0;
    95             m_iError = RTHttpGet(hHttp,
     106            m_iError = RTHttpGet(m_pHttp,
    96107                                 m_request.url().toString().toAscii().constData(),
    97108                                 &pszBuf);
     
    101112
    102113        /* Destroy: */
    103         RTHttpDestroy(hHttp);
     114        RTHttpDestroy(m_pHttp);
     115        m_pHttp = 0;
    104116    }
    105117
     
    107119    QNetworkRequest m_request;
    108120    int m_iError;
     121    RTHTTP m_pHttp;
    109122    QByteArray m_reply;
    110123};
     
    138151    {
    139152        /* Terminate network-reply thread: */
     153        m_pThread->abort();
    140154        m_pThread->wait();
    141155        delete m_pThread;
     
    146160    void abort()
    147161    {
    148         m_error = QNetworkReply::OperationCanceledError;
    149         emit finished();
     162        m_pThread->abort();
    150163    }
    151164
     
    188201            case VINF_SUCCESS:
    189202                m_error = QNetworkReply::NoError;
     203                break;
     204            case VERR_HTTP_ABORTED:
     205                m_error = QNetworkReply::OperationCanceledError;
    190206                break;
    191207            case VERR_HTTP_NOT_FOUND:
Note: See TracChangeset for help on using the changeset viewer.

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