diff --git a/src/client/connection.rs b/src/client/connection.rs index b0a8a23..677ee52 100644 --- a/src/client/connection.rs +++ b/src/client/connection.rs @@ -65,6 +65,16 @@ impl Connection { Ok(()) } + /// Request force handshake for `Self` connection + /// * useful for certificate change in runtime + pub fn rehandshake(&self) -> Result<(), Error> { + match self.tls_client_connection()?.handshake(Cancellable::NONE) { + // @TODO shared `Cancellable` + Ok(()) => Ok(()), + Err(e) => Err(Error::Rehandshake(e)), + } + } + // Getters /// Upcast [IOStream](https://docs.gtk.org/gio/class.IOStream.html) @@ -78,6 +88,8 @@ impl Connection { } } + /// Get [TlsClientConnection](https://docs.gtk.org/gio/iface.TlsClientConnection.html) for `Self` + /// * compatible with user and guest sessions pub fn tls_client_connection(&self) -> Result { match self.tls_client_connection.clone() { // User session @@ -95,13 +107,6 @@ impl Connection { } } } - - pub fn rehandshake(&self) -> Result<(), Error> { - match self.tls_client_connection()?.handshake(Cancellable::NONE) { - Ok(()) => Ok(()), - Err(e) => Err(Error::Rehandshake(e)), - } - } } // Tools