
* Add allowed DNS list for killswitch * Windows killswitch strict mode backend part * Killswitch strict mode for Linux and MacOS * Windows fixes * feature: Add Kill Switch settings page with strict mode option * fix windows build after merge * Refresh killswitch mode when it toggled * Use HLM to store strictMode flag * Some Linux updates * feat: Enhance VerticalRadioButton with improved styling and disabled states * Refresh killSwitch state update * Fix build * refactor: Modularize header components * Change kill switch radio button styling * Fix strict kill switch mode handling * Refactor: Replace HeaderType with new Types for headers in QML pages * Remove deprecated HeaderType QML component * Refresh strict mode killswitch after global toggle change * Implement model, controller and UI for killswitch dns exceptions * Connect backend part and UI * Change label text to DNS exceptions * Remove HeaderType from PageSettingsApiDevices * Some pretty fixes * Fix problem with definition sequence of PageSettingsKillSwitchExceptions.pml elements * Add exclusion method for Windows firewall * Change ubuntu version in deploy script * Update ubuntu version in GH actions * Add confirmation popup for strict killswitch mode * Add qt standard path for build script * Add method to killswitch for expanding strickt mode exceptions list and fix allowTrafficTo() for Windows. Also Added cache in KillSwitch class for exceptions * Add insertion of gateway address to strict killswitch exceptions * Review fixes * buildfix and naming --------- Co-authored-by: aiamnezia <ai@amnezia.org>
62 lines
1.6 KiB
C++
62 lines
1.6 KiB
C++
/* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at http://mozilla.org/MPL/2.0/. */
|
|
|
|
#ifndef INTERFACECONFIG_H
|
|
#define INTERFACECONFIG_H
|
|
|
|
#include <QList>
|
|
#include <QMap>
|
|
#include <QString>
|
|
|
|
#include "ipaddress.h"
|
|
|
|
class QJsonObject;
|
|
|
|
class InterfaceConfig {
|
|
Q_GADGET
|
|
|
|
public:
|
|
InterfaceConfig() {}
|
|
|
|
enum HopType { SingleHop, MultiHopEntry, MultiHopExit };
|
|
Q_ENUM(HopType)
|
|
|
|
HopType m_hopType;
|
|
QString m_privateKey;
|
|
QString m_deviceIpv4Address;
|
|
QString m_deviceIpv6Address;
|
|
QString m_serverIpv4Gateway;
|
|
QString m_serverIpv6Gateway;
|
|
QString m_serverPublicKey;
|
|
QString m_serverIpv4AddrIn;
|
|
QString m_serverPskKey;
|
|
QString m_serverIpv6AddrIn;
|
|
QString m_dnsServer;
|
|
int m_serverPort = 0;
|
|
int m_deviceMTU = 1420;
|
|
QList<IPAddress> m_allowedIPAddressRanges;
|
|
QStringList m_excludedAddresses;
|
|
QStringList m_vpnDisabledApps;
|
|
QStringList m_allowedDnsServers;
|
|
bool m_killSwitchEnabled;
|
|
#if defined(MZ_ANDROID) || defined(MZ_IOS)
|
|
QString m_installationId;
|
|
#endif
|
|
|
|
QString m_junkPacketCount;
|
|
QString m_junkPacketMinSize;
|
|
QString m_junkPacketMaxSize;
|
|
QString m_initPacketJunkSize;
|
|
QString m_responsePacketJunkSize;
|
|
QString m_initPacketMagicHeader;
|
|
QString m_responsePacketMagicHeader;
|
|
QString m_underloadPacketMagicHeader;
|
|
QString m_transportPacketMagicHeader;
|
|
|
|
QJsonObject toJson() const;
|
|
QString toWgConf(
|
|
const QMap<QString, QString>& extra = QMap<QString, QString>()) const;
|
|
};
|
|
|
|
#endif // INTERFACECONFIG_H
|