File indexing completed on 2025-03-09 04:54:31

0001 /*
0002    SPDX-FileCopyrightText: 2020-2024 Laurent Montel <montel@kde.org>
0003 
0004    SPDX-License-Identifier: LGPL-2.0-or-later
0005 */
0006 
0007 #include "dmarcmanager.h"
0008 #include "dkimutil.h"
0009 #include <KConfigGroup>
0010 #include <KSharedConfig>
0011 using namespace MessageViewer;
0012 DMARCManager::DMARCManager()
0013 {
0014     loadNoServerKeys();
0015 }
0016 
0017 DMARCManager::~DMARCManager()
0018 {
0019     saveNoServerKeys();
0020 }
0021 
0022 DMARCManager *DMARCManager::self()
0023 {
0024     static DMARCManager s_self;
0025     return &s_self;
0026 }
0027 
0028 bool DMARCManager::isNoDMarcServerAddress(const QString &address) const
0029 {
0030     return mNoDMarcServer.contains(address);
0031 }
0032 
0033 void DMARCManager::addNoDMarcServerAddress(const QString &address)
0034 {
0035     if (!mNoDMarcServer.contains(address)) {
0036         mNoDMarcServer.append(address);
0037     }
0038 }
0039 
0040 void DMARCManager::saveNoServerKeys()
0041 {
0042     const KSharedConfig::Ptr &config = KSharedConfig::openConfig(MessageViewer::DKIMUtil::defaultConfigFileName(), KConfig::NoGlobals);
0043     KConfigGroup grp(config, QStringLiteral("NoExistingDmarcServer"));
0044     grp.writeEntry("AddressList", mNoDMarcServer);
0045 }
0046 
0047 void DMARCManager::loadNoServerKeys()
0048 {
0049     const KSharedConfig::Ptr &config = KSharedConfig::openConfig(MessageViewer::DKIMUtil::defaultConfigFileName(), KConfig::NoGlobals);
0050     KConfigGroup grp(config, QStringLiteral("NoExistingDmarcServer"));
0051     mNoDMarcServer = grp.readEntry("AddressList", QStringList());
0052 }