Merge pull request #646 from mcr/fix-mbedtls-connector
Fix mbedtls connector
This commit is contained in:
@@ -5,5 +5,5 @@ edition = "2021"
|
|||||||
|
|
||||||
|
|
||||||
[dependencies]
|
[dependencies]
|
||||||
mbedtls = { version = "0.8.1" }
|
mbedtls = { version = "0.11.0" }
|
||||||
ureq = { path = "../.." }
|
ureq = { path = "../.." }
|
||||||
@@ -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 {
|
||||||
|
|||||||
Reference in New Issue
Block a user