#include "protocolConfig.h" #include "core/models/protocols/awgProtocolConfig.h" #include "core/models/protocols/cloakProtocolConfig.h" #include "core/models/protocols/openvpnProtocolConfig.h" #include "core/models/protocols/protocolConfig.h" #include "core/models/protocols/shadowsocksProtocolConfig.h" #include "core/models/protocols/xrayProtocolConfig.h" #include "protocols/protocols_defs.h" using namespace amnezia; ProtocolConfig::ProtocolConfig(const QString &protocolName) : protocolName(protocolName) { } ProtocolConfigVariant ProtocolConfig::getProtocolConfigVariant(const QSharedPointer &protocolConfig) { ProtocolConfigVariant variant; auto proto = ProtocolProps::protoFromString(protocolConfig->protocolName); switch (proto) { case Proto::OpenVpn: variant = qSharedPointerCast(protocolConfig); break; case Proto::WireGuard: variant = qSharedPointerCast(protocolConfig); break; case Proto::ShadowSocks: variant = qSharedPointerCast(protocolConfig); break; case Proto::Cloak: variant = qSharedPointerCast(protocolConfig); break; case Proto::Xray: variant = qSharedPointerCast(protocolConfig); break; case Proto::Awg: variant = qSharedPointerCast(protocolConfig); break; default: break; } return variant; } bool ProtocolConfig::isServerSettingsEqual(const QSharedPointer &other) { auto proto = ProtocolProps::protoFromString(protocolName); switch (proto) { case Proto::OpenVpn: { auto thisConfig = qSharedPointerCast(QSharedPointer(this)); auto otherConfig = qSharedPointerCast(other); return false; } case Proto::WireGuard: { auto thisConfig = qSharedPointerCast(QSharedPointer(this)); auto otherConfig = qSharedPointerCast(other); return false; } case Proto::ShadowSocks: { auto thisConfig = qSharedPointerCast(QSharedPointer(this)); auto otherConfig = qSharedPointerCast(other); return false; } case Proto::Cloak: { auto thisConfig = qSharedPointerCast(QSharedPointer(this)); auto otherConfig = qSharedPointerCast(other); return false; } case Proto::Xray: { auto thisConfig = qSharedPointerCast(QSharedPointer(this)); auto otherConfig = qSharedPointerCast(other); return false; } case Proto::Awg: { auto thisConfig = qSharedPointerCast(QSharedPointer(this)); auto otherConfig = qSharedPointerCast(other); return thisConfig->hasEqualServerSettings(*otherConfig.data()); } default: return false; } } QJsonObject ProtocolConfig::toJson() const { return QJsonObject(); }