@@ -34,27 +34,13 @@ async fn main() -> Result<(), BoxError> {
3434 // #[cfg(debug_assertions)]
3535 // env_logger::Builder::from_env(env_logger::Env::default().default_filter_or("debug")).init();
3636
37- // Check for root privileges on Linux
38- #[ cfg( target_os = "linux" ) ]
39- if !run_as:: is_elevated ( ) {
40- let program_name = std:: env:: args ( ) . next ( ) . unwrap_or_else ( || "overtls-gui" . to_string ( ) ) ;
41- let info = format ! ( "This application requires root privileges to run on Linux.\n \n Please run with: \n sudo {program_name}\n \n " ) ;
42- eprint ! ( "{info}" ) ;
43- rfd:: MessageDialog :: new ( )
44- . set_title ( "Error" )
45- . set_description ( info)
46- . set_level ( rfd:: MessageLevel :: Error )
47- . show ( ) ;
48- std:: process:: exit ( 1 ) ;
49- }
50-
5137 let ( tx, rx) = std:: sync:: mpsc:: channel ( ) ;
5238
5339 let state = states_manager:: load_app_state ( ) ;
5440 let system_settings = state. system_settings . clone ( ) . unwrap_or_default ( ) ;
5541
5642 if let Err ( e) = log:: set_boxed_logger ( Box :: new ( system_settings. create_logger ( tx) ) ) {
57- eprintln ! ( "Failed to set logger: {e}" ) ;
43+ log :: warn !( "Failed to set logger: {e}" ) ;
5844 }
5945 // Note: No longer use log::set_max_level, as it is now controlled by the Logger internally
6046 log:: set_max_level ( log:: LevelFilter :: Trace ) ;
@@ -331,6 +317,7 @@ async fn main() -> Result<(), BoxError> {
331317 Ok ( json_str) => {
332318 if std:: fs:: write ( & path, json_str) . is_ok ( ) {
333319 log:: debug!( "Node exported to: {}" , path. display( ) ) ;
320+ states_manager:: set_file_owner_if_needed ( & path) ;
334321 state_clone. borrow_mut ( ) . set_current_path ( path. parent ( ) . unwrap_or ( & origin_path) ) ;
335322 } else {
336323 rfd:: MessageDialog :: new ( )
@@ -652,6 +639,7 @@ async fn main() -> Result<(), BoxError> {
652639 . unwrap_or ( false ) ;
653640 state. borrow_mut ( ) . system_settings = Some ( new_settings) ;
654641 if tun2proxy_enable && !run_as:: is_elevated ( ) {
642+ save_final_app_state ( & state, & remote_nodes, & win, & current_node_index) ?;
655643 if let Ok ( status) = core:: restart_as_admin ( ) {
656644 log:: debug!( "Restarted as admin with status code {status}, exiting current instance." ) ;
657645 :: fltk:: app:: quit ( ) ;
0 commit comments