diff options
Diffstat (limited to 'src/plugins/bearer')
24 files changed, 26 insertions, 693 deletions
diff --git a/src/plugins/bearer/android/src/qandroidbearerengine.cpp b/src/plugins/bearer/android/src/qandroidbearerengine.cpp index a43ed69570..ad9895e0cf 100644 --- a/src/plugins/bearer/android/src/qandroidbearerengine.cpp +++ b/src/plugins/bearer/android/src/qandroidbearerengine.cpp @@ -38,7 +38,7 @@ ****************************************************************************/ #include "qandroidbearerengine.h" -#include "../../qnetworksession_impl.h" +#include <private/qnetworksession_impl_p.h> #include "wrappers/androidconnectivitymanager.h" #ifndef QT_NO_BEARERMANAGEMENT diff --git a/src/plugins/bearer/android/src/qandroidbearerengine.h b/src/plugins/bearer/android/src/qandroidbearerengine.h index 837b02232d..867d04d886 100644 --- a/src/plugins/bearer/android/src/qandroidbearerengine.h +++ b/src/plugins/bearer/android/src/qandroidbearerengine.h @@ -40,7 +40,7 @@ #ifndef QANDROIDBEARERENGINE_H #define QANDROIDBEARERENGINE_H -#include "../../qbearerengine_impl.h" +#include <private/qbearerengine_impl_p.h> #include <QAbstractEventDispatcher> #include <QAbstractNativeEventFilter> diff --git a/src/plugins/bearer/android/src/src.pro b/src/plugins/bearer/android/src/src.pro index eb0738386c..fcd599dffe 100644 --- a/src/plugins/bearer/android/src/src.pro +++ b/src/plugins/bearer/android/src/src.pro @@ -2,13 +2,10 @@ TARGET = qandroidbearer QT = core-private network-private -HEADERS += qandroidbearerengine.h \ - ../../qnetworksession_impl.h \ - ../../qbearerengine_impl.h +HEADERS += qandroidbearerengine.h SOURCES += main.cpp \ - qandroidbearerengine.cpp \ - ../../qnetworksession_impl.cpp + qandroidbearerengine.cpp include(wrappers/wrappers.pri) diff --git a/src/plugins/bearer/connman/connman.pro b/src/plugins/bearer/connman/connman.pro index 065ed11dad..d6577e9d7f 100644 --- a/src/plugins/bearer/connman/connman.pro +++ b/src/plugins/bearer/connman/connman.pro @@ -4,15 +4,12 @@ QT = core network-private dbus HEADERS += qconnmanservice_linux_p.h \ ../linux_common/qofonoservice_linux_p.h \ - qconnmanengine.h \ - ../qnetworksession_impl.h \ - ../qbearerengine_impl.h + qconnmanengine.h SOURCES += main.cpp \ qconnmanservice_linux.cpp \ ../linux_common/qofonoservice_linux.cpp \ - qconnmanengine.cpp \ - ../qnetworksession_impl.cpp + qconnmanengine.cpp OTHER_FILES += connman.json diff --git a/src/plugins/bearer/connman/qconnmanengine.cpp b/src/plugins/bearer/connman/qconnmanengine.cpp index 8b2076bd18..a673834825 100644 --- a/src/plugins/bearer/connman/qconnmanengine.cpp +++ b/src/plugins/bearer/connman/qconnmanengine.cpp @@ -39,7 +39,7 @@ #include "qconnmanengine.h" #include "qconnmanservice_linux_p.h" -#include "../qnetworksession_impl.h" +#include <private/qnetworksession_impl_p.h> #include <QtNetwork/private/qnetworkconfiguration_p.h> diff --git a/src/plugins/bearer/connman/qconnmanengine.h b/src/plugins/bearer/connman/qconnmanengine.h index ef80d38fa2..eb79dbec1b 100644 --- a/src/plugins/bearer/connman/qconnmanengine.h +++ b/src/plugins/bearer/connman/qconnmanengine.h @@ -51,7 +51,7 @@ // We mean it. // -#include "../qbearerengine_impl.h" +#include <private/qbearerengine_impl_p.h> #include "qconnmanservice_linux_p.h" #include "../linux_common/qofonoservice_linux_p.h" diff --git a/src/plugins/bearer/corewlan/corewlan.pro b/src/plugins/bearer/corewlan/corewlan.pro index 1dc09ebdd6..4f08eaba71 100644 --- a/src/plugins/bearer/corewlan/corewlan.pro +++ b/src/plugins/bearer/corewlan/corewlan.pro @@ -7,12 +7,9 @@ qtConfig(corewlan) { LIBS += -framework CoreWLAN -framework Security } -HEADERS += qcorewlanengine.h \ - ../qnetworksession_impl.h \ - ../qbearerengine_impl.h +HEADERS += qcorewlanengine.h -SOURCES += main.cpp \ - ../qnetworksession_impl.cpp +SOURCES += main.cpp OBJECTIVE_SOURCES += qcorewlanengine.mm diff --git a/src/plugins/bearer/corewlan/qcorewlanengine.h b/src/plugins/bearer/corewlan/qcorewlanengine.h index 6dddee66a4..8775474c09 100644 --- a/src/plugins/bearer/corewlan/qcorewlanengine.h +++ b/src/plugins/bearer/corewlan/qcorewlanengine.h @@ -40,7 +40,7 @@ #ifndef QCOREWLANENGINE_H #define QCOREWLANENGINE_H -#include "../qbearerengine_impl.h" +#include <private/qbearerengine_impl_p.h> #include <QMap> #include <QTimer> diff --git a/src/plugins/bearer/corewlan/qcorewlanengine.mm b/src/plugins/bearer/corewlan/qcorewlanengine.mm index 4644b5af9f..1179899557 100644 --- a/src/plugins/bearer/corewlan/qcorewlanengine.mm +++ b/src/plugins/bearer/corewlan/qcorewlanengine.mm @@ -38,7 +38,7 @@ ****************************************************************************/ #include "qcorewlanengine.h" -#include "../qnetworksession_impl.h" +#include <private/qnetworksession_impl_p.h> #include <QtNetwork/private/qnetworkconfiguration_p.h> diff --git a/src/plugins/bearer/generic/generic.pro b/src/plugins/bearer/generic/generic.pro index f30bdc4951..14b858b301 100644 --- a/src/plugins/bearer/generic/generic.pro +++ b/src/plugins/bearer/generic/generic.pro @@ -3,11 +3,8 @@ TARGET = qgenericbearer QT = core-private network-private HEADERS += qgenericengine.h \ - ../qnetworksession_impl.h \ - ../qbearerengine_impl.h \ ../platformdefs_win.h SOURCES += qgenericengine.cpp \ - ../qnetworksession_impl.cpp \ main.cpp OTHER_FILES += generic.json diff --git a/src/plugins/bearer/generic/qgenericengine.cpp b/src/plugins/bearer/generic/qgenericengine.cpp index b1f28849a7..a5fba15789 100644 --- a/src/plugins/bearer/generic/qgenericengine.cpp +++ b/src/plugins/bearer/generic/qgenericengine.cpp @@ -41,7 +41,7 @@ #define WIN32_LEAN_AND_MEAN 1 #include "qgenericengine.h" -#include "../qnetworksession_impl.h" +#include <private/qnetworksession_impl_p.h> #include <QtNetwork/private/qnetworkconfiguration_p.h> diff --git a/src/plugins/bearer/generic/qgenericengine.h b/src/plugins/bearer/generic/qgenericengine.h index 79c71ca7a3..6b8fb4cd0f 100644 --- a/src/plugins/bearer/generic/qgenericengine.h +++ b/src/plugins/bearer/generic/qgenericengine.h @@ -40,7 +40,7 @@ #ifndef QGENERICENGINE_H #define QGENERICENGINE_H -#include "../qbearerengine_impl.h" +#include <private/qbearerengine_impl_p.h> #include <QMap> #include <QTimer> diff --git a/src/plugins/bearer/nativewifi/nativewifi.pro b/src/plugins/bearer/nativewifi/nativewifi.pro index da7f2da353..41bde99341 100644 --- a/src/plugins/bearer/nativewifi/nativewifi.pro +++ b/src/plugins/bearer/nativewifi/nativewifi.pro @@ -3,13 +3,10 @@ TARGET = qnativewifibearer QT = core-private network-private HEADERS += qnativewifiengine.h \ - platformdefs.h \ - ../qnetworksession_impl.h \ - ../qbearerengine_impl.h + platformdefs.h SOURCES += main.cpp \ - qnativewifiengine.cpp \ - ../qnetworksession_impl.cpp + qnativewifiengine.cpp OTHER_FILES += nativewifi.json diff --git a/src/plugins/bearer/nativewifi/qnativewifiengine.cpp b/src/plugins/bearer/nativewifi/qnativewifiengine.cpp index 777b4eea59..ca8700e63b 100644 --- a/src/plugins/bearer/nativewifi/qnativewifiengine.cpp +++ b/src/plugins/bearer/nativewifi/qnativewifiengine.cpp @@ -39,7 +39,7 @@ #include "qnativewifiengine.h" #include "platformdefs.h" -#include "../qnetworksession_impl.h" +#include <private/qnetworksession_impl_p.h> #include <QtNetwork/private/qnetworkconfiguration_p.h> diff --git a/src/plugins/bearer/nativewifi/qnativewifiengine.h b/src/plugins/bearer/nativewifi/qnativewifiengine.h index ab8d949c9a..24e97bf6df 100644 --- a/src/plugins/bearer/nativewifi/qnativewifiengine.h +++ b/src/plugins/bearer/nativewifi/qnativewifiengine.h @@ -51,7 +51,7 @@ // We mean it. // -#include "../qbearerengine_impl.h" +#include <private/qbearerengine_impl_p.h> #include <QtCore/qtimer.h> diff --git a/src/plugins/bearer/networkmanager/networkmanager.pro b/src/plugins/bearer/networkmanager/networkmanager.pro index e71c93f66f..3fbad07ef5 100644 --- a/src/plugins/bearer/networkmanager/networkmanager.pro +++ b/src/plugins/bearer/networkmanager/networkmanager.pro @@ -4,15 +4,12 @@ QT = core network-private dbus HEADERS += qnetworkmanagerservice.h \ qnetworkmanagerengine.h \ - ../linux_common/qofonoservice_linux_p.h \ - ../qnetworksession_impl.h \ - ../qbearerengine_impl.h + ../linux_common/qofonoservice_linux_p.h SOURCES += main.cpp \ qnetworkmanagerservice.cpp \ qnetworkmanagerengine.cpp \ - ../linux_common/qofonoservice_linux.cpp \ - ../qnetworksession_impl.cpp + ../linux_common/qofonoservice_linux.cpp OTHER_FILES += networkmanager.json diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp index e74b1cf744..d686bc4e51 100644 --- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp +++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.cpp @@ -39,7 +39,7 @@ #include "qnetworkmanagerengine.h" #include "qnetworkmanagerservice.h" -#include "../qnetworksession_impl.h" +#include <private/qnetworksession_impl_p.h> #include <QtNetwork/private/qnetworkconfiguration_p.h> diff --git a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h index a95c68abdf..c6c5280eca 100644 --- a/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h +++ b/src/plugins/bearer/networkmanager/qnetworkmanagerengine.h @@ -51,7 +51,7 @@ // We mean it. // -#include "../qbearerengine_impl.h" +#include <private/qbearerengine_impl_p.h> #include "qnetworkmanagerservice.h" diff --git a/src/plugins/bearer/nla/nla.pro b/src/plugins/bearer/nla/nla.pro index 76f3279d25..2582dc7cd4 100644 --- a/src/plugins/bearer/nla/nla.pro +++ b/src/plugins/bearer/nla/nla.pro @@ -5,13 +5,10 @@ QT = core core-private network network-private QMAKE_USE_PRIVATE += ws2_32 HEADERS += qnlaengine.h \ - ../platformdefs_win.h \ - ../qnetworksession_impl.h \ - ../qbearerengine_impl.h + ../platformdefs_win.h SOURCES += main.cpp \ - qnlaengine.cpp \ - ../qnetworksession_impl.cpp + qnlaengine.cpp OTHER_FILES += nla.json diff --git a/src/plugins/bearer/nla/qnlaengine.cpp b/src/plugins/bearer/nla/qnlaengine.cpp index e1e60389f1..ab3c0d0e3a 100644 --- a/src/plugins/bearer/nla/qnlaengine.cpp +++ b/src/plugins/bearer/nla/qnlaengine.cpp @@ -38,7 +38,7 @@ ****************************************************************************/ #include "qnlaengine.h" -#include "../qnetworksession_impl.h" +#include <private/qnetworksession_impl_p.h> #include <QtNetwork/private/qnetworkconfiguration_p.h> diff --git a/src/plugins/bearer/nla/qnlaengine.h b/src/plugins/bearer/nla/qnlaengine.h index ab014ff776..90efa50201 100644 --- a/src/plugins/bearer/nla/qnlaengine.h +++ b/src/plugins/bearer/nla/qnlaengine.h @@ -51,7 +51,7 @@ // We mean it. // -#include "../qbearerengine_impl.h" +#include <private/qbearerengine_impl_p.h> #include <QtNetwork/private/qnativesocketengine_p.h> diff --git a/src/plugins/bearer/qbearerengine_impl.h b/src/plugins/bearer/qbearerengine_impl.h deleted file mode 100644 index 5c003aaaf6..0000000000 --- a/src/plugins/bearer/qbearerengine_impl.h +++ /dev/null @@ -1,81 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the plugins of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QBEARERENGINE_IMPL_H -#define QBEARERENGINE_IMPL_H - -#include <QtNetwork/private/qbearerengine_p.h> - -QT_BEGIN_NAMESPACE - -class QBearerEngineImpl : public QBearerEngine -{ - Q_OBJECT - -public: - enum ConnectionError { - InterfaceLookupError = 0, - ConnectError, - OperationNotSupported, - DisconnectionError, - }; - - QBearerEngineImpl(QObject *parent = nullptr) : QBearerEngine(parent) {} - ~QBearerEngineImpl() {} - - virtual void connectToId(const QString &id) = 0; - virtual void disconnectFromId(const QString &id) = 0; - - virtual QString getInterfaceFromId(const QString &id) = 0; - - virtual QNetworkSession::State sessionStateForId(const QString &id) = 0; - - virtual quint64 bytesWritten(const QString &) { return Q_UINT64_C(0); } - virtual quint64 bytesReceived(const QString &) { return Q_UINT64_C(0); } - virtual quint64 startTime(const QString &) { return Q_UINT64_C(0); } - -Q_SIGNALS: - void connectionError(const QString &id, QBearerEngineImpl::ConnectionError error); -}; - -QT_END_NAMESPACE - -Q_DECLARE_METATYPE(QBearerEngineImpl::ConnectionError) - -#endif // QBEARERENGINE_IMPL_H diff --git a/src/plugins/bearer/qnetworksession_impl.cpp b/src/plugins/bearer/qnetworksession_impl.cpp deleted file mode 100644 index c6b678ab20..0000000000 --- a/src/plugins/bearer/qnetworksession_impl.cpp +++ /dev/null @@ -1,435 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the plugins of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -// see comment in ../platformdefs_win.h. -#define WIN32_LEAN_AND_MEAN 1 - -#include "qnetworksession_impl.h" -#include "qbearerengine_impl.h" - -#include <QtNetwork/qnetworksession.h> -#include <QtNetwork/private/qnetworkconfigmanager_p.h> - -#include <QtCore/qdatetime.h> -#include <QtCore/qdebug.h> -#include <QtCore/qmutex.h> -#include <QtCore/qstringlist.h> - -QT_BEGIN_NAMESPACE - -static QBearerEngineImpl *getEngineFromId(const QString &id) -{ - QNetworkConfigurationManagerPrivate *priv = qNetworkConfigurationManagerPrivate(); - if (priv) { - const auto engines = priv->engines(); - for (QBearerEngine *engine : engines) { - QBearerEngineImpl *engineImpl = qobject_cast<QBearerEngineImpl *>(engine); - if (engineImpl && engineImpl->hasIdentifier(id)) - return engineImpl; - } - } - - return 0; -} - -class QNetworkSessionManagerPrivate : public QObject -{ - Q_OBJECT - -public: - QNetworkSessionManagerPrivate(QObject *parent = 0) : QObject(parent) {} - ~QNetworkSessionManagerPrivate() {} - - inline void forceSessionClose(const QNetworkConfiguration &config) - { emit forcedSessionClose(config); } - -Q_SIGNALS: - void forcedSessionClose(const QNetworkConfiguration &config); -}; - -Q_GLOBAL_STATIC(QNetworkSessionManagerPrivate, sessionManager); - -void QNetworkSessionPrivateImpl::syncStateWithInterface() -{ - connect(sessionManager(), SIGNAL(forcedSessionClose(QNetworkConfiguration)), - this, SLOT(forcedSessionClose(QNetworkConfiguration))); - - opened = false; - isOpen = false; - state = QNetworkSession::Invalid; - lastError = QNetworkSession::UnknownSessionError; - - qRegisterMetaType<QBearerEngineImpl::ConnectionError>(); - - switch (publicConfig.type()) { - case QNetworkConfiguration::InternetAccessPoint: - activeConfig = publicConfig; - engine = getEngineFromId(activeConfig.identifier()); - if (engine) { - qRegisterMetaType<QNetworkConfigurationPrivatePointer>(); - connect(engine, SIGNAL(configurationChanged(QNetworkConfigurationPrivatePointer)), - this, SLOT(configurationChanged(QNetworkConfigurationPrivatePointer)), - Qt::QueuedConnection); - connect(engine, SIGNAL(connectionError(QString,QBearerEngineImpl::ConnectionError)), - this, SLOT(connectionError(QString,QBearerEngineImpl::ConnectionError)), - Qt::QueuedConnection); - } - break; - case QNetworkConfiguration::ServiceNetwork: - serviceConfig = publicConfig; - // Defer setting engine and signals until open(). - Q_FALLTHROUGH(); - case QNetworkConfiguration::UserChoice: - // Defer setting serviceConfig and activeConfig until open(). - Q_FALLTHROUGH(); - default: - engine = 0; - } - - networkConfigurationsChanged(); -} - -void QNetworkSessionPrivateImpl::open() -{ - if (serviceConfig.isValid()) { - lastError = QNetworkSession::OperationNotSupportedError; - emit QNetworkSessionPrivate::error(lastError); - } else if (!isOpen) { - if ((activeConfig.state() & QNetworkConfiguration::Discovered) != QNetworkConfiguration::Discovered) { - lastError = QNetworkSession::InvalidConfigurationError; - state = QNetworkSession::Invalid; - emit stateChanged(state); - emit QNetworkSessionPrivate::error(lastError); - return; - } - opened = true; - - if ((activeConfig.state() & QNetworkConfiguration::Active) != QNetworkConfiguration::Active && - (activeConfig.state() & QNetworkConfiguration::Discovered) == QNetworkConfiguration::Discovered) { - state = QNetworkSession::Connecting; - emit stateChanged(state); - - engine->connectToId(activeConfig.identifier()); - } - - isOpen = (activeConfig.state() & QNetworkConfiguration::Active) == QNetworkConfiguration::Active; - if (isOpen) - emit quitPendingWaitsForOpened(); - } -} - -void QNetworkSessionPrivateImpl::close() -{ - if (serviceConfig.isValid()) { - lastError = QNetworkSession::OperationNotSupportedError; - emit QNetworkSessionPrivate::error(lastError); - } else if (isOpen) { - opened = false; - isOpen = false; - emit closed(); - } -} - -void QNetworkSessionPrivateImpl::stop() -{ - if (serviceConfig.isValid()) { - lastError = QNetworkSession::OperationNotSupportedError; - emit QNetworkSessionPrivate::error(lastError); - } else { - if ((activeConfig.state() & QNetworkConfiguration::Active) == QNetworkConfiguration::Active) { - state = QNetworkSession::Closing; - emit stateChanged(state); - - engine->disconnectFromId(activeConfig.identifier()); - - sessionManager()->forceSessionClose(activeConfig); - } - - opened = false; - isOpen = false; - emit closed(); - } -} - -void QNetworkSessionPrivateImpl::migrate() -{ -} - -void QNetworkSessionPrivateImpl::accept() -{ -} - -void QNetworkSessionPrivateImpl::ignore() -{ -} - -void QNetworkSessionPrivateImpl::reject() -{ -} - -#ifndef QT_NO_NETWORKINTERFACE -QNetworkInterface QNetworkSessionPrivateImpl::currentInterface() const -{ - if (!engine || state != QNetworkSession::Connected || !publicConfig.isValid()) - return QNetworkInterface(); - - QString iface = engine->getInterfaceFromId(activeConfig.identifier()); - if (iface.isEmpty()) - return QNetworkInterface(); - return QNetworkInterface::interfaceFromName(iface); -} -#endif - -QVariant QNetworkSessionPrivateImpl::sessionProperty(const QString &key) const -{ - if (key == QLatin1String("AutoCloseSessionTimeout")) { - if (engine && engine->requiresPolling() && - !(engine->capabilities() & QNetworkConfigurationManager::CanStartAndStopInterfaces)) { - return sessionTimeout >= 0 ? sessionTimeout * 10000 : -1; - } - } - - return QVariant(); -} - -void QNetworkSessionPrivateImpl::setSessionProperty(const QString &key, const QVariant &value) -{ - if (key == QLatin1String("AutoCloseSessionTimeout")) { - if (engine && engine->requiresPolling() && - !(engine->capabilities() & QNetworkConfigurationManager::CanStartAndStopInterfaces)) { - int timeout = value.toInt(); - if (timeout >= 0) { - connect(engine, SIGNAL(updateCompleted()), - this, SLOT(decrementTimeout()), Qt::UniqueConnection); - sessionTimeout = timeout / 10000; // convert to poll intervals - } else { - disconnect(engine, SIGNAL(updateCompleted()), this, SLOT(decrementTimeout())); - sessionTimeout = -1; - } - } - } -} - -QString QNetworkSessionPrivateImpl::errorString() const -{ - switch (lastError) { - case QNetworkSession::UnknownSessionError: - return tr("Unknown session error."); - case QNetworkSession::SessionAbortedError: - return tr("The session was aborted by the user or system."); - case QNetworkSession::OperationNotSupportedError: - return tr("The requested operation is not supported by the system."); - case QNetworkSession::InvalidConfigurationError: - return tr("The specified configuration cannot be used."); - case QNetworkSession::RoamingError: - return tr("Roaming was aborted or is not possible."); - default: - break; - } - - return QString(); -} - -QNetworkSession::SessionError QNetworkSessionPrivateImpl::error() const -{ - return lastError; -} - -quint64 QNetworkSessionPrivateImpl::bytesWritten() const -{ - if (engine && state == QNetworkSession::Connected) - return engine->bytesWritten(activeConfig.identifier()); - return Q_UINT64_C(0); -} - -quint64 QNetworkSessionPrivateImpl::bytesReceived() const -{ - if (engine && state == QNetworkSession::Connected) - return engine->bytesReceived(activeConfig.identifier()); - return Q_UINT64_C(0); -} - -quint64 QNetworkSessionPrivateImpl::activeTime() const -{ - if (state == QNetworkSession::Connected && startTime != Q_UINT64_C(0)) - return QDateTime::currentSecsSinceEpoch() - startTime; - return Q_UINT64_C(0); -} - -QNetworkSession::UsagePolicies QNetworkSessionPrivateImpl::usagePolicies() const -{ - return currentPolicies; -} - -void QNetworkSessionPrivateImpl::setUsagePolicies(QNetworkSession::UsagePolicies newPolicies) -{ - if (newPolicies != currentPolicies) { - currentPolicies = newPolicies; - emit usagePoliciesChanged(currentPolicies); - } -} - -void QNetworkSessionPrivateImpl::updateStateFromServiceNetwork() -{ - QNetworkSession::State oldState = state; - - const auto configs = serviceConfig.children(); - for (const QNetworkConfiguration &config : configs) { - if ((config.state() & QNetworkConfiguration::Active) != QNetworkConfiguration::Active) - continue; - - if (activeConfig != config) { - if (engine) { - disconnect(engine, SIGNAL(connectionError(QString,QBearerEngineImpl::ConnectionError)), - this, SLOT(connectionError(QString,QBearerEngineImpl::ConnectionError))); - } - - activeConfig = config; - engine = getEngineFromId(activeConfig.identifier()); - - if (engine) { - connect(engine, SIGNAL(connectionError(QString,QBearerEngineImpl::ConnectionError)), - this, SLOT(connectionError(QString,QBearerEngineImpl::ConnectionError)), - Qt::QueuedConnection); - } - emit newConfigurationActivated(); - } - - state = QNetworkSession::Connected; - if (state != oldState) - emit stateChanged(state); - - return; - } - - if (serviceConfig.children().isEmpty()) - state = QNetworkSession::NotAvailable; - else - state = QNetworkSession::Disconnected; - - if (state != oldState) - emit stateChanged(state); -} - -void QNetworkSessionPrivateImpl::updateStateFromActiveConfig() -{ - if (!engine) - return; - - QNetworkSession::State oldState = state; - state = engine->sessionStateForId(activeConfig.identifier()); - - bool oldActive = isOpen; - isOpen = (state == QNetworkSession::Connected) ? opened : false; - - if (!oldActive && isOpen) - emit quitPendingWaitsForOpened(); - if (oldActive && !isOpen) - emit closed(); - - if (oldState != state) - emit stateChanged(state); -} - -void QNetworkSessionPrivateImpl::networkConfigurationsChanged() -{ - if (serviceConfig.isValid()) - updateStateFromServiceNetwork(); - else - updateStateFromActiveConfig(); - - if (engine) - startTime = engine->startTime(activeConfig.identifier()); -} - -void QNetworkSessionPrivateImpl::configurationChanged(QNetworkConfigurationPrivatePointer config) -{ - if (serviceConfig.isValid() && - (config->id == serviceConfig.identifier() || config->id == activeConfig.identifier())) { - updateStateFromServiceNetwork(); - } else if (config->id == activeConfig.identifier()) { - updateStateFromActiveConfig(); - } -} - -void QNetworkSessionPrivateImpl::forcedSessionClose(const QNetworkConfiguration &config) -{ - if (activeConfig == config) { - opened = false; - isOpen = false; - - emit closed(); - - lastError = QNetworkSession::SessionAbortedError; - emit QNetworkSessionPrivate::error(lastError); - } -} - -void QNetworkSessionPrivateImpl::connectionError(const QString &id, QBearerEngineImpl::ConnectionError error) -{ - if (activeConfig.identifier() == id) { - networkConfigurationsChanged(); - switch (error) { - case QBearerEngineImpl::OperationNotSupported: - lastError = QNetworkSession::OperationNotSupportedError; - opened = false; - break; - case QBearerEngineImpl::InterfaceLookupError: - case QBearerEngineImpl::ConnectError: - case QBearerEngineImpl::DisconnectionError: - default: - lastError = QNetworkSession::UnknownSessionError; - } - - emit QNetworkSessionPrivate::error(lastError); - } -} - -void QNetworkSessionPrivateImpl::decrementTimeout() -{ - if (--sessionTimeout <= 0) { - disconnect(engine, SIGNAL(updateCompleted()), this, SLOT(decrementTimeout())); - sessionTimeout = -1; - close(); - } -} - -QT_END_NAMESPACE - -#include "qnetworksession_impl.moc" diff --git a/src/plugins/bearer/qnetworksession_impl.h b/src/plugins/bearer/qnetworksession_impl.h deleted file mode 100644 index 0f8e014900..0000000000 --- a/src/plugins/bearer/qnetworksession_impl.h +++ /dev/null @@ -1,130 +0,0 @@ -/**************************************************************************** -** -** Copyright (C) 2016 The Qt Company Ltd. -** Contact: https://www.qt.io/licensing/ -** -** This file is part of the plugins of the Qt Toolkit. -** -** $QT_BEGIN_LICENSE:LGPL$ -** Commercial License Usage -** Licensees holding valid commercial Qt licenses may use this file in -** accordance with the commercial license agreement provided with the -** Software or, alternatively, in accordance with the terms contained in -** a written agreement between you and The Qt Company. For licensing terms -** and conditions see https://www.qt.io/terms-conditions. For further -** information use the contact form at https://www.qt.io/contact-us. -** -** GNU Lesser General Public License Usage -** Alternatively, this file may be used under the terms of the GNU Lesser -** General Public License version 3 as published by the Free Software -** Foundation and appearing in the file LICENSE.LGPL3 included in the -** packaging of this file. Please review the following information to -** ensure the GNU Lesser General Public License version 3 requirements -** will be met: https://www.gnu.org/licenses/lgpl-3.0.html. -** -** GNU General Public License Usage -** Alternatively, this file may be used under the terms of the GNU -** General Public License version 2.0 or (at your option) the GNU General -** Public license version 3 or any later version approved by the KDE Free -** Qt Foundation. The licenses are as published by the Free Software -** Foundation and appearing in the file LICENSE.GPL2 and LICENSE.GPL3 -** included in the packaging of this file. Please review the following -** information to ensure the GNU General Public License requirements will -** be met: https://www.gnu.org/licenses/gpl-2.0.html and -** https://www.gnu.org/licenses/gpl-3.0.html. -** -** $QT_END_LICENSE$ -** -****************************************************************************/ - -#ifndef QNETWORKSESSION_IMPL_H -#define QNETWORKSESSION_IMPL_H - -// -// W A R N I N G -// ------------- -// -// This file is not part of the Qt API. It exists purely as an -// implementation detail. This header file may change from version to -// version without notice, or even be removed. -// -// We mean it. -// - -#include "qbearerengine_impl.h" - -#include <QtNetwork/private/qnetworkconfigmanager_p.h> -#include <QtNetwork/private/qnetworksession_p.h> - -QT_BEGIN_NAMESPACE - -class QBearerEngineImpl; - -class QNetworkSessionPrivateImpl : public QNetworkSessionPrivate -{ - Q_OBJECT - -public: - QNetworkSessionPrivateImpl() - : engine(nullptr), startTime(0), lastError(QNetworkSession::UnknownSessionError), sessionTimeout(-1), currentPolicies(QNetworkSession::NoPolicy), opened(false) - {} - ~QNetworkSessionPrivateImpl() - {} - - //called by QNetworkSession constructor and ensures - //that the state is immediately updated (w/o actually opening - //a session). Also this function should take care of - //notification hooks to discover future state changes. - void syncStateWithInterface() override; - -#ifndef QT_NO_NETWORKINTERFACE - QNetworkInterface currentInterface() const override; -#endif - QVariant sessionProperty(const QString& key) const override; - void setSessionProperty(const QString& key, const QVariant& value) override; - - void open() override; - void close() override; - void stop() override; - void migrate() override; - void accept() override; - void ignore() override; - void reject() override; - - QString errorString() const override; //must return translated string - QNetworkSession::SessionError error() const override; - - quint64 bytesWritten() const override; - quint64 bytesReceived() const override; - quint64 activeTime() const override; - - QNetworkSession::UsagePolicies usagePolicies() const override; - void setUsagePolicies(QNetworkSession::UsagePolicies) override; - -private Q_SLOTS: - void networkConfigurationsChanged(); - void configurationChanged(QNetworkConfigurationPrivatePointer config); - void forcedSessionClose(const QNetworkConfiguration &config); - void connectionError(const QString &id, QBearerEngineImpl::ConnectionError error); - void decrementTimeout(); - -private: - void updateStateFromServiceNetwork(); - void updateStateFromActiveConfig(); - -private: - QBearerEngineImpl *engine; - - quint64 startTime; - - QNetworkSession::SessionError lastError; - - int sessionTimeout; - QNetworkSession::UsagePolicies currentPolicies; - - bool opened; -}; - -QT_END_NAMESPACE - -#endif // QNETWORKSESSION_IMPL_H |