diff --git a/Cargo.toml b/Cargo.toml index 081ffd9..29b08f6 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,6 +1,6 @@ [package] name = "rust-mqtt" -version = "0.1.2" +version = "0.1.3" authors = ["Ondrej Babec "] edition = "2021" resolver = "2" @@ -28,4 +28,5 @@ serial_test = "0.6.0" [features] default = ["std"] std = ["tokio", "log"] -no_std = ["defmt"] \ No newline at end of file +no_std = ["defmt"] +tls = [] \ No newline at end of file diff --git a/src/client/client.rs b/src/client/client.rs index a55f17a..8a948eb 100644 --- a/src/client/client.rs +++ b/src/client/client.rs @@ -478,7 +478,7 @@ where } } - pub async fn send_ping_v5<'b>(&'b mut self) -> Result<(), ReasonCode> { + async fn send_ping_v5<'b>(&'b mut self) -> Result<(), ReasonCode> { if self.connection.is_none() { return Err(ReasonCode::NetworkError); } @@ -513,6 +513,7 @@ where } } +#[cfg(not(feature = "tls"))] async fn receive_packet<'c, T: NetworkConnection>( buffer: &mut [u8], buffer_len: usize, @@ -548,7 +549,7 @@ async fn receive_packet<'c, T: NetworkConnection>( } } } - + trace!("Lenght done!"); let rem_len_len = i; i = 0; if let Ok(l) = VariableByteIntegerDecoder::decode(rem_len.unwrap()) { @@ -575,3 +576,23 @@ async fn receive_packet<'c, T: NetworkConnection>( } } } + +#[cfg(feature = "tls")] +async fn receive_packet<'c, T: NetworkConnection>( + buffer: &mut [u8], + buffer_len: usize, + recv_buffer: &mut [u8], + conn: &'c mut T, +) -> Result { + trace!("Reading packet"); + let mut writer = BuffWriter::new(buffer, buffer_len); + let len = conn + .receive(recv_buffer) + .await?; + if let Err(_e) = writer.insert_ref(len, &recv_buffer[writer.position..(writer.position + len)]) + { + error!("Error occurred during write to buffer!"); + return Err(BuffError); + } + Ok(len) +} diff --git a/src/network/mod.rs b/src/network/mod.rs index d92244d..13b1c13 100644 --- a/src/network/mod.rs +++ b/src/network/mod.rs @@ -54,9 +54,7 @@ pub trait NetworkConnection { where Self: 'm; - type CloseFuture<'m>: Future> - where - Self: 'm; + type CloseFuture<'m>: Future>; fn send<'m>(&'m mut self, buffer: &'m [u8]) -> Self::SendFuture<'m>;