Tried to get rid of crashes on sequential vpn turn on/off

This commit is contained in:
Alex Kh 2021-12-23 13:13:55 +04:00
parent 56754d616b
commit 9ca8c66c47
6 changed files with 18 additions and 10 deletions

View file

@ -17,6 +17,6 @@ SDKROOT[arch=armv7s] = iphoneos
VALID_ARCHS[sdk=iphoneos*] = arm64
PROJECT_TEMP_DIR = /Users/sanchez/work/vied/ios/vpn/desktop-client-bkp/client/3rd/PacketProcessor/build/PacketProcessor.build
CONFIGURATION_BUILD_DIR = /Users/sanchez/work/vied/ios/vpn/desktop-client-bkp/client/3rd/PacketProcessor/build/Release-iphoneos
BUILT_PRODUCTS_DIR = /Users/sanchez/work/vied/ios/vpn/desktop-client-bkp/client/3rd/PacketProcessor/build/Release-iphoneos
PROJECT_TEMP_DIR = $(SRCROOT)/client/3rd/PacketProcessor/build/PacketProcessor.build
CONFIGURATION_BUILD_DIR = $(SRCROOT)/client/3rd/PacketProcessor/build/Release-iphoneos
BUILT_PRODUCTS_DIR = $(SRCROOT)/client/3rd/PacketProcessor/build/Release-iphoneos

View file

@ -19,6 +19,6 @@ SDKROOT[arch=armv7s] = iphoneos
VALID_ARCHS[sdk=iphoneos*] = arm64
PROJECT_TEMP_DIR = /Users/sanchez/work/vied/ios/vpn/desktop-client-bkp/client/3rd/ShadowSocks/build/ShadowSocks.build
CONFIGURATION_BUILD_DIR = /Users/sanchez/work/vied/ios/vpn/desktop-client-bkp/client/3rd/ShadowSocks/build/Release-iphoneos
BUILT_PRODUCTS_DIR = /Users/sanchez/work/vied/ios/vpn/desktop-client-bkp/client/3rd/ShadowSocks/build/Release-iphoneos
PROJECT_TEMP_DIR = $(SRCROOT)/client/3rd/ShadowSocks/build/ShadowSocks.build
CONFIGURATION_BUILD_DIR = $(SRCROOT)/client/3rd/ShadowSocks/build/Release-iphoneos
BUILT_PRODUCTS_DIR = $(SRCROOT)/client/3rd/ShadowSocks/build/Release-iphoneos

View file

@ -16,7 +16,7 @@ public:
explicit IOSVpnProtocol(amnezia::Proto proto, const QJsonObject& configuration, QObject* parent = nullptr);
static IOSVpnProtocol* instance();
virtual ~IOSVpnProtocol() = default;
virtual ~IOSVpnProtocol() override = default;
bool initialize();

View file

@ -82,6 +82,9 @@ ErrorCode IOSVpnProtocol::start()
QString protocol = result["protocol"].toString();
if (!m_controller)
initialize();
switch (m_protocol) {
case amnezia::Proto::OpenVpn:
if (currentProto != m_protocol) {

View file

@ -92,7 +92,10 @@ void VpnLogic::onBytesChanged(quint64 receivedData, quint64 sentData)
void VpnLogic::onConnectionStateChanged(VpnProtocol::VpnConnectionState state)
{
qDebug() << "VpnLogic::onConnectionStateChanged" << VpnProtocol::textConnectionState(state);
if (uiLogic()->m_vpnConnection == NULL) {
qDebug() << "VpnLogic::onConnectionStateChanged" << VpnProtocol::textConnectionState(state) << "невозможно, соединение отсутствует (уничтожено ранее)";
return;
}
bool pbConnectEnabled = false;
bool pbConnectChecked = false;

View file

@ -34,8 +34,10 @@ VpnConnection::VpnConnection(QObject* parent) : QObject(parent),
VpnConnection::~VpnConnection()
{
m_vpnProtocol->deleteLater();
m_vpnProtocol.clear();
if (m_vpnProtocol != nullptr) {
m_vpnProtocol->deleteLater();
m_vpnProtocol.clear();
}
}
void VpnConnection::onBytesChanged(quint64 receivedBytes, quint64 sentBytes)