diff --git a/client/protocols/shadowsocksvpnprotocol.cpp b/client/protocols/shadowsocksvpnprotocol.cpp index dafb7fa2..82ae08b8 100644 --- a/client/protocols/shadowsocksvpnprotocol.cpp +++ b/client/protocols/shadowsocksvpnprotocol.cpp @@ -116,5 +116,17 @@ QString ShadowSocksVpnProtocol::shadowSocksExecPath() void ShadowSocksVpnProtocol::readShadowSocksConfiguration(const QJsonObject &configuration) { - m_shadowSocksConfig = configuration.value(ProtocolProps::key_proto_config_data(Proto::ShadowSocks)).toObject(); + QJsonObject shadowSocksConfig = configuration.value(ProtocolProps::key_proto_config_data(Proto::ShadowSocks)).toObject(); + bool isLocalPortConvertOk = false; + bool isServerPortConvertOk = false; + int localPort = shadowSocksConfig.value("local_port").toString().toInt(&isLocalPortConvertOk); + int serverPort = shadowSocksConfig.value("server_port").toString().toInt(&isServerPortConvertOk); + if (!isLocalPortConvertOk) { + qDebug() << "Error when converting local_port field in ShadowSocks config"; + } else if (!isServerPortConvertOk) { + qDebug() << "Error when converting server_port field in ShadowSocks config"; + } + shadowSocksConfig["local_port"] = localPort; + shadowSocksConfig["server_port"] = serverPort; + m_shadowSocksConfig = shadowSocksConfig; }