summaryrefslogtreecommitdiff
path: root/src/main.rs
diff options
context:
space:
mode:
authorSerguey Parkhomovsky <xindigo@gmail.com>2026-03-21 08:53:02 -0700
committerSerguey Parkhomovsky <xindigo@gmail.com>2026-03-21 08:53:02 -0700
commit23f8be4a058ec421390e3274dba35ee152941ad3 (patch)
tree0b54db3f20b76be8560a586eb8f5d8d13e26315b /src/main.rs
parentab5823116b39682348fee3969246e24be21054c6 (diff)
Handle errors more cleanly
Diffstat (limited to 'src/main.rs')
-rw-r--r--src/main.rs22
1 files changed, 16 insertions, 6 deletions
diff --git a/src/main.rs b/src/main.rs
index f4fcc5f..dc16023 100644
--- a/src/main.rs
+++ b/src/main.rs
@@ -96,10 +96,16 @@ async fn poll_bambu(
mqttoptions.set_credentials("bblp", &access_code);
// Bambu printers use TLS with a self-signed certificate
- let connector = TlsConnector::builder()
+ let connector = match TlsConnector::builder()
.danger_accept_invalid_certs(true)
.build()
- .unwrap();
+ {
+ Ok(c) => c,
+ Err(e) => {
+ tracing::error!(name, error = %e, "Failed to build TLS connector for Bambu printer");
+ return;
+ }
+ };
mqttoptions.set_transport(Transport::tls_with_config(connector.into()));
let (client, mut eventloop) = AsyncClient::new(mqttoptions, 10);
@@ -108,12 +114,14 @@ async fn poll_bambu(
// eventloop.poll() yields back to Tokio when there's no data
match eventloop.poll().await {
Ok(Event::Incoming(Packet::ConnAck(_))) => {
- client
+ if let Err(e) = client
.subscribe(format!("device/{}/report", serial_number), QoS::AtMostOnce)
.await
- .unwrap();
+ {
+ tracing::error!(name, error = %e, "Failed to subscribe to Bambu MQTT topic");
+ }
// Send a request to push all values to us; otherwise we'll have to wait for the values to come in incremental updates.
- client
+ if let Err(e) = client
.publish(
format!("device/{}/request", serial_number),
QoS::AtMostOnce,
@@ -128,7 +136,9 @@ async fn poll_bambu(
}"#,
)
.await
- .unwrap();
+ {
+ tracing::error!(name, error = %e, "Failed to send pushall to Bambu printer");
+ }
}
Ok(Event::Incoming(Packet::Publish(p))) => {
tracing::debug!(payload = ?p.payload, "Received Bambu payload");