new options for SwissSurfer
This commit is contained in:
@@ -12,6 +12,7 @@
|
|||||||
#include <QtNetwork/QNetworkProxy>
|
#include <QtNetwork/QNetworkProxy>
|
||||||
#include <QtNetwork/QNetworkAccessManager>
|
#include <QtNetwork/QNetworkAccessManager>
|
||||||
#include <QtNetwork/QNetworkReply>
|
#include <QtNetwork/QNetworkReply>
|
||||||
|
#include <QtNetwork/QSslError>
|
||||||
#include <QtCore/QTimer>
|
#include <QtCore/QTimer>
|
||||||
#include <QtCore/QDebug>
|
#include <QtCore/QDebug>
|
||||||
#include <map>
|
#include <map>
|
||||||
@@ -79,7 +80,7 @@ namespace proxy {
|
|||||||
#endif
|
#endif
|
||||||
{
|
{
|
||||||
#ifdef QT_NETWORK_LIB
|
#ifdef QT_NETWORK_LIB
|
||||||
Q_OBJECT;
|
Q_OBJECT
|
||||||
#endif
|
#endif
|
||||||
public:
|
public:
|
||||||
//! Keep your instance as long as possible, because of caching.
|
//! Keep your instance as long as possible, because of caching.
|
||||||
@@ -169,8 +170,19 @@ namespace proxy {
|
|||||||
QNetworkAccessManager* manager(new QNetworkAccessManager);
|
QNetworkAccessManager* manager(new QNetworkAccessManager);
|
||||||
manager->setProxy(prxy);
|
manager->setProxy(prxy);
|
||||||
if (!connect(manager, SIGNAL(finished(QNetworkReply*)),
|
if (!connect(manager, SIGNAL(finished(QNetworkReply*)),
|
||||||
this, SLOT(replyFinished(QNetworkReply*))))
|
SLOT(replyFinished(QNetworkReply*))))
|
||||||
qFatal("connect failed");
|
qFatal("connect failed");
|
||||||
|
connect(manager,
|
||||||
|
SIGNAL(authenticationRequired(QNetworkReply*, QAuthenticator*)),
|
||||||
|
SLOT(authenticationRequired(QNetworkReply*, QAuthenticator*)));
|
||||||
|
connect(manager,
|
||||||
|
SIGNAL(proxyAuthenticationRequired(const QNetworkProxy&,
|
||||||
|
QAuthenticator*)),
|
||||||
|
SLOT(proxyAuthenticationRequired(const QNetworkProxy&,
|
||||||
|
QAuthenticator*)));
|
||||||
|
connect(manager,
|
||||||
|
SIGNAL(sslErrors(QNetworkReply*, const QList<QSslError>&)),
|
||||||
|
SLOT(sslErrors(QNetworkReply*, const QList<QSslError>&)));
|
||||||
_requests.insert
|
_requests.insert
|
||||||
(std::make_pair(manager->head
|
(std::make_pair(manager->head
|
||||||
(QNetworkRequest
|
(QNetworkRequest
|
||||||
@@ -220,13 +232,25 @@ namespace proxy {
|
|||||||
_timeout2.stop();
|
_timeout2.stop();
|
||||||
QNetworkProxy prxy(_requests[reply].second);
|
QNetworkProxy prxy(_requests[reply].second);
|
||||||
QUrl url(reply->url());
|
QUrl url(reply->url());
|
||||||
for (Requests::iterator it(_requests.begin()); it!=_requests.end(); ++it)
|
for (Requests::iterator it(_requests.begin());
|
||||||
|
it!=_requests.end(); ++it)
|
||||||
delete it->second.first;
|
delete it->second.first;
|
||||||
_requests.clear();
|
_requests.clear();
|
||||||
qDebug()<<"SUCCESS - Valid proxy found for url:"
|
qDebug()<<"SUCCESS - Valid proxy found for url:"
|
||||||
<<"url="<<url<<"proxy="<<toString(prxy);
|
<<"url="<<url<<"proxy="<<toString(prxy);
|
||||||
proxyFound(url, prxy);
|
proxyFound(url, prxy);
|
||||||
}
|
}
|
||||||
|
void authenticationRequired(QNetworkReply*, QAuthenticator*) {
|
||||||
|
qDebug()<<"## "<<__PRETTY_FUNCTION__;
|
||||||
|
}
|
||||||
|
void proxyAuthenticationRequired(const QNetworkProxy&, QAuthenticator*) {
|
||||||
|
qDebug()<<"## "<<__PRETTY_FUNCTION__;
|
||||||
|
}
|
||||||
|
void sslErrors(QNetworkReply*, const QList<QSslError>& l) {
|
||||||
|
qDebug()<<"## "<<__PRETTY_FUNCTION__;
|
||||||
|
for (QList<QSslError>::const_iterator it(l.begin()); it!=l.end(); ++it)
|
||||||
|
qDebug()<<" SSL-Error -> "<<it->errorString();
|
||||||
|
}
|
||||||
private:
|
private:
|
||||||
typedef std::map
|
typedef std::map
|
||||||
<QNetworkReply*, std::pair<QNetworkAccessManager*, QNetworkProxy> >
|
<QNetworkReply*, std::pair<QNetworkAccessManager*, QNetworkProxy> >
|
||||||
|
@@ -31,11 +31,18 @@ class Proxy: public QDialog, public Ui::Proxy {
|
|||||||
_url->setText(s.value("default-server", QString()).toString());
|
_url->setText(s.value("default-server", QString()).toString());
|
||||||
_port->setValue(s.value("default-port", 0).toInt());
|
_port->setValue(s.value("default-port", 0).toInt());
|
||||||
connect(&_auto, SIGNAL(proxyFound(const QUrl&, const QNetworkProxy&)),
|
connect(&_auto, SIGNAL(proxyFound(const QUrl&, const QNetworkProxy&)),
|
||||||
SLOT(proxyFound(const QUrl&, const QNetworkProxy&)));
|
SIGNAL(proxyFound(const QUrl&, const QNetworkProxy&)));
|
||||||
|
connect(&_auto, SIGNAL(proxyFound(const QUrl&, const QNetworkProxy&)),
|
||||||
|
SLOT(proxyFoundSlot(const QUrl&, const QNetworkProxy&)));
|
||||||
|
connect(&_auto, SIGNAL(proxyError(QNetworkReply::NetworkError)),
|
||||||
|
SIGNAL(proxyError(QNetworkReply::NetworkError)));
|
||||||
accept();
|
accept();
|
||||||
}
|
}
|
||||||
|
|
||||||
public:
|
void checkUrl(const QString& url) {
|
||||||
|
_testUrl = url;
|
||||||
|
accept();
|
||||||
|
}
|
||||||
|
|
||||||
void acceptValues() {
|
void acceptValues() {
|
||||||
QNetworkProxy::ProxyType type(QNetworkProxy::NoProxy);
|
QNetworkProxy::ProxyType type(QNetworkProxy::NoProxy);
|
||||||
@@ -72,9 +79,14 @@ class Proxy: public QDialog, public Ui::Proxy {
|
|||||||
.arg(QNetworkProxy::applicationProxy().port()));
|
.arg(QNetworkProxy::applicationProxy().port()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Q_SIGNALS:
|
||||||
|
|
||||||
|
void proxyFound(const QUrl&, const QNetworkProxy&);
|
||||||
|
void proxyError(QNetworkReply::NetworkError);
|
||||||
|
|
||||||
public Q_SLOTS:
|
public Q_SLOTS:
|
||||||
|
|
||||||
void proxyFound(const QUrl&, const QNetworkProxy& p) {
|
void proxyFoundSlot(const QUrl&, const QNetworkProxy& p) {
|
||||||
QNetworkProxy::setApplicationProxy(p);
|
QNetworkProxy::setApplicationProxy(p);
|
||||||
_url->setText(p.hostName());
|
_url->setText(p.hostName());
|
||||||
_port->setValue(p.port());
|
_port->setValue(p.port());
|
||||||
|
Reference in New Issue
Block a user