Skip to content

Commit 63145b1

Browse files
committed
fixed auto-connect bug
1 parent f574ca4 commit 63145b1

File tree

1 file changed

+16
-6
lines changed

1 file changed

+16
-6
lines changed

nord_nm_gui.py

Lines changed: 16 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,7 @@ def __init__(self):
3434
self.password = None
3535
self.sudo_password = None
3636
self.connection_name = None
37+
self.connected_server = None
3738
self.domain_list = []
3839
self.server_info_list = []
3940
self.login_ui()
@@ -534,6 +535,7 @@ def get_active_vpn(self):
534535
if self.server_info_list: # vpn connected successfully
535536
for server in self.server_info_list:
536537
if server_name == server.name:
538+
self.connected_server = server.name
537539
return True
538540
elif not self.server_info_list: # existing Nordvpn connection found
539541
self.connect_btn.hide()
@@ -557,12 +559,16 @@ def get_active_vpn(self):
557559
self.server_list.setCurrentItem(server_list_item[0])
558560
self.server_list.setFocus()
559561
self.connection_name = connection_name
562+
self.connected_server = server.name
560563
return False
561564
else:
562565
self.statusbar.showMessage("Warning! Unknown VPN connection found", 2000)
566+
self.repaint()
563567
return False
568+
564569
except subprocess.CalledProcessError:
565570
self.statusbar.showMessage("ERROR: Network Manager query error", 2000)
571+
self.repaint()
566572

567573
def randomize_mac(self):
568574
try:
@@ -681,8 +687,8 @@ def get_interfaces(self):
681687
self.statusbar.showMessage("ERROR Fetching interfaces")
682688

683689
def set_auto_connect(self):
690+
self.config.read(self.conf_path)
684691
interfaces = self.get_interfaces()
685-
686692
if interfaces:
687693
interface_string = '|'.join(interfaces)
688694
script =(
@@ -710,6 +716,8 @@ def set_auto_connect(self):
710716
p6 = subprocess.Popen(['sudo', '-S', 'chmod', '744', self.network_manager_path + 'auto_connect'], stdin=p5.stdout, stdout=subprocess.PIPE)
711717
p5.stdout.close()
712718
p6.stdout.close()
719+
self.config['SETTINGS']['auto_connect'] = 'True'
720+
self.write_conf()
713721
except Exception as ex:
714722
print(ex)
715723

@@ -742,7 +750,12 @@ def disable_auto_connect(self):
742750
except Exception as ex:
743751
print(ex)
744752

745-
elif self.auto_connect_box.isChecked() and self.get_active_vpn:
753+
elif self.auto_connect_box.isChecked() and self.get_active_vpn() and self.sudo_password:
754+
self.set_auto_connect()
755+
756+
elif self.auto_connect_box.isChecked() and self.get_active_vpn() and not self.sudo_password:
757+
self.sudo_dialog = self.get_sudo()
758+
self.sudo_dialog.exec_()
746759
self.set_auto_connect()
747760

748761
def set_kill_switch(self):
@@ -861,12 +874,9 @@ def connect(self):
861874
self.sudo_dialog = self.get_sudo()
862875
self.sudo_dialog.exec_()
863876
self.set_auto_connect()
864-
self.config['SETTINGS']['auto_connect'] = 'True'
865-
self.write_conf()
877+
866878
elif self.auto_connect_box.isChecked() and self.sudo_password: # sudo password exists in memory
867879
self.set_auto_connect()
868-
self.config['SETTINGS']['auto_connect'] = 'True'
869-
self.write_conf()
870880

871881
self.check_connection_validity()
872882
self.get_ovpn()

0 commit comments

Comments
 (0)