From beb6a9b0de278559957ee77c664ff2eceda7c56a Mon Sep 17 00:00:00 2001 From: Mathias Date: Mon, 13 Jan 2025 08:19:00 +0100 Subject: [PATCH] Bump embassy dependencies to newly released versions --- Cargo.toml | 4 +-- src/provisioning/mod.rs | 60 +++++++++++++---------------------------- 2 files changed, 21 insertions(+), 43 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index 862531f..a9c4dd0 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -37,7 +37,7 @@ embedded-mqtt = { git = "ssh://git@github.com/FactbirdHQ/embedded-mqtt", rev = " futures = { version = "0.3.28", default-features = false } -embassy-time = { version = "0.3" } +embassy-time = { version = "0.4" } embassy-sync = "0.6" embassy-futures = "0.1" @@ -62,7 +62,7 @@ tokio = { version = "1.33", default-features = false, features = [ ] } tokio-native-tls = { version = "0.3.1" } embassy-futures = { version = "0.1.0" } -embassy-time = { version = "0.3", features = ["log", "std", "generic-queue"] } +embassy-time = { version = "0.4", features = ["log", "std", "generic-queue"] } embedded-io-adapters = { version = "0.6.0", features = ["tokio-1"] } ecdsa = { version = "0.16", features = ["pkcs8", "pem"] } diff --git a/src/provisioning/mod.rs b/src/provisioning/mod.rs index e0bcd95..3327762 100644 --- a/src/provisioning/mod.rs +++ b/src/provisioning/mod.rs @@ -136,8 +136,6 @@ impl FleetProvisioner { where C: DeserializeOwned, { - use embedded_mqtt::SliceBufferProvider; - let mut create_subscription = Self::begin(mqtt, csr, payload_format).await?; let mut message = create_subscription .next() @@ -146,11 +144,8 @@ impl FleetProvisioner { let ownership_token = match Topic::from_str(message.topic_name()) { Some(Topic::CreateKeysAndCertificateAccepted(format)) => { - let response = Self::deserialize::< - CreateKeysAndCertificateResponse, - M, - SliceBufferProvider<'a>, - >(format, &mut message)?; + let response = + Self::deserialize::(format, &mut message)?; credential_handler .store_credentials(Credentials { @@ -164,11 +159,10 @@ impl FleetProvisioner { } Some(Topic::CreateCertificateFromCsrAccepted(format)) => { - let response = Self::deserialize::< - CreateCertificateFromCsrResponse, - M, - SliceBufferProvider<'a>, - >(format, &mut message)?; + let response = Self::deserialize::( + format, + message.payload_mut(), + )?; credential_handler .store_credentials(Credentials { @@ -186,7 +180,7 @@ impl FleetProvisioner { Topic::CreateKeysAndCertificateRejected(format) | Topic::CreateCertificateFromCsrRejected(format), ) => { - return Err(Self::handle_error(format, message).unwrap_err()); + return Err(Self::handle_error(format, message.payload_mut()).unwrap_err()); } t => { @@ -259,18 +253,17 @@ impl FleetProvisioner { match Topic::from_str(message.topic_name()) { Some(Topic::RegisterThingAccepted(_, format)) => { - let response = Self::deserialize::< - RegisterThingResponse<'_, C>, - M, - SliceBufferProvider<'a>, - >(format, &mut message)?; + let response = Self::deserialize::>( + format, + message.payload_mut(), + )?; Ok(response.device_configuration) } // Error happened! Some(Topic::RegisterThingRejected(_, format)) => { - Err(Self::handle_error(format, message).unwrap_err()) + Err(Self::handle_error(format, message.payload_mut()).unwrap_err()) } t => { @@ -387,37 +380,22 @@ impl FleetProvisioner { } } - fn deserialize<'a, R: Deserialize<'a>, M: RawMutex, B: BufferProvider>( + fn deserialize<'a, R: Deserialize<'a>>( payload_format: PayloadFormat, - message: &'a mut Message<'_, M, B>, + payload: &'a mut [u8], ) -> Result { - trace!( - "Accepted Topic {:?}. Payload len: {:?}", - payload_format, - message.payload().len() - ); - Ok(match payload_format { #[cfg(feature = "provision_cbor")] - PayloadFormat::Cbor => minicbor_serde::from_slice::(message.payload_mut())?, - PayloadFormat::Json => serde_json_core::from_slice::(message.payload())?.0, + PayloadFormat::Cbor => minicbor_serde::from_slice::(payload)?, + PayloadFormat::Json => serde_json_core::from_slice::(payload)?.0, }) } - fn handle_error( - format: PayloadFormat, - mut message: Message<'_, M, B>, - ) -> Result<(), Error> { - error!(">> {:?}", message.topic_name()); - + fn handle_error(format: PayloadFormat, payload: &mut [u8]) -> Result<(), Error> { let response = match format { #[cfg(feature = "provision_cbor")] - PayloadFormat::Cbor => { - minicbor_serde::from_slice::(message.payload_mut())? - } - PayloadFormat::Json => { - serde_json_core::from_slice::(message.payload())?.0 - } + PayloadFormat::Cbor => minicbor_serde::from_slice::(payload)?, + PayloadFormat::Json => serde_json_core::from_slice::(payload)?.0, }; error!("{:?}", response);