sd_bus_set_server systemd sd_bus_set_server 3 sd_bus_set_server sd_bus_is_server sd_bus_get_bus_id sd_bus_set_bus_client sd_bus_is_bus_client Configure direct connection mode for a bus object #include <systemd/sd-bus.h> int sd_bus_set_server sd_bus *bus int b sd_id128_t id int sd_bus_is_server sd_bus *bus int sd_bus_get_bus_id sd_bus *bus sd_id128_t *id int sd_bus_set_bus_client sd_bus *bus int b int sd_bus_is_bus_client sd_bus *bus Description sd_bus_set_server() configures the bus object as a server for direct D-Bus connections. b enables/disables the server mode. If zero, the server mode is disabled. Otherwise, the server mode is enabled. Configuring a bus object as a server is required to allow establishing direct connections between two peers without going via the D-Bus daemon. id must contain a 128-bit integer id for the server. If clients add a guid field to their D-Bus address string, the server id must match this guid or the D-Bus authentication handshake will fail. If no specific id is defined for the server, sd_id128_randomize3 can be used to generate a random id instead. sd_bus_is_server() returns whether the server mode is enabled for the given bus object. sd_bus_get_bus_id() stores the D-Bus server id configured using sd_bus_set_server() (for server bus objects) or received during D-Bus authentication (for client bus objects) in id. sd_bus_set_bus_client() configures the bus object as a D-Bus daemon client. b enables/disables the client mode. If zero, the client mode is disabled and the bus object should connect directly to a D-Bus server. Otherwise, the client mode is enabled and the bus object should connect to a D-Bus daemon. When connecting to an existing bus using any of the functions in the sd_bus_open3 family of functions or any of the functions in the sd_bus_default3 family of functions, the bus object is automatically configured as a bus client. However, when connecting to a D-Bus daemon by calling sd_bus_set_address3 followed by sd_bus_start3, the bus object should be manually configured as a bus client using sd_bus_set_bus_client(). By default, a bus object is not configured as a D-Bus daemon client. sd_bus_is_bus_client() returns whether the client mode is enabled/disabled for the given bus object. Return Value On success, sd_bus_set_server(), sd_bus_get_bus_id() and sd_bus_set_bus_client() return a non-negative integer. On failure, they return a negative errno-style error code. sd_bus_is_server() and sd_bus_is_bus_client() return a positive integer when the server or client mode is enabled, respectively. Otherwise, they return zero. Errors Returned errors may indicate the following problems: -ECHILD The bus connection has been created in a different process. -EPERM The bus connection has already been started. -ENOPKG The bus cannot be resolved. -EINVAL A required parameter was NULL or b was zero and id did not equal SD_ID128_NULL. -ENOTCONN The bus is not connected. See Also systemd1, sd-bus3