@@ -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