<div dir="ltr">
Done: <a href="https://github.com/systemd/systemd/issues/16193">https://github.com/systemd/systemd/issues/16193</a>
</div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Jun 16, 2020 at 10:50 AM Lennart Poettering <<a href="mailto:lennart@poettering.net">lennart@poettering.net</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">On Mi, 10.06.20 18:24, Stanislav Angelovič (<a href="mailto:angelovic.s@gmail.com" target="_blank">angelovic.s@gmail.com</a>) wrote:<br>
<br>
> Hi folks,<br>
><br>
> sdbus-c++, a C++ library on top of sd-bus, is based on plain sd-bus<br>
> messages to implement the concept of Variant type. Under plain message here<br>
> I mean one created via `sd_bus_message_new` with the type being<br>
> _SD_BUS_MESSAGE_TYPE_INVALID. We use such a message as a generic container<br>
> of serialized D-Bus data, from which we read and to which we write. More of<br>
> this, including an example, is explained in the mailing list thread spawned<br>
> a year ago:<br>
> <a href="https://lists.freedesktop.org/archives/systemd-devel/2019-May/042748.html" rel="noreferrer" target="_blank">https://lists.freedesktop.org/archives/systemd-devel/2019-May/042748.html</a>.<br>
><br>
> That all of sudden stopped working with systemd 245.6. The reason is highly<br>
> likely this commit in systemd:<br>
> <a href="https://github.com/systemd/systemd/commit/a2dd991d0fde59dc0574bd4d0c1438f01dc0b8ff" rel="noreferrer" target="_blank">https://github.com/systemd/systemd/commit/a2dd991d0fde59dc0574bd4d0c1438f01dc0b8ff</a>.<br>
> This commit changed `sd_bus_message_new` to be more strict and immediately<br>
> reject creating messages of type _SD_BUS_MESSAGE_TYPE_INVALID, whereas<br>
> before that case was allowed, as were also allowed a few serialization<br>
> operations upon such a message (the rest like enqueuing checked the type<br>
> and failed, naturally). That original behavior was a perfect match for our<br>
> need for plain sd-bus messages. I understand that this was based on<br>
> internal implementation of sd-bus, since as I checked the documentation<br>
> now, it instructs clients to use one of the method call, method return,<br>
> method error and signal types.<br>
><br>
> What would you suggest as a solution in this situation? Would it be<br>
> possible to get back to the original behavior? Or would you suggest<br>
> creating a new API method for creating plain messages? Any is fine for<br>
> sdbus-c++, but the latter is a little more difficult because we cannot<br>
> conditionally decide upon the behavior in our code based on the systemd<br>
> version, as 245 exhibits various behaviors depending on the minor version...<br>
<br>
Please file a bug on github.<br>
<br>
Lennart<br>
<br>
--<br>
Lennart Poettering, Berlin<br>
</blockquote></div>