systemd/man/sd_bus_error.3
2015-02-17 11:22:16 +01:00

336 lines
8.6 KiB
Groff

'\" t
.TH "SD_BUS_ERROR" "3" "" "systemd 219" "sd_bus_error"
.\" -----------------------------------------------------------------
.\" * Define some portability stuff
.\" -----------------------------------------------------------------
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.\" http://bugs.debian.org/507673
.\" http://lists.gnu.org/archive/html/groff/2009-02/msg00013.html
.\" ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.ie \n(.g .ds Aq \(aq
.el .ds Aq '
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
.\" disable hyphenation
.nh
.\" disable justification (adjust text to left margin only)
.ad l
.\" -----------------------------------------------------------------
.\" * MAIN CONTENT STARTS HERE *
.\" -----------------------------------------------------------------
.SH "NAME"
sd_bus_error, sd_bus_error_free, sd_bus_error_set, sd_bus_error_set_const, sd_bus_error_set_errno, sd_bus_error_set_errnof, sd_bus_error_get_errno, sd_bus_error_copy, sd_bus_error_is_set, sd_bus_error_has_name \- sd\-bus error handling
.SH "SYNOPSIS"
.sp
.ft B
.nf
#include <systemd/sd\-bus\&.h>
.fi
.ft
.sp
.ft B
.nf
typedef struct {
const char *name;
const char *message;
\&.\&.\&.
} sd_bus_error;
.fi
.ft
.PP
\fBSD_BUS_ERROR_MAKE_CONST(\fR\fB\fIname\fR\fR\fB, \fR\fB\fImessage\fR\fR\fB)\fR
.PP
\fBSD_BUS_ERROR_NULL\fR
.HP \w'int\ sd_bus_error_free('u
.BI "int sd_bus_error_free(sd_bus_error\ *" "e" ");"
.HP \w'int\ sd_bus_error_set('u
.BI "int sd_bus_error_set(sd_bus_error\ *" "e" ", const\ char\ *" "name" ", const\ char\ *" "message" ");"
.HP \w'int\ sd_bus_error_setf('u
.BI "int sd_bus_error_setf(sd_bus_error\ *" "e" ", const\ char\ *" "name" ", const\ char\ *" "format" ", \&.\&.\&.);"
.HP \w'int\ sd_bus_error_set_const('u
.BI "int sd_bus_error_set_const(sd_bus_error\ *" "e" ", const\ char\ *" "name" ", const\ char\ *" "message" ");"
.HP \w'int\ sd_bus_error_set_errno('u
.BI "int sd_bus_error_set_errno(sd_bus_error\ *" "e" ", int\ " "error" ");"
.HP \w'int\ sd_bus_error_set_errnof('u
.BI "int sd_bus_error_set_errnof(sd_bus_error\ *" "e" ", int\ " "error" ", const\ char\ *" "format" ", \&.\&.\&.);"
.HP \w'int\ sd_bus_error_get_errno('u
.BI "int sd_bus_error_get_errno(const\ sd_bus_error\ *" "e" ");"
.HP \w'int\ sd_bus_error_copy('u
.BI "int sd_bus_error_copy(sd_bus_error\ *" "dst" ", const\ sd_bus_error\ *" "e" ");"
.HP \w'int\ sd_bus_error_is_set('u
.BI "int sd_bus_error_is_set(const\ sd_bus_error\ *" "e" ");"
.HP \w'int\ sd_bus_error_has_name('u
.BI "int sd_bus_error_has_name(const\ sd_bus_error\ *" "e" ", const\ char\ *" "name" ");"
.PP
\fBSD_BUS_ERROR_FAILED\fR
.PP
\fBSD_BUS_ERROR_NO_MEMORY\fR
.PP
\fBSD_BUS_ERROR_SERVICE_UNKNOWN\fR
.PP
\fBSD_BUS_ERROR_NAME_HAS_NO_OWNER\fR
.PP
\fBSD_BUS_ERROR_NO_REPLY\fR
.PP
\fBSD_BUS_ERROR_IO_ERROR\fR
.PP
\fBSD_BUS_ERROR_BAD_ADDRESS\fR
.PP
\fBSD_BUS_ERROR_NOT_SUPPORTED\fR
.PP
\fBSD_BUS_ERROR_LIMITS_EXCEEDED\fR
.PP
\fBSD_BUS_ERROR_ACCESS_DENIED\fR
.PP
\fBSD_BUS_ERROR_AUTH_FAILED\fR
.PP
\fBSD_BUS_ERROR_NO_SERVER\fR
.PP
\fBSD_BUS_ERROR_TIMEOUT\fR
.PP
\fBSD_BUS_ERROR_NO_NETWORK\fR
.PP
\fBSD_BUS_ERROR_ADDRESS_IN_USE\fR
.PP
\fBSD_BUS_ERROR_DISCONNECTED\fR
.PP
\fBSD_BUS_ERROR_INVALID_ARGS\fR
.PP
\fBSD_BUS_ERROR_FILE_NOT_FOUND\fR
.PP
\fBSD_BUS_ERROR_FILE_EXISTS\fR
.PP
\fBSD_BUS_ERROR_UNKNOWN_METHOD\fR
.PP
\fBSD_BUS_ERROR_UNKNOWN_OBJECT\fR
.PP
\fBSD_BUS_ERROR_UNKNOWN_INTERFACE\fR
.PP
\fBSD_BUS_ERROR_UNKNOWN_PROPERTY\fR
.PP
\fBSD_BUS_ERROR_PROPERTY_READ_ONLY\fR
.PP
\fBSD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN\fR
.PP
\fBSD_BUS_ERROR_INVALID_SIGNATURE\fR
.PP
\fBSD_BUS_ERROR_INCONSISTENT_MESSAGE\fR
.PP
\fBSD_BUS_ERROR_MATCH_RULE_NOT_FOUND\fR
.PP
\fBSD_BUS_ERROR_MATCH_RULE_INVALID\fR
.SH "DESCRIPTION"
.PP
The
sd_bus_error
structure carries information for a
sd\-bus
error\&. The functions described below can be used to set and query fields in this structure\&. The
\fIname\fR
field contains a short identifier of an error\&. It should follow the rules for error names described in the D\-Bus specification, subsection
\m[blue]\fBValid Names\fR\m[]\&\s-2\u[1]\d\s+2\&. The
\fImessage\fR
is a human readable string describing the details\&. When no longer necessary, resources held by this structure should be destroyed with
\fBsd_bus_error_free\fR\&.
.PP
\fBsd_bus_error_set\fR
will return an errno\-like negative value returned based on parameter
\fIname\fR
(see
\fBerrno\fR(3))\&. Various well\-known D\-Bus errors are converted to specific values, and the remaining ones to
\fB\-ENXIO\fR\&. Well\-known D\-Bus error names are available as constants
\fBSD_BUS_ERROR_FAILED\fR, etc\&., listed above\&. If
\fIname\fR
is
\fBNULL\fR, it is assumed that no error occurred, and 0 is returned\&. This means that this function may be conveniently used in a
\fBreturn\fR
statement\&.
.PP
If
\fIe\fR
is not
\fBNULL\fR,
\fIname\fR
and
\fImessage\fR
in the
sd_bus_error
structure
\fIe\fR
points at will be filled in\&. As described above,
\fIname\fR
may be
\fBNULL\fR, which is treated as no error\&. Parameter
\fImessage\fR
may also be
\fBNULL\fR, in which case no message is specified\&.
\fBsd_bus_error_set\fR
will make internal copies of specified strings\&.
.PP
\fBsd_bus_error_setf\fR
is similar to
\fBsd_bus_error_set\fR, but takes a
\fBprintf\fR(3)
format string and corresponding arguments to generate
message\&.
.PP
\fBsd_bus_error_set_const\fR
is similar to
\fBsd_bus_error_set\fR, but string parameters are not copied internally, and must remain valid for the lifetime of
\fIe\fR\&.
.PP
\fBsd_bus_error_set_errno\fR
will set
\fIname\fR
based on an errno\-like value\&.
\fBstrerror\fR(3)
will be used to set
\fImessage\fR\&. Well\-known D\-Bus error names will be used for
\fIname\fR
if available, otherwise a name in the
"System\&.Error"
namespace will be generated\&.
.PP
\fBsd_bus_error_set_errnof\fR
is similar to
\fBsd_bus_error_set_errno\fR, but in addition to
\fIname\fR, takes a
\fBprintf\fR(3)
format and corresponding arguments\&.
\fIname\fR
will be generated from
\fIformat\fR
and the arguments\&.
.PP
\fBsd_bus_error_get_errno\fR
will convert
e\->name
to an errno\-like value using the same rules as
\fBsd_bus_error_set\fR\&. If
\fIe\fR
is
\fBNULL\fR, 0 will be returned\&.
.PP
\fBsd_bus_error_copy\fR
will initialize
\fIdst\fR
using the values in
\fIe\fR\&. If the strings in
\fIe\fR
were set using
\fBsd_bus_set_error_const\fR, they will be shared\&. Otherwise, they will be copied\&.
.PP
\fBsd_bus_error_is_set\fR
will return
\fBtrue\fR
if
\fIe\fR
is non\-\fBNULL\fR
and an error has been set,
\fBfalse\fR
otherwise\&.
.PP
\fBsd_bus_error_has_name\fR
will return true if
\fIe\fR
is non\-\fBNULL\fR
and an error with the same
\fIname\fR
has been set,
\fBfalse\fR
otherwise\&.
.PP
\fBsd_bus_error_free\fR
will destroy resources held by
\fIe\fR\&. The parameter itself will not be deallocated, and must be
\fBfree\fR(3)d by the caller if necessary\&.
.SH "RETURN VALUE"
.PP
Functions
\fBsd_bus_error_set\fR,
\fBsd_bus_error_setf\fR,
\fBsd_bus_error_set_const\fR, when successful, return the negative errno value corresponding to the
\fIname\fR
parameter\&. Functions
\fBsd_bus_error_set_errno\fR
and
\fBsd_bus_error_set_errnof\fR, when successful, return the value of the
\fIerrno\fR
parameter\&. If an error occurs, one of the negative error values listed below will be returned\&.
.PP
\fBsd_bus_error_get_errno\fR
returns
\fBfalse\fR
when
\fIe\fR
is
\fBNULL\fR, and a positive errno value mapped from
\fIe\->name\fR
otherwise\&.
.PP
\fBsd_bus_error_copy\fR
returns 0 or a positive integer on success, and one of the negative error values listed below otherwise\&.
.PP
\fBsd_bus_error_is_set\fR
returns
\fBtrue\fR
when
\fIe\fR
and
\fIe\->name\fR
are non\-\fBNULL\fR,
\fBfalse\fR
otherwise\&.
.PP
\fBsd_bus_error_has_name\fR
returns
\fBtrue\fR
when
\fIe\fR
is non\-\fBNULL\fR
and
\fIe\->name\fR
is equal to
\fIname\fR,
\fBfalse\fR
otherwise\&.
.SH "REFERENCE OWNERSHIP"
.PP
sd_bus_error
is not reference counted\&. Users should destroy resources held by it by calling
\fBsd_bus_error_free\fR\&.
.SH "ERRORS"
.PP
Returned errors may indicate the following problems:
.PP
\fB\-EINVAL\fR
.RS 4
Error was already set in
sd_bus_error
structure when one the error\-setting functions was called\&.
.RE
.PP
\fB\-ENOMEM\fR
.RS 4
Memory allocation failed\&.
.RE
.SH "NOTES"
.PP
\fBsd_bus_set_error()\fR
and other functions described here are available as a shared library, which can be compiled and linked to with the
\fBlibsystemd\fR\ \&\fBpkg-config\fR(1)
file\&.
.SH "SEE ALSO"
.PP
\fBsystemd\fR(1),
\fBsd-bus\fR(3),
\fBerrno\fR(3),
\fBstrerror\fR(3)
.SH "NOTES"
.IP " 1." 4
Valid Names
.RS 4
\%http://dbus.freedesktop.org/doc/dbus-specification.html#message-protocol-names
.RE