Manpages - sd_bus_message_new_method_error.3
Table of Contents
NAME
sd_bus_message_new_method_error, sd_bus_message_new_method_errorf, sd_bus_message_new_method_errno, sd_bus_message_new_method_errnof - Create an error reply for a method call
SYNOPSIS
#include <systemd/sd-bus.h>
int sd_bus_message_new_method_error(sd_bus_message **/call/, sd_bus_message **/m/, const sd_bus_error */e/);*
int sd_bus_message_new_method_errorf(sd_bus_message **/call/, sd_bus_message **/m/, const char */name/, const char */format/, …);*
int sd_bus_message_new_method_errno(sd_bus_message **/call/, sd_bus_message **/m/, int error, const sd_bus_error */p/);*
int sd_bus_message_new_method_errnof(sd_bus_message **/call/, sd_bus_message **/m/, int error, const char */format/, …);*
DESCRIPTION
The sd_bus_message_new_method_error() function creates a new bus message object that is an error reply to the call message, and returns it in the m output parameter. The error information from error e is appended: the name field of e is used as the error identifier in the reply header (for example an error name such as “org.freedesktop.DBus.Error.NotSupported” or the equivalent symbolic SD_BUS_ERROR_NOT_SUPPORTED), and the message field is set as the human readable error message string if present. The error e must have the name field set, see *sd_bus_error_is_set*(3).
The sd_bus_message_new_method_errorf() function creates an error reply similarly to sd_bus_message_new_method_error(), but instead of a ready error structure, it takes an error identifier string name, plus a printf*(3) format string format and corresponding arguments. An error reply is sent with the error identifier name and the formatted string as the message. name and format must not be *NULL.
The sd_bus_message_new_method_errno() function creates an error reply similarly to sd_bus_message_new_method_error(), but in addition to the error structure p, it takes an *errno*(3) error value in parameter error. If the error p is set (see *sd_bus_error_is_set*(3)), it is used in the reply. Otherwise, error is translated to an error identifier and used to create a new error structure using *sd_bus_error_set_errno*(3) and that is used in the reply. (If error is zero, no error is actually set, and an error reply with no information is created.)
The sd_bus_message_new_method_errnof() function creates an error reply similarly to sd_bus_message_new_method_error(). It takes an errno*(3) error value in parameter error, plus a *printf*(3) format string format and corresponding arguments. “%m” may be used in the format string to refer to the error string corresponding to the specified errno code. The error message is initialized using the error identifier generated from *error and the formatted string. (If error is zero, no error is actually set, and an error reply with no information is created.)
RETURN VALUE
These functions return 0 if the error reply was successfully created, and a negative errno-style error code otherwise.
Errors
Returned errors may indicate the following problems:
-EINVAL
The call message call or the output parameter m are NULL.
Message call is not a method call message.
The error e parameter to sd_bus_message_new_method_error() is not set, see *sd_bus_error_is_set*(3).
-EPERM
Message call has been sealed.
-ENOTCONN
The bus to which message call is attached is not connected.
-ENOMEM
Memory allocation failed.
NOTES
These APIs are implemented as a shared library, which can be compiled and linked to with the libsystemd *pkg-config*(1) file.
SEE ALSO
*systemd*(1), *sd-bus*(3)