Merge pull request #646 from mcr/fix-mbedtls-connector

Fix mbedtls connector
This commit is contained in:
Martin Algesten
2023-08-11 08:55:13 +02:00
committed by GitHub
2 changed files with 8 additions and 7 deletions

View File

@@ -5,5 +5,5 @@ edition = "2021"
[dependencies] [dependencies]
mbedtls = { version = "0.8.1" } mbedtls = { version = "0.11.0" }
ureq = { path = "../.." } ureq = { path = "../.." }

View File

@@ -1,3 +1,5 @@
// This requires mbedtls crate 0.11.0 or newer due to
// new Context<T> parameter
use std::fmt; use std::fmt;
use std::io; use std::io;
use ureq::{Error, ReadWrite, TlsConnector}; use ureq::{Error, ReadWrite, TlsConnector};
@@ -14,7 +16,7 @@ fn entropy_new() -> mbedtls::rng::OsEntropy {
} }
pub struct MbedTlsConnector { pub struct MbedTlsConnector {
context: Arc<Mutex<Context>>, context: Arc<Mutex<Context<Box<dyn ReadWrite>>>>,
} }
#[derive(Debug)] #[derive(Debug)]
@@ -59,9 +61,8 @@ impl TlsConnector for MbedTlsConnector {
io: Box<dyn ReadWrite>, io: Box<dyn ReadWrite>,
) -> Result<Box<dyn ReadWrite>, Error> { ) -> Result<Box<dyn ReadWrite>, Error> {
let mut ctx = self.context.lock().unwrap(); let mut ctx = self.context.lock().unwrap();
let sync = SyncIo(Mutex::new(io)); match ctx.establish(io, None) {
match ctx.establish(sync, None) { Err(e) => {
Err(_) => {
let io_err = io::Error::new(io::ErrorKind::InvalidData, MbedTlsError); let io_err = io::Error::new(io::ErrorKind::InvalidData, MbedTlsError);
return Err(io_err.into()); return Err(io_err.into());
} }
@@ -92,7 +93,7 @@ impl io::Write for SyncIo {
} }
struct MbedTlsStream { struct MbedTlsStream {
context: Arc<Mutex<Context>>, //tcp_stream: TcpStream, context: Arc<Mutex<Context<Box<dyn ReadWrite>>>>, //tcp_stream: TcpStream,
} }
impl fmt::Debug for MbedTlsStream { impl fmt::Debug for MbedTlsStream {