mirror of
				https://github.com/yuezk/GlobalProtect-openconnect.git
				synced 2025-05-20 07:26:58 -04:00 
			
		
		
		
	refactor: get portal config
This commit is contained in:
		| @@ -131,7 +131,7 @@ fn setup_webview( | ||||
| ) -> tauri::Result<()> { | ||||
|     window.with_webview(move |wv| { | ||||
|         let wv = wv.inner(); | ||||
|         let event_tx = event_tx.clone(); | ||||
|         let event_tx_clone = event_tx.clone(); | ||||
|  | ||||
|         if clear_cookies { | ||||
|             clear_webview_cookies(&wv); | ||||
| @@ -146,25 +146,22 @@ fn setup_webview( | ||||
|             // Empty URI indicates that an error occurred | ||||
|             if uri.is_empty() { | ||||
|                 warn!("Empty URI loaded"); | ||||
|                 if let Err(err) = event_tx.blocking_send(AuthEvent::Error(AuthError::TokenInvalid)) | ||||
|                 { | ||||
|                     warn!("Error sending event: {}", err); | ||||
|                 } | ||||
|                 send_auth_error(&event_tx_clone, AuthError::TokenInvalid); | ||||
|                 return; | ||||
|             } | ||||
|  | ||||
|             // TODO, redact URI | ||||
|             debug!("Loaded URI: {}", uri); | ||||
|  | ||||
|             if let Some(main_res) = wv.main_resource() { | ||||
|                 parse_auth_data(&main_res, event_tx.clone()); | ||||
|                 parse_auth_data(&main_res, event_tx_clone.clone()); | ||||
|             } else { | ||||
|                 warn!("No main_resource"); | ||||
|             } | ||||
|         }); | ||||
|  | ||||
|         wv.connect_load_failed(|_wv, event, err_msg, err| { | ||||
|             warn!("Load failed: {:?}, {}, {:?}", event, err_msg, err); | ||||
|         wv.connect_load_failed(move |_wv, event, _uri, err| { | ||||
|             warn!("Load failed: {:?}, {:?}", event, err); | ||||
|             send_auth_error(&event_tx, AuthError::TokenInvalid); | ||||
|             false | ||||
|         }); | ||||
|     }) | ||||
| @@ -175,9 +172,7 @@ fn setup_window(window: &Window, event_tx: mpsc::Sender<AuthEvent>) -> EventHand | ||||
|     window.on_window_event(move |event| { | ||||
|         if let CloseRequested { api, .. } = event { | ||||
|             api.prevent_close(); | ||||
|             if let Err(err) = event_tx_clone.blocking_send(AuthEvent::Cancel) { | ||||
|                 warn!("Error sending event: {}", err) | ||||
|             } | ||||
|             send_auth_event(&event_tx_clone, AuthEvent::Cancel); | ||||
|         } | ||||
|     }); | ||||
|  | ||||
| @@ -335,9 +330,7 @@ fn parse_auth_data(main_res: &WebResource, event_tx: mpsc::Sender<AuthEvent>) { | ||||
|                 } | ||||
|                 Err(err) => { | ||||
|                     debug!("Error reading auth data from HTML: {:?}", err); | ||||
|                     if let Err(err) = event_tx.blocking_send(AuthEvent::Error(err)) { | ||||
|                         warn!("Error sending event: {}", err) | ||||
|                     } | ||||
|                     send_auth_error(&event_tx, err); | ||||
|                 } | ||||
|             } | ||||
|         } | ||||
| @@ -395,7 +388,15 @@ fn parse_xml_tag(html: &str, tag: &str) -> Option<String> { | ||||
| } | ||||
|  | ||||
| fn send_auth_data(event_tx: &mpsc::Sender<AuthEvent>, auth_data: AuthData) { | ||||
|     if let Err(err) = event_tx.blocking_send(AuthEvent::Success(auth_data)) { | ||||
|     send_auth_event(event_tx, AuthEvent::Success(auth_data)); | ||||
| } | ||||
|  | ||||
| fn send_auth_error(event_tx: &mpsc::Sender<AuthEvent>, err: AuthError) { | ||||
|     send_auth_event(event_tx, AuthEvent::Error(err)); | ||||
| } | ||||
|  | ||||
| fn send_auth_event(event_tx: &mpsc::Sender<AuthEvent>, auth_event: AuthEvent) { | ||||
|     if let Err(err) = event_tx.blocking_send(auth_event) { | ||||
|         warn!("Error sending event: {}", err) | ||||
|     } | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user