aboutsummaryrefslogtreecommitdiffstats
path: root/src/connection.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/connection.rs')
-rw-r--r--src/connection.rs15
1 files changed, 14 insertions, 1 deletions
diff --git a/src/connection.rs b/src/connection.rs
index 89f382f..2b70747 100644
--- a/src/connection.rs
+++ b/src/connection.rs
@@ -27,8 +27,11 @@ impl Connection {
match self {
Connection::Encrypted(j) => Ok(j),
Connection::Unencrypted(mut j) => {
+ j.start_stream().await?;
info!("upgrading connection to tls");
- Ok(j.starttls().await?)
+ j.get_features().await?;
+ let j = j.starttls().await?;
+ Ok(j)
}
}
}
@@ -179,4 +182,14 @@ mod tests {
async fn connect() {
Connection::connect("blos.sm").await.unwrap();
}
+
+ #[test(tokio::test)]
+ async fn test_tls() {
+ Connection::connect("blos.sm")
+ .await
+ .unwrap()
+ .ensure_tls()
+ .await
+ .unwrap();
+ }
}