VPN configuration class fixes

This commit is contained in:
pokamest 2021-10-02 21:56:47 +03:00
parent 535e628eba
commit a5bcf1a02d
7 changed files with 65 additions and 39 deletions

View file

@ -44,7 +44,8 @@ ErrorCode OpenVpnOverCloakProtocol::start()
<< "-p" << m_cloakConfig.value(config_key::port).toString(amnezia::protocols::cloak::defaultPort)
<< "-l" << amnezia::protocols::openvpn::defaultPort;
if (m_cloakConfig.value(config_key::transport_proto).toString() == protocols::UDP) {
ProtocolEnumNS::TransportProto tp = ProtocolProps::transportProtoFromString(m_cloakConfig.value(config_key::transport_proto).toString());
if (tp == ProtocolEnumNS::TransportProto::Udp) {
args << "-u";
}

View file

@ -43,7 +43,7 @@ TransportProto ProtocolProps::transportProtoFromString(QString p)
QMetaEnum metaEnum = QMetaEnum::fromType<TransportProto>();
for (int i = 0; i < metaEnum.keyCount(); ++i) {
TransportProto tp = static_cast<TransportProto>(i);
if (p.toLower() == transportProtoToString(tp)) return tp;
if (p.toLower() == transportProtoToString(tp).toLower()) return tp;
}
return TransportProto::Udp;
}
@ -52,12 +52,17 @@ QString ProtocolProps::transportProtoToString(TransportProto proto, Protocol p)
{
QMetaEnum metaEnum = QMetaEnum::fromType<TransportProto>();
QString protoKey = metaEnum.valueToKey(static_cast<int>(proto));
if (p == Protocol::OpenVpn){
return protoKey.toUpper();
}
else {
return protoKey.toLower();
}
return protoKey.toLower();
// if (p == Protocol::OpenVpn){
// return protoKey.toLower();
// }
// else if (p == Protocol::ShadowSocks) {
// return protoKey.toUpper();
// }
// else {
// return protoKey.toLower();
// }
}
@ -103,6 +108,9 @@ int ProtocolProps::defaultPort(Protocol p)
case Protocol::Cloak : return 443;
case Protocol::ShadowSocks : return 6789;
case Protocol::WireGuard : return 51820;
case Protocol::Ikev2 : return -1;
case Protocol::L2tp : return -1;
case Protocol::TorWebSite : return -1;
case Protocol::Dns : return 53;
case Protocol::FileShare : return 139;
@ -119,7 +127,11 @@ bool ProtocolProps::defaultPortChangeable(Protocol p)
case Protocol::Cloak : return true;
case Protocol::ShadowSocks : return true;
case Protocol::WireGuard : return true;
case Protocol::TorWebSite : return true;
case Protocol::Ikev2 : return false;
case Protocol::L2tp : return false;
case Protocol::TorWebSite : return true;
case Protocol::Dns : return false;
case Protocol::FileShare : return false;
default: return -1;
@ -134,12 +146,13 @@ TransportProto ProtocolProps::defaultTransportProto(Protocol p)
case Protocol::Cloak : return TransportProto::Tcp;
case Protocol::ShadowSocks : return TransportProto::Tcp;
case Protocol::WireGuard : return TransportProto::Udp;
case Protocol::Ikev2 : return TransportProto::Udp;
case Protocol::L2tp : return TransportProto::Udp;
// non-vpn
case Protocol::TorWebSite : return TransportProto::Tcp;
case Protocol::Dns : return TransportProto::Udp;
case Protocol::FileShare : return TransportProto::Udp;
case Protocol::Sftp : return TransportProto::Tcp;
default: return TransportProto::Udp;
}
}
@ -151,6 +164,8 @@ bool ProtocolProps::defaultTransportProtoChangeable(Protocol p)
case Protocol::Cloak : return false;
case Protocol::ShadowSocks : return false;
case Protocol::WireGuard : return false;
case Protocol::Ikev2 : return false;
case Protocol::L2tp : return false;
// non-vpn
case Protocol::TorWebSite : return false;
case Protocol::Dns : return false;

View file

@ -46,10 +46,6 @@ constexpr char last_config[] = "last_config";
namespace protocols {
constexpr char UDP[] = "udp"; // case sens
constexpr char TCP[] = "tcp";
namespace openvpn {
constexpr char defaultSubnetAddress[] = "10.8.0.0";
constexpr char defaultSubnetMask[] = "255.255.255.0";
@ -122,6 +118,8 @@ enum Protocol {
ShadowSocks,
Cloak,
WireGuard,
Ikev2,
L2tp,
// non-vpn
TorWebSite,