From 75a0b3e5526b0a6cf01deb60f0dc37b61928206a Mon Sep 17 00:00:00 2001 From: Aaron McCarthy Date: Thu, 28 Jan 2010 13:15:50 +1000 Subject: Wait until session is in the connected state before starting transfer. --- src/network/access/qnetworkaccessbackend.cpp | 19 +++++++++++++------ src/network/access/qnetworkaccessbackend_p.h | 2 +- 2 files changed, 14 insertions(+), 7 deletions(-) diff --git a/src/network/access/qnetworkaccessbackend.cpp b/src/network/access/qnetworkaccessbackend.cpp index 22df248..d9bce9d 100644 --- a/src/network/access/qnetworkaccessbackend.cpp +++ b/src/network/access/qnetworkaccessbackend.cpp @@ -354,19 +354,26 @@ void QNetworkAccessBackend::start() } } - connect(manager->session, SIGNAL(opened()), this, SLOT(sessionOpened())); + connect(manager->session, SIGNAL(stateChanged(QNetworkSession::State)), + this, SLOT(sessionStateChanged(QNetworkSession::State))); connect(manager->session, SIGNAL(error(QNetworkSession::SessionError)), this, SLOT(sessionError(QNetworkSession::SessionError))); - if (!manager->session->isOpen()) + switch (manager->session->state()) { + case QNetworkSession::Roaming: + break; + case QNetworkSession::Connected: + open(); + break; + default: manager->session->open(); - else - sessionOpened(); + } } -void QNetworkAccessBackend::sessionOpened() +void QNetworkAccessBackend::sessionStateChanged(QNetworkSession::State state) { - open(); + if (state == QNetworkSession::Connected) + open(); } void QNetworkAccessBackend::sessionError(QNetworkSession::SessionError error) diff --git a/src/network/access/qnetworkaccessbackend_p.h b/src/network/access/qnetworkaccessbackend_p.h index 08a8a2a..7b7821e 100644 --- a/src/network/access/qnetworkaccessbackend_p.h +++ b/src/network/access/qnetworkaccessbackend_p.h @@ -189,7 +189,7 @@ protected slots: void emitReplyUploadProgress(qint64 bytesSent, qint64 bytesTotal); private slots: - void sessionOpened(); + void sessionStateChanged(QNetworkSession::State state); void sessionError(QNetworkSession::SessionError error); private: -- cgit v0.12