feat(mqtt): distinguish mqtt error domains

This commit is contained in:
shimun 2024-05-10 11:38:24 +02:00
parent 97934dc6f8
commit 3428419c51
Signed by: shimun
GPG Key ID: E0420647856EA39E

View File

@ -23,7 +23,8 @@ pub enum SendError {
NXDomain(&'static str),
Tls(TlsError),
Connect(ConnectError),
MqttReason(ReasonCode),
MqttConnect(ReasonCode),
MqttPublish(ReasonCode),
Timeout(TimeoutError),
}
@ -64,7 +65,7 @@ macro_rules! from_impl {
from_impl!(DnsError, Dns);
from_impl!(TlsError, Tls);
from_impl!(ConnectError, Connect);
from_impl!(ReasonCode, MqttReason);
from_impl!(ReasonCode, MqttConnect);
from_impl!(TimeoutError, Timeout);
const MQTT_SERVER_HOSTNAME: &str = "mqtt.shimun.net";
@ -182,7 +183,8 @@ pub async fn send_message(
rust_mqtt::packet::v5::publish_packet::QualityOfService::QoS1,
true,
)
.await?;
.await
.map_err(SendError::MqttPublish)?;
}
let after_mqtt_pub = Instant::now();
info!(