mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
Give Subsurface a distinct User Agent string
When accessing websites (divelogs.de, subsurface website) we shouldn't pretend to be Mozilla 5. Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
parent
ebdeddb9b9
commit
526ba82b53
5 changed files with 34 additions and 14 deletions
|
@ -1,6 +1,7 @@
|
||||||
#include "subsurfacewebservices.h"
|
#include "subsurfacewebservices.h"
|
||||||
#include "webservice.h"
|
#include "webservice.h"
|
||||||
#include "mainwindow.h"
|
#include "mainwindow.h"
|
||||||
|
#include "usersurvey.h"
|
||||||
#include <libxml/parser.h>
|
#include <libxml/parser.h>
|
||||||
#include <zip.h>
|
#include <zip.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
|
@ -219,6 +220,7 @@ WebServices::WebServices(QWidget *parent, Qt::WindowFlags f) : QDialog(parent, f
|
||||||
ui.buttonBox->button(QDialogButtonBox::Apply)->setEnabled(false);
|
ui.buttonBox->button(QDialogButtonBox::Apply)->setEnabled(false);
|
||||||
timeout.setSingleShot(true);
|
timeout.setSingleShot(true);
|
||||||
defaultApplyText = ui.buttonBox->button(QDialogButtonBox::Apply)->text();
|
defaultApplyText = ui.buttonBox->button(QDialogButtonBox::Apply)->text();
|
||||||
|
userAgent = UserSurvey::getVersion().replace("\n", " ");
|
||||||
}
|
}
|
||||||
|
|
||||||
void WebServices::hidePassword()
|
void WebServices::hidePassword()
|
||||||
|
@ -397,6 +399,7 @@ void SubsurfaceWebServices::startDownload()
|
||||||
QNetworkRequest request;
|
QNetworkRequest request;
|
||||||
request.setUrl(url);
|
request.setUrl(url);
|
||||||
request.setRawHeader("Accept", "text/xml");
|
request.setRawHeader("Accept", "text/xml");
|
||||||
|
request.setRawHeader("User-Agent", userAgent.toUtf8());
|
||||||
reply = manager()->get(request);
|
reply = manager()->get(request);
|
||||||
ui.status->setText(tr("Connecting..."));
|
ui.status->setText(tr("Connecting..."));
|
||||||
ui.progressBar->setEnabled(true);
|
ui.progressBar->setEnabled(true);
|
||||||
|
@ -674,6 +677,7 @@ void DivelogsDeWebServices::startUpload()
|
||||||
QNetworkRequest request;
|
QNetworkRequest request;
|
||||||
request.setUrl(QUrl("https://divelogs.de/DivelogsDirectImport.php"));
|
request.setUrl(QUrl("https://divelogs.de/DivelogsDirectImport.php"));
|
||||||
request.setRawHeader("Accept", "text/xml, application/xml");
|
request.setRawHeader("Accept", "text/xml, application/xml");
|
||||||
|
request.setRawHeader("User-Agent", userAgent.toUtf8());
|
||||||
|
|
||||||
QHttpPart part;
|
QHttpPart part;
|
||||||
part.setRawHeader("Content-Disposition", "form-data; name=\"user\"");
|
part.setRawHeader("Content-Disposition", "form-data; name=\"user\"");
|
||||||
|
@ -705,6 +709,7 @@ void DivelogsDeWebServices::startDownload()
|
||||||
QNetworkRequest request;
|
QNetworkRequest request;
|
||||||
request.setUrl(QUrl("https://divelogs.de/xml_available_dives.php"));
|
request.setUrl(QUrl("https://divelogs.de/xml_available_dives.php"));
|
||||||
request.setRawHeader("Accept", "text/xml, application/xml");
|
request.setRawHeader("Accept", "text/xml, application/xml");
|
||||||
|
request.setRawHeader("User-Agent", userAgent.toUtf8());
|
||||||
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
|
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
|
||||||
|
|
||||||
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
|
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
|
||||||
|
@ -749,6 +754,7 @@ void DivelogsDeWebServices::listDownloadFinished()
|
||||||
QNetworkRequest request;
|
QNetworkRequest request;
|
||||||
request.setUrl(QUrl("https://divelogs.de/DivelogsDirectExport.php"));
|
request.setUrl(QUrl("https://divelogs.de/DivelogsDirectExport.php"));
|
||||||
request.setRawHeader("Accept", "application/zip, */*");
|
request.setRawHeader("Accept", "application/zip, */*");
|
||||||
|
request.setRawHeader("User-Agent", userAgent.toUtf8());
|
||||||
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
|
request.setHeader(QNetworkRequest::ContentTypeHeader, "application/x-www-form-urlencoded");
|
||||||
|
|
||||||
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
|
#if QT_VERSION < QT_VERSION_CHECK(5, 0, 0)
|
||||||
|
@ -923,6 +929,7 @@ QNetworkReply* UserSurveyServices::sendSurvey(QString values)
|
||||||
QNetworkRequest request;
|
QNetworkRequest request;
|
||||||
request.setUrl(QString("http://subsurface.hohndel.org/survey?%1").arg(values));
|
request.setUrl(QString("http://subsurface.hohndel.org/survey?%1").arg(values));
|
||||||
request.setRawHeader("Accept", "text/xml");
|
request.setRawHeader("Accept", "text/xml");
|
||||||
|
request.setRawHeader("User-Agent", userAgent.toUtf8());
|
||||||
reply = manager()->get(request);
|
reply = manager()->get(request);
|
||||||
return reply;
|
return reply;
|
||||||
}
|
}
|
||||||
|
|
|
@ -43,6 +43,7 @@ protected:
|
||||||
QTimer timeout;
|
QTimer timeout;
|
||||||
QByteArray downloadedData;
|
QByteArray downloadedData;
|
||||||
QString defaultApplyText;
|
QString defaultApplyText;
|
||||||
|
QString userAgent;
|
||||||
};
|
};
|
||||||
|
|
||||||
class SubsurfaceWebServices : public WebServices {
|
class SubsurfaceWebServices : public WebServices {
|
||||||
|
|
|
@ -1,4 +1,5 @@
|
||||||
#include "updatemanager.h"
|
#include "updatemanager.h"
|
||||||
|
#include "usersurvey.h"
|
||||||
#include <QtNetwork>
|
#include <QtNetwork>
|
||||||
#include <QMessageBox>
|
#include <QMessageBox>
|
||||||
#include "subsurfacewebservices.h"
|
#include "subsurfacewebservices.h"
|
||||||
|
@ -24,7 +25,12 @@ void UpdateManager::checkForUpdates()
|
||||||
|
|
||||||
QString version = VERSION_STRING;
|
QString version = VERSION_STRING;
|
||||||
QString url = QString("http://subsurface.hohndel.org/updatecheck.html?os=%1&ver=%2").arg(os, version);
|
QString url = QString("http://subsurface.hohndel.org/updatecheck.html?os=%1&ver=%2").arg(os, version);
|
||||||
connect(SubsurfaceWebServices::manager()->get(QNetworkRequest(QUrl(url))), SIGNAL(finished()), this, SLOT(requestReceived()));
|
QNetworkRequest request;
|
||||||
|
request.setUrl(url);
|
||||||
|
request.setRawHeader("Accept", "text/xml");
|
||||||
|
QString userAgent = UserSurvey::getVersion().replace("\n", " ");
|
||||||
|
request.setRawHeader("User-Agent", userAgent.toUtf8());
|
||||||
|
connect(SubsurfaceWebServices::manager()->get(request), SIGNAL(finished()), this, SLOT(requestReceived()));
|
||||||
}
|
}
|
||||||
|
|
||||||
void UpdateManager::requestReceived()
|
void UpdateManager::requestReceived()
|
||||||
|
|
|
@ -14,7 +14,6 @@
|
||||||
UserSurvey::UserSurvey(QWidget *parent) : QDialog(parent),
|
UserSurvey::UserSurvey(QWidget *parent) : QDialog(parent),
|
||||||
ui(new Ui::UserSurvey)
|
ui(new Ui::UserSurvey)
|
||||||
{
|
{
|
||||||
QString osArch, arch;
|
|
||||||
ui->setupUi(this);
|
ui->setupUi(this);
|
||||||
this->adjustSize();
|
this->adjustSize();
|
||||||
QShortcut *closeKey = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), this);
|
QShortcut *closeKey = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_W), this);
|
||||||
|
@ -22,24 +21,30 @@ UserSurvey::UserSurvey(QWidget *parent) : QDialog(parent),
|
||||||
QShortcut *quitKey = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this);
|
QShortcut *quitKey = new QShortcut(QKeySequence(Qt::CTRL + Qt::Key_Q), this);
|
||||||
connect(quitKey, SIGNAL(activated()), parent, SLOT(close()));
|
connect(quitKey, SIGNAL(activated()), parent, SLOT(close()));
|
||||||
|
|
||||||
// fill in the system data
|
|
||||||
QString sysInfo = QString("Subsurface %1").arg(VERSION_STRING);
|
|
||||||
os = QString("ssrfVers=%1").arg(VERSION_STRING);
|
os = QString("ssrfVers=%1").arg(VERSION_STRING);
|
||||||
sysInfo.append(tr("\nOperating System: %1").arg(SubsurfaceSysInfo::prettyOsName()));
|
|
||||||
os.append(QString("&prettyOsName=%1").arg(SubsurfaceSysInfo::prettyOsName()));
|
os.append(QString("&prettyOsName=%1").arg(SubsurfaceSysInfo::prettyOsName()));
|
||||||
arch = SubsurfaceSysInfo::cpuArchitecture();
|
QString arch = SubsurfaceSysInfo::cpuArchitecture();
|
||||||
sysInfo.append(tr("\nCPU Architecture: %1").arg(arch));
|
|
||||||
os.append(QString("&appCpuArch=%1").arg(arch));
|
os.append(QString("&appCpuArch=%1").arg(arch));
|
||||||
if (arch == "i386") {
|
if (arch == "i386") {
|
||||||
osArch = SubsurfaceSysInfo::osArch();
|
QString osArch = SubsurfaceSysInfo::osArch();
|
||||||
if (!osArch.isEmpty()) {
|
os.append(QString("&osCpuArch=%1").arg(osArch));
|
||||||
sysInfo.append(tr("\nOS CPU Architecture: %1").arg(osArch));
|
|
||||||
os.append(QString("&osCpuArch=%1").arg(osArch));
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
sysInfo.append(tr("\nLanguage: %1").arg(uiLanguage(NULL)));
|
|
||||||
os.append(QString("&uiLang=%1").arg(uiLanguage(NULL)));
|
os.append(QString("&uiLang=%1").arg(uiLanguage(NULL)));
|
||||||
ui->system->setPlainText(sysInfo);
|
ui->system->setPlainText(getVersion());
|
||||||
|
}
|
||||||
|
|
||||||
|
QString UserSurvey::getVersion()
|
||||||
|
{
|
||||||
|
QString arch;
|
||||||
|
// fill in the system data
|
||||||
|
QString sysInfo = QString("Subsurface %1").arg(VERSION_STRING);
|
||||||
|
sysInfo.append(tr("\nOperating System: %1").arg(SubsurfaceSysInfo::prettyOsName()));
|
||||||
|
arch = SubsurfaceSysInfo::cpuArchitecture();
|
||||||
|
sysInfo.append(tr("\nCPU Architecture: %1").arg(arch));
|
||||||
|
if (arch == "i386")
|
||||||
|
sysInfo.append(tr("\nOS CPU Architecture: %1").arg(SubsurfaceSysInfo::osArch()));
|
||||||
|
sysInfo.append(tr("\nLanguage: %1").arg(uiLanguage(NULL)));
|
||||||
|
return sysInfo;
|
||||||
}
|
}
|
||||||
|
|
||||||
UserSurvey::~UserSurvey()
|
UserSurvey::~UserSurvey()
|
||||||
|
|
|
@ -15,6 +15,7 @@ class UserSurvey : public QDialog {
|
||||||
public:
|
public:
|
||||||
explicit UserSurvey(QWidget *parent = 0);
|
explicit UserSurvey(QWidget *parent = 0);
|
||||||
~UserSurvey();
|
~UserSurvey();
|
||||||
|
static QString getVersion();
|
||||||
|
|
||||||
private
|
private
|
||||||
slots:
|
slots:
|
||||||
|
|
Loading…
Add table
Reference in a new issue