Initial release of client ID generation.

This commit is contained in:
woogerboy21 2015-08-05 10:15:49 -04:00
parent 44d757f691
commit 52db13a1ca
14 changed files with 246 additions and 186 deletions

View file

@ -1,4 +1,4 @@
/***************************************************************************
/***************************************************************************
* Copyright (C) 2008 by Max-Wilhelm Bruker *
* brukie@gmx.net *
* *
@ -32,6 +32,9 @@
#include <QDesktopServices>
#include <QDebug>
#include <QSystemTrayIcon>
#include "QtNetwork/QNetworkInterface"
#include <QCryptographicHash>
#include "main.h"
#include "window_main.h"
@ -97,6 +100,19 @@ bool settingsValid()
!settingsCache->getPicsPath().isEmpty();
}
void generateClientID()
{
QString macList;
foreach(QNetworkInterface interface, QNetworkInterface::allInterfaces())
{
if (interface.hardwareAddress() != "")
if (interface.hardwareAddress() != "00:00:00:00:00:00:00:E0")
macList += interface.hardwareAddress() + ".";
}
QString strClientID = QCryptographicHash::hash(macList.toUtf8(), QCryptographicHash::Sha1).toHex().right(15);
settingsCache->setClientID(strClientID);
}
int main(int argc, char *argv[])
{
QApplication app(argc, argv);
@ -203,6 +219,9 @@ int main(int argc, char *argv[])
QIcon icon(":/resources/appicon.svg");
ui.setWindowIcon(icon);
generateClientID(); //generate the users client id
qDebug() << "ClientID In Cache: " << settingsCache->getClientID();
ui.show();
qDebug("main(): ui.show() finished");

View file

@ -14,6 +14,7 @@ extern const QString translationPrefix;
extern QString translationPath;
void installNewTranslator();
void generateClientID();
bool settingsValid();

View file

@ -10,6 +10,7 @@
#include "pb/response_activate.pb.h"
#include "pb/server_message.pb.h"
#include "pb/event_server_identification.pb.h"
#include "settingscache.h"
static const unsigned int protocolVersion = 14;
@ -108,7 +109,7 @@ void RemoteClient::doLogin()
Command_Login cmdLogin;
cmdLogin.set_user_name(userName.toStdString());
cmdLogin.set_password(password.toStdString());
cmdLogin.set_clientid(settingsCache->getClientID().toStdString());
PendingCommand *pend = prepareSessionCommand(cmdLogin);
connect(pend, SIGNAL(finished(Response, CommandContainer, QVariant)), this, SLOT(loginResponse(Response)));
sendCommand(pend);
@ -243,6 +244,7 @@ void RemoteClient::doConnectToServer(const QString &hostname, unsigned int port,
userName = _userName;
password = _password;
QString clientid = settingsCache->getClientID();
lastHostname = hostname;
lastPort = port;

View file

@ -85,9 +85,7 @@ SettingsCache::SettingsCache()
masterVolume = settings->value("sound/mastervolume", 100).toInt();
cardInfoViewMode = settings->value("cards/cardinfoviewmode", 0).toInt();
highlightWords = settings->value("personal/highlightWords", QString()).toString();
gameDescription = settings->value("game/gamedescription","").toString();
maxPlayers = settings->value("game/maxplayers", 2).toInt();
gameTypes = settings->value("game/gametypes","").toString();
@ -97,6 +95,8 @@ SettingsCache::SettingsCache()
spectatorsNeedPassword = settings->value("game/spectatorsneedpassword", false).toBool();
spectatorsCanTalk = settings->value("game/spectatorscantalk", false).toBool();
spectatorsCanSeeEverything = settings->value("game/spectatorscanseeeverything", false).toBool();
clientID = settings->value("personal/clientid", "notset").toString();
}
void SettingsCache::setCardInfoViewMode(const int _viewMode) {
@ -424,6 +424,12 @@ void SettingsCache::setPixmapCacheSize(const int _pixmapCacheSize)
emit pixmapCacheSizeChanged(pixmapCacheSize);
}
void SettingsCache::setClientID(QString _clientID)
{
clientID = _clientID;
settings->setValue("personal/clientid", clientID);
}
QStringList SettingsCache::getCountries() const
{
static QStringList countries = QStringList()

View file

@ -79,6 +79,7 @@ private:
QString picUrlHq;
QString picUrlFallback;
QString picUrlHqFallback;
QString clientID;
bool attemptAutoConnect;
int pixmapCacheSize;
bool scaleCards;
@ -169,6 +170,8 @@ public:
bool getSpectatorsCanTalk() const { return spectatorsCanTalk; }
bool getSpectatorsCanSeeEverything() const { return spectatorsCanSeeEverything; }
int getKeepAlive() const { return keepalive; }
void setClientID(QString clientID);
QString getClientID() { return clientID; }
public slots:
void setMainWindowGeometry(const QByteArray &_mainWindowGeometry);
void setLang(const QString &_lang);