From 0f967063c0d4487ad71081564bfef139426c50b1 Mon Sep 17 00:00:00 2001 From: Dirk Hohndel Date: Sun, 25 Jan 2015 11:27:42 -0800 Subject: Add unique but random UUID to server queries With this we can easily eliminate duplicates from our user statistics. The UUID is completely random and there is no way to link it back to a specific user. By deleting the settings a user can force a new UUID. Signed-off-by: Dirk Hohndel --- qt-ui/updatemanager.cpp | 20 +++++++++++++++++++- 1 file changed, 19 insertions(+), 1 deletion(-) (limited to 'qt-ui/updatemanager.cpp') diff --git a/qt-ui/updatemanager.cpp b/qt-ui/updatemanager.cpp index b920a8ebb..e972c4496 100644 --- a/qt-ui/updatemanager.cpp +++ b/qt-ui/updatemanager.cpp @@ -2,6 +2,7 @@ #include "usersurvey.h" #include #include +#include #include "subsurfacewebservices.h" #include "ssrf-version.h" #include "mainwindow.h" @@ -47,7 +48,8 @@ void UpdateManager::checkForUpdates(bool automatic) #endif isAutomaticCheck = automatic; QString version = CANONICAL_VERSION_STRING; - QString url = QString("http://subsurface-divelog.org/updatecheck.html?os=%1&version=%2").arg(os, version); + QString uuidString = getUUID(); + QString url = QString("http://subsurface-divelog.org/updatecheck.html?os=%1&version=%2&uuid=%3").arg(os, version, uuidString); QNetworkRequest request; request.setUrl(url); request.setRawHeader("Accept", "text/xml"); @@ -56,6 +58,22 @@ void UpdateManager::checkForUpdates(bool automatic) connect(SubsurfaceWebServices::manager()->get(request), SIGNAL(finished()), this, SLOT(requestReceived()), Qt::UniqueConnection); } +QString UpdateManager::getUUID() +{ + QString uuidString; + QSettings settings; + settings.beginGroup("UpdateManager"); + if (settings.contains("UUID")) { + uuidString = settings.value("UUID").toString(); + } else { + QUuid uuid = QUuid::createUuid(); + uuidString = uuid.toString(); + settings.setValue("UUID", uuidString); + } + uuidString.replace("{", "").replace("}", ""); + return uuidString; +} + void UpdateManager::requestReceived() { bool haveNewVersion = false; -- cgit v1.2.3-70-g09d2