File tree Expand file tree Collapse file tree 3 files changed +7
-12
lines changed Expand file tree Collapse file tree 3 files changed +7
-12
lines changed Original file line number Diff line number Diff line change @@ -15,15 +15,14 @@ use async_trait::async_trait;
15
15
use tokio::net::UnixListener;
16
16
17
17
use ssh_agent_lib::agent::Agent;
18
+ use ssh_agent_lib::error::AgentError;
18
19
use ssh_agent_lib::proto::message::{Message, SignRequest};
19
20
20
21
struct MyAgent;
21
22
22
23
#[async_trait]
23
24
impl Agent for MyAgent {
24
- type Error = ();
25
-
26
- async fn handle(&self, message: Message) -> Result<Message, ()> {
25
+ async fn handle(&self, message: Message) -> Result<Message, AgentError> {
27
26
match message {
28
27
Message::SignRequest(request) => {
29
28
// get the signature by signing `request.data`
Original file line number Diff line number Diff line change @@ -3,6 +3,7 @@ use log::info;
3
3
use tokio:: net:: UnixListener ;
4
4
5
5
use ssh_agent_lib:: agent:: Agent ;
6
+ use ssh_agent_lib:: error:: AgentError ;
6
7
use ssh_agent_lib:: proto:: message:: { self , Message , SignRequest } ;
7
8
use ssh_agent_lib:: proto:: private_key:: { PrivateKey , RsaPrivateKey } ;
8
9
use ssh_agent_lib:: proto:: public_key:: PublicKey ;
@@ -147,9 +148,7 @@ impl KeyStorage {
147
148
148
149
#[ async_trait]
149
150
impl Agent for KeyStorage {
150
- type Error = ( ) ;
151
-
152
- async fn handle ( & self , message : Message ) -> Result < Message , ( ) > {
151
+ async fn handle ( & self , message : Message ) -> Result < Message , AgentError > {
153
152
self . handle_message ( message) . or_else ( |error| {
154
153
println ! ( "Error handling message - {:?}" , error) ;
155
154
Ok ( Message :: Failure )
Original file line number Diff line number Diff line change @@ -7,7 +7,6 @@ use tokio::io::{AsyncRead, AsyncWrite};
7
7
use tokio:: net:: { TcpListener , TcpStream , UnixListener , UnixStream } ;
8
8
use tokio_util:: codec:: { Decoder , Encoder , Framed } ;
9
9
10
- use std:: error:: Error ;
11
10
use std:: fmt;
12
11
use std:: io;
13
12
use std:: marker:: Unpin ;
@@ -111,11 +110,9 @@ impl ListeningSocket for TcpListener {
111
110
112
111
#[ async_trait]
113
112
pub trait Agent : ' static + Sync + Send + Sized {
114
- type Error : fmt :: Debug + Send + Sync ;
113
+ async fn handle ( & self , message : Message ) -> Result < Message , AgentError > ;
115
114
116
- async fn handle ( & self , message : Message ) -> Result < Message , Self :: Error > ;
117
-
118
- async fn listen < S > ( self , socket : S ) -> Result < ( ) , Box < dyn Error + Send + Sync > >
115
+ async fn listen < S > ( self , socket : S ) -> Result < ( ) , AgentError >
119
116
where
120
117
S : ListeningSocket + fmt:: Debug + Send ,
121
118
{
@@ -136,7 +133,7 @@ pub trait Agent: 'static + Sync + Send + Sized {
136
133
}
137
134
Err ( e) => {
138
135
error ! ( "Failed to accept socket; error = {:?}" , e) ;
139
- return Err ( Box :: new ( e) ) ;
136
+ return Err ( AgentError :: IO ( e) ) ;
140
137
}
141
138
}
142
139
}
You can’t perform that action at this time.
0 commit comments