@@ -112,11 +112,12 @@ void Backend::init()
112112 connect (engine_, &Engine::setRobertFilterFinished, this , &Backend::onEngineSetRobertFilterFinished);
113113 connect (engine_, &Engine::syncRobertFinished, this , &Backend::onEngineSyncRobertFinished);
114114 connect (engine_, &Engine::splitTunnelingStartFailed, this , &Backend::splitTunnelingStartFailed);
115+ connect (engine_, &Engine::systemExtensionAvailabilityChanged, this , &Backend::systemExtensionAvailabilityChanged);
115116 connect (engine_, &Engine::autoEnableAntiCensorship, this , &Backend::onEngineAutoEnableAntiCensorship);
116117 connect (engine_, &Engine::connectionIdChanged, this , &Backend::connectionIdChanged);
117118 connect (engine_, &Engine::localDnsServerNotAvailable, this , &Backend::localDnsServerNotAvailable);
118119 connect (engine_, &Engine::bridgeApiAvailabilityChanged, this , &Backend::onEngineBridgeApiAvailabilityChanged);
119- connect (engine_, &Engine::ipRotateFailed , this , &Backend::ipRotateFailed );
120+ connect (engine_, &Engine::ipRotateResult , this , &Backend::ipRotateResult );
120121 connect (engine_, &Engine::connectingHostnameChanged, this , &Backend::onEngineConnectingHostnameChanged);
121122 connect (engine_, &Engine::controldDevicesFetched, this , &Backend::controldDevicesFetched);
122123 threadEngine_->start (QThread::LowPriority);
@@ -135,6 +136,7 @@ void Backend::enableBFE_win()
135136
136137void Backend::login (const QString &username, const QString &password, const QString &code2fa)
137138{
139+ WS_ASSERT (loginState_ != LOGIN_STATE_LOGGING_IN);
138140 loginState_ = LOGIN_STATE_LOGGING_IN;
139141 bLastLoginWithAuthHash_ = false ;
140142 lastUsername_ = username;
@@ -160,13 +162,15 @@ bool Backend::isSavedApiSettingsExists() const
160162
161163void Backend::loginWithAuthHash ()
162164{
165+ WS_ASSERT (loginState_ != LOGIN_STATE_LOGGING_IN);
163166 loginState_ = LOGIN_STATE_LOGGING_IN;
164167 bLastLoginWithAuthHash_ = true ;
165168 engine_->loginWithAuthHash ();
166169}
167170
168171void Backend::loginWithLastLoginSettings ()
169172{
173+ WS_ASSERT (loginState_ != LOGIN_STATE_LOGGING_IN);
170174 loginState_ = LOGIN_STATE_LOGGING_IN;
171175 if (bLastLoginWithAuthHash_)
172176 loginWithAuthHash ();
@@ -575,9 +579,9 @@ void Backend::onEngineSyncRobertFinished(bool success)
575579 emit syncRobertResult (success);
576580}
577581
578- void Backend::onEngineProtocolStatusChanged (const QVector<types::ProtocolStatus> &status)
582+ void Backend::onEngineProtocolStatusChanged (const QVector<types::ProtocolStatus> &status, bool isAutomaticMode )
579583{
580- emit protocolStatusChanged (status);
584+ emit protocolStatusChanged (status, isAutomaticMode );
581585}
582586
583587void Backend::onEngineEmergencyConnected ()
@@ -889,10 +893,12 @@ void Backend::sendSplitTunneling(const types::SplitTunneling &st)
889893 QStringList ips;
890894 QStringList hosts;
891895 for (int i = 0 ; i < st.networkRoutes .size (); ++i) {
892- if (st.networkRoutes [i].type == SPLIT_TUNNELING_NETWORK_ROUTE_TYPE_IP) {
893- ips << st.networkRoutes [i].name ;
894- } else if (st.networkRoutes [i].type == SPLIT_TUNNELING_NETWORK_ROUTE_TYPE_HOSTNAME) {
895- hosts << st.networkRoutes [i].name ;
896+ if (st.networkRoutes [i].active ) {
897+ if (st.networkRoutes [i].type == SPLIT_TUNNELING_NETWORK_ROUTE_TYPE_IP) {
898+ ips << st.networkRoutes [i].name ;
899+ } else if (st.networkRoutes [i].type == SPLIT_TUNNELING_NETWORK_ROUTE_TYPE_HOSTNAME) {
900+ hosts << st.networkRoutes [i].name ;
901+ }
896902 }
897903 }
898904
@@ -1075,4 +1081,3 @@ void Backend::fetchControldDevices(const QString &apiKey)
10751081{
10761082 engine_->fetchControldDevices (apiKey);
10771083}
1078-
0 commit comments