From 8d6b37297b05496aa696fde61bf477b55962254e Mon Sep 17 00:00:00 2001 From: Devdutt Shenoi Date: Thu, 9 May 2024 11:18:22 +0530 Subject: [PATCH] fix: ordering of events as mentioned in #860 --- rumqttc/src/state.rs | 3 ++- rumqttc/src/v5/state.rs | 5 +++-- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/rumqttc/src/state.rs b/rumqttc/src/state.rs index 408741e35..81541e46d 100644 --- a/rumqttc/src/state.rs +++ b/rumqttc/src/state.rs @@ -165,6 +165,8 @@ impl MqttState { &mut self, packet: Incoming, ) -> Result, StateError> { + self.events.push_back(Event::Incoming(packet.clone())); + let outgoing = match &packet { Incoming::PingResp => self.handle_incoming_pingresp()?, Incoming::Publish(publish) => self.handle_incoming_publish(publish)?, @@ -179,7 +181,6 @@ impl MqttState { return Err(StateError::WrongPacket); } }; - self.events.push_back(Event::Incoming(packet)); self.last_incoming = Instant::now(); Ok(outgoing) diff --git a/rumqttc/src/v5/state.rs b/rumqttc/src/v5/state.rs index 854aa7b0f..115191034 100644 --- a/rumqttc/src/v5/state.rs +++ b/rumqttc/src/v5/state.rs @@ -65,7 +65,7 @@ pub enum StateError { #[error("Connection failed with reason '{reason:?}' ")] ConnFail { reason: ConnectReturnCode }, #[error("Connection closed by peer abruptly")] - ConnectionAborted + ConnectionAborted, } impl From for StateError { @@ -217,6 +217,8 @@ impl MqttState { &mut self, mut packet: Incoming, ) -> Result, StateError> { + self.events.push_back(Event::Incoming(packet.to_owned())); + let outgoing = match &mut packet { Incoming::PingResp(_) => self.handle_incoming_pingresp()?, Incoming::Publish(publish) => self.handle_incoming_publish(publish)?, @@ -234,7 +236,6 @@ impl MqttState { } }; - self.events.push_back(Event::Incoming(packet)); self.last_incoming = Instant::now(); Ok(outgoing) }