From 025e09aca621b1215c33b94b9c01b8a1eda2bc3f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jonas=20Sch=C3=A4fer?= Date: Sat, 10 May 2025 09:25:28 +0200 Subject: [PATCH] tokio-xmpp: explicitly set default CryptoProvider in all examples This way, we don't end up with breakage if rustls is built with more than one provider enabled. This can (and does) happen if a transitive dependency (such as reqwest *hinthint*) depends on a specific, non-default rustls backend. --- tokio-xmpp/examples/contact_addr.rs | 7 ++++++- tokio-xmpp/examples/download_avatars.rs | 7 ++++++- tokio-xmpp/examples/echo_bot.rs | 7 ++++++- tokio-xmpp/examples/echo_component.rs | 7 ++++++- tokio-xmpp/examples/echo_server.rs | 6 ++++++ tokio-xmpp/examples/keep_connection.rs | 6 ++++++ 6 files changed, 36 insertions(+), 4 deletions(-) diff --git a/tokio-xmpp/examples/contact_addr.rs b/tokio-xmpp/examples/contact_addr.rs index 584250f17db26f0f501b6076e3a5979510d4c37e..0b9bc9ac5c3cb47d4f0bf56005add6fe07f06513 100644 --- a/tokio-xmpp/examples/contact_addr.rs +++ b/tokio-xmpp/examples/contact_addr.rs @@ -2,7 +2,7 @@ use futures::stream::StreamExt; use std::env::args; use std::process::exit; use std::str::FromStr; -use tokio_xmpp::{Client, IqRequest, IqResponse}; +use tokio_xmpp::{rustls, Client, IqRequest, IqResponse}; use xmpp_parsers::{ disco::{DiscoInfoQuery, DiscoInfoResult}, jid::{BareJid, Jid}, @@ -14,6 +14,11 @@ use xmpp_parsers::{ async fn main() { env_logger::init(); + #[cfg(feature = "tls-rust")] + rustls::crypto::aws_lc_rs::default_provider() + .install_default() + .expect("failed to install rustls crypto provider"); + let args: Vec = args().collect(); if args.len() != 4 { println!("Usage: {} ", args[0]); diff --git a/tokio-xmpp/examples/download_avatars.rs b/tokio-xmpp/examples/download_avatars.rs index cd595383741ed58f4287db5af007571249de8b0a..25d714e85c9fe425cfa2331c85fd3fa920036a98 100644 --- a/tokio-xmpp/examples/download_avatars.rs +++ b/tokio-xmpp/examples/download_avatars.rs @@ -4,7 +4,7 @@ use std::fs::{create_dir_all, File}; use std::io::{self, Write}; use std::process::exit; use std::str::FromStr; -use tokio_xmpp::{Client, Stanza}; +use tokio_xmpp::{rustls, Client, Stanza}; use xmpp_parsers::{ avatar::{Data as AvatarData, Metadata as AvatarMetadata}, caps::{compute_disco, hash_caps, Caps}, @@ -26,6 +26,11 @@ use xmpp_parsers::{ async fn main() { env_logger::init(); + #[cfg(feature = "tls-rust")] + rustls::crypto::aws_lc_rs::default_provider() + .install_default() + .expect("failed to install rustls crypto provider"); + let args: Vec = args().collect(); if args.len() != 3 { println!("Usage: {} ", args[0]); diff --git a/tokio-xmpp/examples/echo_bot.rs b/tokio-xmpp/examples/echo_bot.rs index 1ea2bc4522cd1e659c0df2473dec243ea649cd13..45c4b1d7025b3ec611b279da0009ca52b48477a5 100644 --- a/tokio-xmpp/examples/echo_bot.rs +++ b/tokio-xmpp/examples/echo_bot.rs @@ -2,7 +2,7 @@ use futures::stream::StreamExt; use std::env::args; use std::process::exit; use std::str::FromStr; -use tokio_xmpp::Client; +use tokio_xmpp::{rustls, Client}; use xmpp_parsers::jid::{BareJid, Jid}; use xmpp_parsers::message::{Lang, Message, MessageType}; use xmpp_parsers::presence::{Presence, Show as PresenceShow, Type as PresenceType}; @@ -11,6 +11,11 @@ use xmpp_parsers::presence::{Presence, Show as PresenceShow, Type as PresenceTyp async fn main() { env_logger::init(); + #[cfg(feature = "tls-rust")] + rustls::crypto::aws_lc_rs::default_provider() + .install_default() + .expect("failed to install rustls crypto provider"); + let args: Vec = args().collect(); if args.len() != 3 { println!("Usage: {} ", args[0]); diff --git a/tokio-xmpp/examples/echo_component.rs b/tokio-xmpp/examples/echo_component.rs index fffa8fbe13f87abec4b8eb190a86ec2a09c1c5ef..ff43758f766e2adc0835586a8442c02b201996b1 100644 --- a/tokio-xmpp/examples/echo_component.rs +++ b/tokio-xmpp/examples/echo_component.rs @@ -6,12 +6,17 @@ use xmpp_parsers::jid::Jid; use xmpp_parsers::message::{Lang, Message, MessageType}; use xmpp_parsers::presence::{Presence, Show as PresenceShow, Type as PresenceType}; -use tokio_xmpp::{connect::DnsConfig, Component}; +use tokio_xmpp::{connect::DnsConfig, rustls, Component}; #[tokio::main] async fn main() { env_logger::init(); + #[cfg(feature = "tls-rust")] + rustls::crypto::aws_lc_rs::default_provider() + .install_default() + .expect("failed to install rustls crypto provider"); + let args: Vec = args().collect(); if args.len() < 3 || args.len() > 4 { println!("Usage: {} [server:port]", args[0]); diff --git a/tokio-xmpp/examples/echo_server.rs b/tokio-xmpp/examples/echo_server.rs index e779ab203dfaa31fd7665eec1df52b85c5c8f9d3..a4729d1b942bcb97b0f053f4f09aa28a508b0e65 100644 --- a/tokio-xmpp/examples/echo_server.rs +++ b/tokio-xmpp/examples/echo_server.rs @@ -4,11 +4,17 @@ use tokio::{self, io, net::TcpSocket}; use tokio_xmpp::{ minidom::Element, parsers::stream_features::StreamFeatures, + rustls, xmlstream::{accept_stream, StreamHeader, Timeouts}, }; #[tokio::main] async fn main() -> Result<(), io::Error> { + #[cfg(feature = "tls-rust")] + rustls::crypto::aws_lc_rs::default_provider() + .install_default() + .expect("failed to install rustls crypto provider"); + // TCP socket let address = "127.0.0.1:5222".parse().unwrap(); let socket = TcpSocket::new_v4()?; diff --git a/tokio-xmpp/examples/keep_connection.rs b/tokio-xmpp/examples/keep_connection.rs index bb64fc4d1fcf50849368e83f482b8c17b0815114..8ba77250537a39a4221257cf61b71af2ec341474 100644 --- a/tokio-xmpp/examples/keep_connection.rs +++ b/tokio-xmpp/examples/keep_connection.rs @@ -26,6 +26,7 @@ use tokio_xmpp::{ jid::{BareJid, Jid}, ping, }, + rustls, stanzastream::StanzaStream, xmlstream::Timeouts, }; @@ -34,6 +35,11 @@ use tokio_xmpp::{ async fn main() { env_logger::init(); + #[cfg(feature = "tls-rust")] + rustls::crypto::aws_lc_rs::default_provider() + .install_default() + .expect("failed to install rustls crypto provider"); + let args: Vec = args().collect(); if args.len() != 3 { println!("Usage: {} ", args[0]);