SD_BUS_M...ECT_REPLY(3)

πŸ’– NAME πŸ’– β€” SD_BUS_M...ECT_REPLY(3) edition

okay bestie, welcome to the sd_bus_message_set_expect_reply family page, manual tag SD_BUS_M...ECT_REPLY(3) β€” yes the title is giving truncation, she's iconic like that πŸ’…. These functions are:

sd_bus_message_set_expect_reply, sd_bus_message_get_expect_reply, sd_bus_message_set_auto_start, sd_bus_message_get_auto_start, sd_bus_message_set_allow_interactive_authorization, sd_bus_message_get_allow_interactive_authorization β€” and they set and query bus message metadata. Periodt. ✨

✨ 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 🌸

okay so, these functions are all about setting and asking about metadata flags on an sd_bus_message. Let's go function by function, no cap:

  • 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 it's used to specify that no method return or error reply is expected. It is ignored for other types. So for a method call message, calling sd_bus_message_set_expect_reply(..., 0) sets the flag and suppresses the reply. Yes bestie, zero means set here β€” she's quirky like that πŸ’€.
  • 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. Read that again if you need to β€” the math is mathing in a very specific way 😭.
  • 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. Again: zero sets it. She's consistent, I'll give her that 🫢.
  • 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. So this one is like β€œI'm ready to wait, but pls set your timeout bestie” ⏳.
  • 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. No mystery, no drama β€” just numbers doing their thing ✨.

😭 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. Thread safety era, but make it early-phase πŸ’….

πŸ¦‹ 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 🌈


that's the whole page, bestie. big sparkly sign-off from systemd 261.3, footer tag SD_BUS_M...ECT_REPLY(3) β€” date? she didn't list one, so we're just gonna vibe with the version and the page tag πŸ’–πŸ’…βœ¨

πŸ“¦ where this page comes from