OSDN Git Service

use virtual methods for SSL configuration of QNetworkReply
authorIvailo Monev <xakepa10@gmail.com>
Wed, 20 Jan 2021 10:18:43 +0000 (12:18 +0200)
committerIvailo Monev <xakepa10@gmail.com>
Wed, 20 Jan 2021 10:18:43 +0000 (12:18 +0200)
Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
src/network/access/qnetworkreply.cpp
src/network/access/qnetworkreply.h
src/network/access/qnetworkreplyimpl.cpp
src/network/access/qnetworkreplyimpl_p.h

index 6d81086..7ccaddb 100644 (file)
@@ -560,15 +560,7 @@ QVariant QNetworkReply::attribute(QNetworkRequest::Attribute code) const
 */
 QSslConfiguration QNetworkReply::sslConfiguration() const
 {
-    QSslConfiguration config;
-
-    // determine if we support this extension
-    int id = metaObject()->indexOfMethod("sslConfigurationImplementation()");
-    if (id != -1) {
-        void *arr[] = { &config, 0 };
-        const_cast<QNetworkReply *>(this)->qt_metacall(QMetaObject::InvokeMetaMethod, id, arr);
-    }
-    return config;
+    return QSslConfiguration();
 }
 
 /*!
@@ -577,15 +569,7 @@ QSslConfiguration QNetworkReply::sslConfiguration() const
 */
 void QNetworkReply::setSslConfiguration(const QSslConfiguration &config)
 {
-    if (config.isNull())
-        return;
-
-    int id = metaObject()->indexOfMethod("setSslConfigurationImplementation(QSslConfiguration)");
-    if (id != -1) {
-        QSslConfiguration copy(config);
-        void *arr[] = { 0, &copy };
-        qt_metacall(QMetaObject::InvokeMetaMethod, id, arr);
-    }
+    Q_UNUSED(config);
 }
 
 /*!
@@ -611,14 +595,7 @@ void QNetworkReply::setSslConfiguration(const QSslConfiguration &config)
 */
 void QNetworkReply::ignoreSslErrors(const QList<QSslError> &errors)
 {
-    // do this cryptic trick, because we could not add a virtual method to this class later on
-    // since that breaks binary compatibility
-    int id = metaObject()->indexOfMethod("ignoreSslErrorsImplementation(QList<QSslError>)");
-    if (id != -1) {
-        QList<QSslError> copy(errors);
-        void *arr[] = { 0, &copy };
-        qt_metacall(QMetaObject::InvokeMetaMethod, id, arr);
-    }
+    Q_UNUSED(errors);
 }
 
 /*!
index 42b234a..2df4492 100644 (file)
@@ -124,9 +124,9 @@ public:
     // attributes
     QVariant attribute(QNetworkRequest::Attribute code) const;
 
-    QSslConfiguration sslConfiguration() const;
-    void setSslConfiguration(const QSslConfiguration &configuration);
-    void ignoreSslErrors(const QList<QSslError> &errors);
+    virtual QSslConfiguration sslConfiguration() const;
+    virtual void setSslConfiguration(const QSslConfiguration &configuration);
+    virtual void ignoreSslErrors(const QList<QSslError> &errors);
 
 public Q_SLOTS:
     virtual void ignoreSslErrors();
index ddbe045..e2e7a62 100644 (file)
@@ -945,7 +945,7 @@ void QNetworkReplyImpl::setReadBufferSize(qint64 size)
     }
 }
 
-QSslConfiguration QNetworkReplyImpl::sslConfigurationImplementation() const
+QSslConfiguration QNetworkReplyImpl::sslConfiguration() const
 {
     Q_D(const QNetworkReplyImpl);
     QSslConfiguration config;
@@ -954,7 +954,7 @@ QSslConfiguration QNetworkReplyImpl::sslConfigurationImplementation() const
     return config;
 }
 
-void QNetworkReplyImpl::setSslConfigurationImplementation(const QSslConfiguration &config)
+void QNetworkReplyImpl::setSslConfiguration(const QSslConfiguration &config)
 {
     Q_D(QNetworkReplyImpl);
     if (d->backend && !config.isNull())
@@ -968,7 +968,7 @@ void QNetworkReplyImpl::ignoreSslErrors()
         d->backend->ignoreSslErrors();
 }
 
-void QNetworkReplyImpl::ignoreSslErrorsImplementation(const QList<QSslError> &errors)
+void QNetworkReplyImpl::ignoreSslErrors(const QList<QSslError> &errors)
 {
     Q_D(QNetworkReplyImpl);
     if (d->backend)
index 8fefb5d..60004fd 100644 (file)
@@ -79,10 +79,10 @@ public:
     virtual qint64 readData(char *data, qint64 maxlen);
     virtual bool event(QEvent *);
 
-    Q_INVOKABLE QSslConfiguration sslConfigurationImplementation() const;
-    Q_INVOKABLE void setSslConfigurationImplementation(const QSslConfiguration &configuration);
+    virtual QSslConfiguration sslConfiguration() const;
+    virtual void setSslConfiguration(const QSslConfiguration &configuration);
     virtual void ignoreSslErrors();
-    Q_INVOKABLE virtual void ignoreSslErrorsImplementation(const QList<QSslError> &errors);
+    virtual void ignoreSslErrors(const QList<QSslError> &errors);
 
     Q_DECLARE_PRIVATE(QNetworkReplyImpl)
     Q_PRIVATE_SLOT(d_func(), void _q_startOperation())