diff --git a/src/client.rs b/src/client.rs index f11e9ec..0f33a94 100644 --- a/src/client.rs +++ b/src/client.rs @@ -74,7 +74,7 @@ impl Client { move |result| match result { Ok(socket_connection) => { match Connection::build( - socket_connection, + socket_connection.clone(), network_address, client_certificate, server_certificates, @@ -87,18 +87,20 @@ impl Client { move |result| { callback(match result { Ok(response) => Ok(response), - Err(e) => Err(Error::Connection(e)), + Err(e) => Err(Error::Request(e)), }) }, ), - Err(e) => callback(Err(Error::Connection(e))), + Err(e) => { + callback(Err(Error::Connection(socket_connection, e))) + } } } Err(e) => callback(Err(Error::Connect(e))), } }) } - Err(e) => callback(Err(Error::Request(e))), + Err(e) => callback(Err(Error::NetworkAddress(e))), } } diff --git a/src/client/error.rs b/src/client/error.rs index 6083e77..b49d65a 100644 --- a/src/client/error.rs +++ b/src/client/error.rs @@ -3,21 +3,25 @@ use std::fmt::{Display, Formatter, Result}; #[derive(Debug)] pub enum Error { Connect(glib::Error), - Connection(crate::client::connection::Error), - Request(crate::client::connection::request::Error), + Connection(gio::SocketConnection, crate::client::connection::Error), + NetworkAddress(crate::client::connection::request::Error), + Request(crate::client::connection::Error), } impl Display for Error { fn fmt(&self, f: &mut Formatter) -> Result { match self { - Self::Connection(e) => { - write!(f, "Connection error: {e}") - } Self::Connect(e) => { write!(f, "Connect error: {e}") } + Self::Connection(_, e) => { + write!(f, "Connection init error: {e}") + } + Self::NetworkAddress(e) => { + write!(f, "Network address error: {e}") + } Self::Request(e) => { - write!(f, "Request error: {e}") + write!(f, "Connection error: {e}") } } }