# sd_bus_message_set_expect_reply

## NAME



           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 - 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.
    
           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.
    


* * *