diff --git a/src/libcalamares/network/Manager.cpp b/src/libcalamares/network/Manager.cpp index 6e8a1e93d..9e76d5ff0 100644 --- a/src/libcalamares/network/Manager.cpp +++ b/src/libcalamares/network/Manager.cpp @@ -236,7 +236,7 @@ synchronousRun( QNetworkAccessManager* nam, const QUrl& url, const RequestOption } else if ( reply->error() != QNetworkReply::NoError ) { - return qMakePair( RequestStatus( RequestStatus::Timeout ), nullptr ); + return qMakePair( RequestStatus( RequestStatus::HttpError ), nullptr ); } else { @@ -281,6 +281,30 @@ Manager::asynchronousGet( const QUrl& url, const CalamaresUtils::Network::Reques return asynchronousRun( d->nam(), url, options ); } +QDebug& +operator<<( QDebug& s, const CalamaresUtils::Network::RequestStatus& e ) +{ + s << int( e.status ) << bool( e ); + switch ( e.status ) + { + case RequestStatus::Ok: + break; + case RequestStatus::Timeout: + s << "Timeout"; + break; + case RequestStatus::Failed: + s << "Failed"; + break; + case RequestStatus::HttpError: + s << "HTTP"; + break; + case RequestStatus::Empty: + s << "Empty"; + break; + } + return s; +} + } // namespace Network } // namespace CalamaresUtils diff --git a/src/libcalamares/network/Manager.h b/src/libcalamares/network/Manager.h index f392cdec0..0837bdc13 100644 --- a/src/libcalamares/network/Manager.h +++ b/src/libcalamares/network/Manager.h @@ -22,6 +22,7 @@ #include "DllMacro.h" #include +#include #include #include @@ -78,6 +79,7 @@ struct RequestStatus Ok, Timeout, // Timeout exceeded Failed, // bad Url + HttpError, // some other HTTP error (eg. SSL failed) Empty // for ping(), response is empty }; @@ -90,6 +92,8 @@ struct RequestStatus State status; }; +QDebug& operator<<( QDebug& s, const RequestStatus& e ); + class DLLEXPORT Manager : QObject { Q_OBJECT diff --git a/src/libcalamares/network/Tests.cpp b/src/libcalamares/network/Tests.cpp index dc893a9c9..2350b79e8 100644 --- a/src/libcalamares/network/Tests.cpp +++ b/src/libcalamares/network/Tests.cpp @@ -49,5 +49,6 @@ NetworkTests::testPing() auto& nam = Manager::instance(); auto canPing_www_kde_org = nam.synchronousPing( QUrl( "https://www.kde.org" ), RequestOptions( RequestOptions::FollowRedirect ) ); + cDebug() << "Ping:" << canPing_www_kde_org; QVERIFY( canPing_www_kde_org ); }