From 6428695a6b9e943d57604ad87714d6f49654cbb0 Mon Sep 17 00:00:00 2001 From: Val Packett Date: Wed, 16 Jul 2025 04:37:13 -0300 Subject: [PATCH] rewrite: handle NoReplyExpected flag check --- sidebus-common/src/rewrite.rs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/sidebus-common/src/rewrite.rs b/sidebus-common/src/rewrite.rs index a21e255..6f73557 100644 --- a/sidebus-common/src/rewrite.rs +++ b/sidebus-common/src/rewrite.rs @@ -1,5 +1,7 @@ //! Utility for rewriting zbus::Messages (since they're immutable, we need to do this to "edit" them) +use tracing::trace; + pub struct RewriteMessage<'a> { builder: zbus::message::Builder<'a>, header: zbus::message::Header<'a>, @@ -30,7 +32,14 @@ impl<'a> RewriteMessage<'a> { .serial(header.primary().serial_num()) .endian(header.primary().endian_sig().into()); for flag in header.primary().flags().iter() { - builder = builder.with_flags(flag)?; + if original.message_type() != zbus::message::Type::MethodCall + && flag == zbus::message::Flags::NoReplyExpected + { + // clients like to set it on MethodReturn, but with_flags rejects that + trace!(type = ?original.message_type(), "NoReplyExpected flag on non-MethodCall"); + } else { + builder = builder.with_flags(flag)?; + } } if let Some(sender) = header.sender() { builder = builder.sender(sender)?;