@@ -7,13 +7,14 @@ use log::{debug, error, trace};
7
7
use std:: path:: Path ;
8
8
use std:: pin:: Pin ;
9
9
use std:: sync:: atomic:: { AtomicBool , Ordering } ;
10
- use std:: sync:: { Arc , Mutex } ;
10
+ use std:: sync:: Arc ;
11
11
use std:: { error, io, mem, ptr, str} ;
12
12
use tokio:: fs:: File ;
13
13
use tokio:: io:: { AsyncRead , AsyncReadExt , AsyncWrite , AsyncWriteExt } ;
14
14
use tokio:: net:: windows:: named_pipe:: ServerOptions ;
15
15
use tokio:: net:: { TcpListener , TcpStream } ;
16
16
use tokio:: process:: Command ;
17
+ use tokio:: sync:: Mutex ;
17
18
18
19
struct AgentMeta {
19
20
path : Option < String > ,
@@ -93,7 +94,7 @@ fn load_cygwin_port_nounce(buffer: &[u8]) -> io::Result<(u16, [u8; 16])> {
93
94
Err ( e) => Err ( report_data_err ( e) ) ,
94
95
} ;
95
96
96
- let end_pos = find ( & buffer, 0 , b' ' ) ?;
97
+ let end_pos = find ( buffer, 0 , b' ' ) ?;
97
98
let port = parse ( & buffer[ ..end_pos] , 10 ) ?;
98
99
99
100
if ( 1 ..=65535 ) . contains ( & port)
@@ -124,7 +125,7 @@ async fn load_port_nounce(path: &str) -> io::Result<(u16, [u8; 16])> {
124
125
if !Path :: new ( & path) . exists ( ) {
125
126
ping_gpg_agent ( ) . await ?;
126
127
}
127
- let mut f = File :: open ( & path. replace ( " \\ " , "/" ) ) . await ?;
128
+ let mut f = File :: open ( & path. replace ( '\\' , "/" ) ) . await ?;
128
129
let mut buffer = Vec :: with_capacity ( 50 ) ;
129
130
f. read_to_end ( & mut buffer) . await ?;
130
131
if buffer. starts_with ( b"!<socket >" ) {
@@ -237,7 +238,7 @@ where
237
238
238
239
let meta = meta. clone ( ) ;
239
240
let ( port, nounce) = {
240
- let mut m = meta. lock ( ) . unwrap ( ) ;
241
+ let mut m = meta. lock ( ) . await ;
241
242
if m. args . is_none ( ) {
242
243
if m. path . is_none ( ) {
243
244
m. path = Some ( load_gpg_socket_path ( SocketType :: Extra ) . await ?) ;
@@ -250,7 +251,7 @@ where
250
251
tokio:: spawn ( async move {
251
252
if let Err ( e) = delegate ( conn, port, nounce) . await {
252
253
error ! ( "failed to delegate stream: {:?}" , e) ;
253
- meta. lock ( ) . unwrap ( ) . args . take ( ) ;
254
+ meta. lock ( ) . await . args . take ( ) ;
254
255
}
255
256
} ) ;
256
257
}
0 commit comments