QAbstractSocketEngine *QHttpSocketEngineHandler::createSocketEngine(const QHostAddress &address, QAbstractSocket::SocketType socketType, QObject *parent) { if (socketType != QAbstractSocket::TcpSocket) return 0; if (address == QHostAddress::LocalHost || address == QHostAddress::LocalHostIPv6) return 0; // find proxy info QAbstractSocket *abstractSocket = qobject_cast<QAbstractSocket *>(parent); if (!abstractSocket) return 0; QNetworkProxy proxy = abstractSocket->proxy(); if (proxy.type() == QNetworkProxy::DefaultProxy) proxy = QNetworkProxy::applicationProxy(); if (proxy.type() != QNetworkProxy::HttpProxy) return 0; QHttpSocketEngine *engine = new QHttpSocketEngine(parent); engine->setProxy(proxy); return engine; }
QAbstractSocketEngine *QHttpSocketEngineHandler::createSocketEngine(QAbstractSocket::SocketType socketType, const QNetworkProxy &proxy, QObject *parent) { if (socketType != QAbstractSocket::TcpSocket) return 0; // proxy type must have been resolved by now if (proxy.type() != QNetworkProxy::HttpProxy) return 0; // we only accept active sockets if (!qobject_cast<QAbstractSocket *>(parent)) return 0; QHttpSocketEngine *engine = new QHttpSocketEngine(parent); engine->setProxy(proxy); return engine; }