diff --git a/client/daemon/daemon.cpp b/client/daemon/daemon.cpp index 9e5be582..30969de9 100644 --- a/client/daemon/daemon.cpp +++ b/client/daemon/daemon.cpp @@ -248,9 +248,10 @@ bool Daemon::parseConfig(const QJsonObject& obj, InterfaceConfig& config) { GETVALUE("privateKey", config.m_privateKey, String); GETVALUE("serverPublicKey", config.m_serverPublicKey, String); - GETVALUE("serverPskKey", config.m_serverPskKey, String); GETVALUE("serverPort", config.m_serverPort, Double); + config.m_serverPskKey = obj.value("serverPskKey").toString(); + if (!obj.contains("deviceMTU") || obj.value("deviceMTU").toString().toInt() == 0) { config.m_deviceMTU = 1420; diff --git a/client/platforms/linux/daemon/wireguardutilslinux.cpp b/client/platforms/linux/daemon/wireguardutilslinux.cpp index c92adb02..2e328ae9 100644 --- a/client/platforms/linux/daemon/wireguardutilslinux.cpp +++ b/client/platforms/linux/daemon/wireguardutilslinux.cpp @@ -199,7 +199,9 @@ bool WireguardUtilsLinux::updatePeer(const InterfaceConfig& config) { QTextStream out(&message); out << "set=1\n"; out << "public_key=" << QString(publicKey.toHex()) << "\n"; - out << "preshared_key=" << QString(pskKey.toHex()) << "\n"; + if (!config.m_serverPskKey.isNull()) { + out << "preshared_key=" << QString(pskKey.toHex()) << "\n"; + } if (!config.m_serverIpv4AddrIn.isNull()) { out << "endpoint=" << config.m_serverIpv4AddrIn << ":"; } else if (!config.m_serverIpv6AddrIn.isNull()) { diff --git a/client/platforms/macos/daemon/wireguardutilsmacos.cpp b/client/platforms/macos/daemon/wireguardutilsmacos.cpp index 4c30eec6..421c0f32 100644 --- a/client/platforms/macos/daemon/wireguardutilsmacos.cpp +++ b/client/platforms/macos/daemon/wireguardutilsmacos.cpp @@ -199,7 +199,9 @@ bool WireguardUtilsMacos::updatePeer(const InterfaceConfig& config) { QTextStream out(&message); out << "set=1\n"; out << "public_key=" << QString(publicKey.toHex()) << "\n"; - out << "preshared_key=" << QString(pskKey.toHex()) << "\n"; + if (!config.m_serverPskKey.isNull()) { + out << "preshared_key=" << QString(pskKey.toHex()) << "\n"; + } if (!config.m_serverIpv4AddrIn.isNull()) { out << "endpoint=" << config.m_serverIpv4AddrIn << ":"; } else if (!config.m_serverIpv6AddrIn.isNull()) { diff --git a/client/platforms/windows/daemon/wireguardutilswindows.cpp b/client/platforms/windows/daemon/wireguardutilswindows.cpp index 1e0a4752..9885f065 100644 --- a/client/platforms/windows/daemon/wireguardutilswindows.cpp +++ b/client/platforms/windows/daemon/wireguardutilswindows.cpp @@ -148,7 +148,9 @@ bool WireguardUtilsWindows::updatePeer(const InterfaceConfig& config) { QTextStream out(&message); out << "set=1\n"; out << "public_key=" << QString(publicKey.toHex()) << "\n"; - out << "preshared_key=" << QString(pskKey.toHex()) << "\n"; + if (!config.m_serverPskKey.isNull()) { + out << "preshared_key=" << QString(pskKey.toHex()) << "\n"; + } if (!config.m_serverIpv4AddrIn.isNull()) { out << "endpoint=" << config.m_serverIpv4AddrIn << ":"; } else if (!config.m_serverIpv6AddrIn.isNull()) {