sd_bus_message_set_expect_reply - Man Page

Set and query bus message metadata

Synopsis

#include <systemd/sd-bus​.h>

int sd_bus_message_set_expect_reply(sd_bus_message *message, int b);

int sd_bus_message_get_expect_reply(sd_bus_message *message);

int sd_bus_message_set_auto_start(sd_bus_message *message, int b);

int sd_bus_message_get_auto_start(sd_bus_message *message);

int sd_bus_message_set_allow_interactive_authorization(sd_bus_message *message, int b);

int sd_bus_message_get_allow_interactive_authorization(sd_bus_message *message);

Description

sd_bus_message_set_expect_reply() sets or clears the NO_REPLY_EXPECTED flag on the message m​. This flag matters only for method call messages and is used to specify that no method return or error reply is expected​. It is ignored for other types​. Thus, for a method call message, calling

sd_bus_message_set_expect_reply(​..., 0)

sets the flag and suppresses the reply​.

sd_bus_message_get_expect_reply() checks if the NO_REPLY_EXPECTED flag is set on the message m​. It will return positive if it is not set, and zero if it is​.

sd_bus_message_set_auto_start() sets or clears the NO_AUTO_START flag on the message m​. When the flag is set, the bus must not launch an owner for the destination name in response to this message​. Calling

sd_bus_message_set_auto_start(​..., 0)

sets the flag​.

sd_bus_message_get_auto_start() checks if the NO_AUTO_START flag is set on the message m​. It will return positive if it is not set, and zero if it is​.

sd_bus_message_set_allow_interactive_authorization() sets or clears the ALLOW_INTERACTIVE_AUTHORIZATION flag on the message m​. Setting this flag informs the receiver that the caller is prepared to wait for interactive authorization via polkit or a similar framework​. Note that setting this flag does not guarantee that the receiver will actually perform interactive authorization​. Also, make sure to set a suitable message timeout when using this flag since interactive authorization could potentially take a long time as it depends on user input​. If b is non-zero, the flag is set​.

sd_bus_message_get_allow_interactive_authorization() checks if the ALLOW_INTERACTIVE_AUTHORIZATION flag is set on the message m​. It will return a positive integer if the flag is set​. Otherwise, it returns zero​.

Return Value

On success, these functions return a non-negative integer​. On failure, they return a negative errno-style error code​.

Errors

Returned errors may indicate the following problems:

-EINVAL

The message parameter is NULL​.

-EPERM

The message message is sealed when trying to set a flag​.

The message message has wrong type​.

Notes

Functions described here are available as a shared library, which can be compiled against and linked to with the libsystemd ​pkg-config(1) file​.

All functions listed here are thread-agnostic and only a single thread may operate on a given object at any given time​. Different threads may access the same object at different times​. Multiple independent objects may be used from different threads in parallel​.

The code described here uses getenv(3), which is declared to be not multi-thread-safe​. This means that the code calling the functions described here must not call setenv(3) from a parallel thread​. It is recommended to only do calls to setenv() from an early phase of the program when no other threads have been started​.

History

sd_bus_message_set_expect_reply(), sd_bus_message_get_expect_reply(), sd_bus_message_set_auto_start(), and sd_bus_message_get_auto_start() were added in version 240​.

sd_bus_message_set_allow_interactive_authorization() and sd_bus_message_get_allow_interactive_authorization() were added in version 246​.

See Also

systemd(1), sd-bus(3), sd_bus_set_description(3)

Info

systemd 262