Skip to content

Commit

Permalink
Bump embassy dependencies to newly released versions
Browse files Browse the repository at this point in the history
  • Loading branch information
MathiasKoch committed Jan 13, 2025
1 parent 7e7eab8 commit beb6a9b
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 43 deletions.
4 changes: 2 additions & 2 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ embedded-mqtt = { git = "ssh://[email protected]/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"

Expand All @@ -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"] }
Expand Down
60 changes: 19 additions & 41 deletions src/provisioning/mod.rs
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand All @@ -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::<CreateKeysAndCertificateResponse>(format, &mut message)?;

credential_handler
.store_credentials(Credentials {
Expand All @@ -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::<CreateCertificateFromCsrResponse>(
format,
message.payload_mut(),
)?;

credential_handler
.store_credentials(Credentials {
Expand All @@ -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 => {
Expand Down Expand Up @@ -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::<RegisterThingResponse<'_, C>>(
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 => {
Expand Down Expand Up @@ -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<R, Error> {
trace!(
"Accepted Topic {:?}. Payload len: {:?}",
payload_format,
message.payload().len()
);

Ok(match payload_format {
#[cfg(feature = "provision_cbor")]
PayloadFormat::Cbor => minicbor_serde::from_slice::<R>(message.payload_mut())?,
PayloadFormat::Json => serde_json_core::from_slice::<R>(message.payload())?.0,
PayloadFormat::Cbor => minicbor_serde::from_slice::<R>(payload)?,
PayloadFormat::Json => serde_json_core::from_slice::<R>(payload)?.0,
})
}

fn handle_error<M: RawMutex, B: BufferProvider>(
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::<ErrorResponse>(message.payload_mut())?
}
PayloadFormat::Json => {
serde_json_core::from_slice::<ErrorResponse>(message.payload())?.0
}
PayloadFormat::Cbor => minicbor_serde::from_slice::<ErrorResponse>(payload)?,
PayloadFormat::Json => serde_json_core::from_slice::<ErrorResponse>(payload)?.0,
};

error!("{:?}", response);
Expand Down

0 comments on commit beb6a9b

Please sign in to comment.