@@ -24,7 +24,7 @@ use ring::digest;
2424
2525pub ( crate ) async fn start_service ( service_name : & str , path : & str ) -> Result < Connection > {
2626 let ( gui_tx, gui_rx) = async_std:: channel:: bounded ( 1 ) ;
27- let lock: Arc < AsyncMutex < Sender < ( CredentialRequest , Sender < CredentialResponse > ) > > > = Arc :: new ( AsyncMutex :: new ( gui_tx) ) ;
27+ let lock: Arc < AsyncMutex < Sender < ( CredentialRequest , Sender < Option < CredentialResponse > > ) > > > = Arc :: new ( AsyncMutex :: new ( gui_tx) ) ;
2828 start_gui_thread ( gui_rx) ;
2929 connection:: Builder :: session ( ) ?
3030 . name ( service_name) ?
@@ -33,7 +33,7 @@ pub(crate) async fn start_service(service_name: &str, path: &str) -> Result<Conn
3333 . await
3434}
3535
36- fn start_gui_thread ( rx : Receiver < ( CredentialRequest , Sender < CredentialResponse > ) > ) {
36+ fn start_gui_thread ( rx : Receiver < ( CredentialRequest , Sender < Option < CredentialResponse > > ) > ) {
3737 thread:: Builder :: new ( )
3838 . name ( "gui" . into ( ) )
3939 . spawn ( move || {
@@ -60,7 +60,7 @@ fn start_gui_thread(rx: Receiver<(CredentialRequest, Sender<CredentialResponse>)
6060
6161 async_std:: task:: block_on ( event_loop. cancel ( ) ) ;
6262 let lock = data. lock ( ) . unwrap ( ) ;
63- let response = lock. as_ref ( ) . unwrap ( ) . clone ( ) ;
63+ let response = lock. as_ref ( ) . cloned ( ) ;
6464 response_tx. send_blocking ( response) . unwrap ( ) ;
6565 }
6666 } )
@@ -84,7 +84,7 @@ fn start_gtk_app(tx_event: Sender<ViewEvent>, rx_update: Receiver<ViewUpdate>) {
8484}
8585
8686struct CredentialManager {
87- app_lock : Arc < AsyncMutex < Sender < ( CredentialRequest , Sender < CredentialResponse > ) > > > ,
87+ app_lock : Arc < AsyncMutex < Sender < ( CredentialRequest , Sender < Option < CredentialResponse > > ) > > > ,
8888}
8989
9090#[ interface( name = "xyz.iinuwa.credentials.CredentialManagerUi1" ) ]
@@ -115,7 +115,7 @@ impl CredentialManager {
115115 let ( data_tx, data_rx) = async_std:: channel:: bounded ( 1 ) ;
116116 tx. send ( ( request, data_tx) ) . await . unwrap ( ) ;
117117 let data_rx = Arc :: new ( data_rx) ;
118- if let CredentialResponse :: CreatePublicKeyCredentialResponse ( cred_response) = data_rx. recv ( ) . await . unwrap ( ) {
118+ if let Some ( CredentialResponse :: CreatePublicKeyCredentialResponse ( cred_response) ) = data_rx. recv ( ) . await . unwrap ( ) {
119119 let public_key_response = CreatePublicKeyCredentialResponse :: try_from_ctap2_response ( & cred_response, client_data_json) ?;
120120 Ok ( public_key_response. into ( ) )
121121 }
@@ -169,7 +169,7 @@ impl CredentialManager {
169169 tx. send ( ( request, data_tx) ) . await . unwrap ( ) ;
170170 let data_rx = Arc :: new ( data_rx) ;
171171 match data_rx. recv ( ) . await {
172- Ok ( CredentialResponse :: GetPublicKeyCredentialResponse ( cred_response) ) => {
172+ Ok ( Some ( CredentialResponse :: GetPublicKeyCredentialResponse ( cred_response) ) ) => {
173173 let public_key_response = GetPublicKeyCredentialResponse :: try_from_ctap2_response ( & cred_response, client_data_json) ?;
174174 Ok ( public_key_response. into ( ) )
175175 } ,
0 commit comments