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 VALID_ARCHS[sdk=iphoneos*] = arm64
PROJECT_TEMP_DIR = /Users/sanchez/work/vied/ios/vpn/desktop-client-bkp/client/3rd/PacketProcessor/build/PacketProcessor.build PROJECT_TEMP_DIR = $(SRCROOT)/client/3rd/PacketProcessor/build/PacketProcessor.build
CONFIGURATION_BUILD_DIR = /Users/sanchez/work/vied/ios/vpn/desktop-client-bkp/client/3rd/PacketProcessor/build/Release-iphoneos CONFIGURATION_BUILD_DIR = $(SRCROOT)/client/3rd/PacketProcessor/build/Release-iphoneos
BUILT_PRODUCTS_DIR = /Users/sanchez/work/vied/ios/vpn/desktop-client-bkp/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 VALID_ARCHS[sdk=iphoneos*] = arm64
PROJECT_TEMP_DIR = /Users/sanchez/work/vied/ios/vpn/desktop-client-bkp/client/3rd/ShadowSocks/build/ShadowSocks.build PROJECT_TEMP_DIR = $(SRCROOT)/client/3rd/ShadowSocks/build/ShadowSocks.build
CONFIGURATION_BUILD_DIR = /Users/sanchez/work/vied/ios/vpn/desktop-client-bkp/client/3rd/ShadowSocks/build/Release-iphoneos CONFIGURATION_BUILD_DIR = $(SRCROOT)/client/3rd/ShadowSocks/build/Release-iphoneos
BUILT_PRODUCTS_DIR = /Users/sanchez/work/vied/ios/vpn/desktop-client-bkp/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); explicit IOSVpnProtocol(amnezia::Proto proto, const QJsonObject& configuration, QObject* parent = nullptr);
static IOSVpnProtocol* instance(); static IOSVpnProtocol* instance();
virtual ~IOSVpnProtocol() = default; virtual ~IOSVpnProtocol() override = default;
bool initialize(); bool initialize();

View file

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

View file

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

View file

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