X-Git-Url: https://git.quassel-irc.org/?p=quassel.git;a=blobdiff_plain;f=src%2Fclient%2Fclientsettings.cpp;h=62812fc7bd27ba2b85daa2c012e746fb0f803274;hp=9a054594008b5d9e9d2bf30d3320b34c33af8b8e;hb=e06ce3bfa98752cb9e87586477dfaf31e7e1ab0a;hpb=a3aaabf6254c8c5439af8982cc613c4ced3f50ed diff --git a/src/client/clientsettings.cpp b/src/client/clientsettings.cpp index 9a054594..62812fc7 100644 --- a/src/client/clientsettings.cpp +++ b/src/client/clientsettings.cpp @@ -1,5 +1,5 @@ /*************************************************************************** - * Copyright (C) 2005-08 by the Quassel Project * + * Copyright (C) 2005-09 by the Quassel Project * * devel@quassel-irc.org * * * * This program is free software; you can redistribute it and/or modify * @@ -20,8 +20,16 @@ #include -#include "client.h" + #include "clientsettings.h" + +#include +#ifdef HAVE_SSL +#include +#endif + + +#include "client.h" #include "quassel.h" ClientSettings::ClientSettings(QString g) : Settings(g, Quassel::buildInfo().clientApplicationName) { @@ -140,3 +148,40 @@ void NotificationSettings::setNicksCaseSensitive(bool cs) { bool NotificationSettings::nicksCaseSensitive() { return localValue("Highlights/NicksCaseSensitive", false).toBool(); } + + +// ======================================== +// KnownHostsSettings +// ======================================== +KnownHostsSettings::KnownHostsSettings() + : ClientSettings("KnownHosts") +{ +} + +QByteArray KnownHostsSettings::knownDigest(const QHostAddress &address) { + return localValue(address.toString(), QByteArray()).toByteArray(); +} + +void KnownHostsSettings::saveKnownHost(const QHostAddress &address, const QByteArray &certDigest) { + setLocalValue(address.toString(), certDigest); +} + +bool KnownHostsSettings::isKnownHost(const QHostAddress &address, const QByteArray &certDigest) { + return certDigest == localValue(address.toString(), QByteArray()).toByteArray(); +} + +#ifdef HAVE_SSL +QByteArray KnownHostsSettings::knownDigest(const QSslSocket *socket) { + return knownDigest(socket->peerAddress()); +} + +void KnownHostsSettings::saveKnownHost(const QSslSocket *socket) { + Q_ASSERT(socket); + saveKnownHost(socket->peerAddress(), socket->peerCertificate().digest()); +} + +bool KnownHostsSettings::isKnownHost(const QSslSocket *socket) { + Q_ASSERT(socket); + return isKnownHost(socket->peerAddress(), socket->peerCertificate().digest()); +#endif +}