use std::sync::Arc;
use native_tls::Protocol;
use rustls::version::TLS12;
use rustls::version::TLS13;
pub fn main() {
let mut root_store = rustls::RootCertStore::empty();
root_store.roots = webpki_roots::TLS_SERVER_ROOTS.iter().cloned().collect();
let protocol_versions = &[&TLS12, &TLS13];
let tls_config = rustls::ClientConfig::builder_with_protocol_versions(protocol_versions)
.with_root_certificates(root_store)
.with_no_client_auth();
let agent1 = ureq::builder().tls_config(Arc::new(tls_config)).build();
let response1 = agent1.get("https://httpbin.org/get").call().unwrap();
assert!(response1.status() == 200);
let tls_connector = native_tls::TlsConnector::builder()
.min_protocol_version(Some(Protocol::Tlsv12))
.max_protocol_version(Some(Protocol::Tlsv12))
.build()
.unwrap();
let agent2 = ureq::builder()
.tls_connector(Arc::new(tls_connector))
.build();
let response2 = agent2.get("https://httpbin.org/get").call().unwrap();
assert!(response2.status() == 200);
}