rewrite: handle NoReplyExpected flag check
This commit is contained in:
parent
d6d075ea34
commit
6428695a6b
1 changed files with 10 additions and 1 deletions
|
|
@ -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)?;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue