diff options
| author | Serguey Parkhomovsky <xindigo@gmail.com> | 2026-03-21 08:53:02 -0700 |
|---|---|---|
| committer | Serguey Parkhomovsky <xindigo@gmail.com> | 2026-03-21 08:53:02 -0700 |
| commit | 23f8be4a058ec421390e3274dba35ee152941ad3 (patch) | |
| tree | 0b54db3f20b76be8560a586eb8f5d8d13e26315b /src/main.rs | |
| parent | ab5823116b39682348fee3969246e24be21054c6 (diff) | |
Handle errors more cleanly
Diffstat (limited to 'src/main.rs')
| -rw-r--r-- | src/main.rs | 22 |
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"); |
