diff --git a/Makefile-man.am b/Makefile-man.am
index 74a1f4cb43..35874e0b84 100644
--- a/Makefile-man.am
+++ b/Makefile-man.am
@@ -24,6 +24,7 @@ MANPAGES += \
man/machine-id.5 \
man/machine-info.5 \
man/os-release.5 \
+ man/sd-bus-errors.3 \
man/sd-daemon.3 \
man/sd-id128.3 \
man/sd-journal.3 \
@@ -32,6 +33,7 @@ MANPAGES += \
man/sd_bus_creds_new_from_pid.3 \
man/sd_bus_default.3 \
man/sd_bus_error.3 \
+ man/sd_bus_error_add_map.3 \
man/sd_bus_message_append.3 \
man/sd_bus_message_append_array.3 \
man/sd_bus_message_append_basic.3 \
@@ -161,6 +163,40 @@ MANPAGES += \
man/udevadm.8
MANPAGES_ALIAS += \
man/SD_ALERT.3 \
+ man/SD_BUS_ERROR_ACCESS_DENIED.3 \
+ man/SD_BUS_ERROR_ADDRESS_IN_USE.3 \
+ man/SD_BUS_ERROR_AUTH_FAILED.3 \
+ man/SD_BUS_ERROR_BAD_ADDRESS.3 \
+ man/SD_BUS_ERROR_DISCONNECTED.3 \
+ man/SD_BUS_ERROR_END.3 \
+ man/SD_BUS_ERROR_FAILED.3 \
+ man/SD_BUS_ERROR_FILE_EXISTS.3 \
+ man/SD_BUS_ERROR_FILE_NOT_FOUND.3 \
+ man/SD_BUS_ERROR_INCONSISTENT_MESSAGE.3 \
+ man/SD_BUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED.3 \
+ man/SD_BUS_ERROR_INVALID_ARGS.3 \
+ man/SD_BUS_ERROR_INVALID_SIGNATURE.3 \
+ man/SD_BUS_ERROR_IO_ERROR.3 \
+ man/SD_BUS_ERROR_LIMITS_EXCEEDED.3 \
+ man/SD_BUS_ERROR_MAKE_CONST.3 \
+ man/SD_BUS_ERROR_MAP.3 \
+ man/SD_BUS_ERROR_MATCH_RULE_INVALID.3 \
+ man/SD_BUS_ERROR_MATCH_RULE_NOT_FOUND.3 \
+ man/SD_BUS_ERROR_NAME_HAS_NO_OWNER.3 \
+ man/SD_BUS_ERROR_NOT_SUPPORTED.3 \
+ man/SD_BUS_ERROR_NO_MEMORY.3 \
+ man/SD_BUS_ERROR_NO_NETWORK.3 \
+ man/SD_BUS_ERROR_NO_REPLY.3 \
+ man/SD_BUS_ERROR_NO_SERVER.3 \
+ man/SD_BUS_ERROR_NULL.3 \
+ man/SD_BUS_ERROR_PROPERTY_READ_ONLY.3 \
+ man/SD_BUS_ERROR_SERVICE_UNKNOWN.3 \
+ man/SD_BUS_ERROR_TIMEOUT.3 \
+ man/SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN.3 \
+ man/SD_BUS_ERROR_UNKNOWN_INTERFACE.3 \
+ man/SD_BUS_ERROR_UNKNOWN_METHOD.3 \
+ man/SD_BUS_ERROR_UNKNOWN_OBJECT.3 \
+ man/SD_BUS_ERROR_UNKNOWN_PROPERTY.3 \
man/SD_CRIT.3 \
man/SD_DEBUG.3 \
man/SD_EMERG.3 \
@@ -231,10 +267,13 @@ MANPAGES_ALIAS += \
man/sd_bus_error_get_errno.3 \
man/sd_bus_error_has_name.3 \
man/sd_bus_error_is_set.3 \
+ man/sd_bus_error_map.3 \
man/sd_bus_error_set.3 \
man/sd_bus_error_set_const.3 \
man/sd_bus_error_set_errno.3 \
man/sd_bus_error_set_errnof.3 \
+ man/sd_bus_error_set_errnofv.3 \
+ man/sd_bus_error_setf.3 \
man/sd_bus_message_append_array_iovec.3 \
man/sd_bus_message_append_array_memfd.3 \
man/sd_bus_message_append_array_space.3 \
@@ -408,6 +447,40 @@ MANPAGES_ALIAS += \
man/udev_unref.3 \
man/user.conf.d.5
man/SD_ALERT.3: man/sd-daemon.3
+man/SD_BUS_ERROR_ACCESS_DENIED.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_ADDRESS_IN_USE.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_AUTH_FAILED.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_BAD_ADDRESS.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_DISCONNECTED.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_END.3: man/sd_bus_error_add_map.3
+man/SD_BUS_ERROR_FAILED.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_FILE_EXISTS.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_FILE_NOT_FOUND.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_INCONSISTENT_MESSAGE.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_INVALID_ARGS.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_INVALID_SIGNATURE.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_IO_ERROR.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_LIMITS_EXCEEDED.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_MAKE_CONST.3: man/sd_bus_error.3
+man/SD_BUS_ERROR_MAP.3: man/sd_bus_error_add_map.3
+man/SD_BUS_ERROR_MATCH_RULE_INVALID.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_MATCH_RULE_NOT_FOUND.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_NAME_HAS_NO_OWNER.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_NOT_SUPPORTED.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_NO_MEMORY.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_NO_NETWORK.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_NO_REPLY.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_NO_SERVER.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_NULL.3: man/sd_bus_error.3
+man/SD_BUS_ERROR_PROPERTY_READ_ONLY.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_SERVICE_UNKNOWN.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_TIMEOUT.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_UNKNOWN_INTERFACE.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_UNKNOWN_METHOD.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_UNKNOWN_OBJECT.3: man/sd-bus-errors.3
+man/SD_BUS_ERROR_UNKNOWN_PROPERTY.3: man/sd-bus-errors.3
man/SD_CRIT.3: man/sd-daemon.3
man/SD_DEBUG.3: man/sd-daemon.3
man/SD_EMERG.3: man/sd-daemon.3
@@ -478,10 +551,13 @@ man/sd_bus_error_free.3: man/sd_bus_error.3
man/sd_bus_error_get_errno.3: man/sd_bus_error.3
man/sd_bus_error_has_name.3: man/sd_bus_error.3
man/sd_bus_error_is_set.3: man/sd_bus_error.3
+man/sd_bus_error_map.3: man/sd_bus_error_add_map.3
man/sd_bus_error_set.3: man/sd_bus_error.3
man/sd_bus_error_set_const.3: man/sd_bus_error.3
man/sd_bus_error_set_errno.3: man/sd_bus_error.3
man/sd_bus_error_set_errnof.3: man/sd_bus_error.3
+man/sd_bus_error_set_errnofv.3: man/sd_bus_error.3
+man/sd_bus_error_setf.3: man/sd_bus_error.3
man/sd_bus_message_append_array_iovec.3: man/sd_bus_message_append_array.3
man/sd_bus_message_append_array_memfd.3: man/sd_bus_message_append_array.3
man/sd_bus_message_append_array_space.3: man/sd_bus_message_append_array.3
@@ -657,6 +733,108 @@ man/user.conf.d.5: man/systemd-system.conf.5
man/SD_ALERT.html: man/sd-daemon.html
$(html-alias)
+man/SD_BUS_ERROR_ACCESS_DENIED.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_ADDRESS_IN_USE.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_AUTH_FAILED.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_BAD_ADDRESS.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_DISCONNECTED.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_END.html: man/sd_bus_error_add_map.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_FAILED.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_FILE_EXISTS.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_FILE_NOT_FOUND.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_INCONSISTENT_MESSAGE.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_INVALID_ARGS.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_INVALID_SIGNATURE.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_IO_ERROR.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_LIMITS_EXCEEDED.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_MAKE_CONST.html: man/sd_bus_error.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_MAP.html: man/sd_bus_error_add_map.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_MATCH_RULE_INVALID.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_MATCH_RULE_NOT_FOUND.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_NAME_HAS_NO_OWNER.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_NOT_SUPPORTED.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_NO_MEMORY.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_NO_NETWORK.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_NO_REPLY.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_NO_SERVER.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_NULL.html: man/sd_bus_error.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_PROPERTY_READ_ONLY.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_SERVICE_UNKNOWN.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_TIMEOUT.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_UNKNOWN_INTERFACE.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_UNKNOWN_METHOD.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_UNKNOWN_OBJECT.html: man/sd-bus-errors.html
+ $(html-alias)
+
+man/SD_BUS_ERROR_UNKNOWN_PROPERTY.html: man/sd-bus-errors.html
+ $(html-alias)
+
man/SD_CRIT.html: man/sd-daemon.html
$(html-alias)
@@ -867,6 +1045,9 @@ man/sd_bus_error_has_name.html: man/sd_bus_error.html
man/sd_bus_error_is_set.html: man/sd_bus_error.html
$(html-alias)
+man/sd_bus_error_map.html: man/sd_bus_error_add_map.html
+ $(html-alias)
+
man/sd_bus_error_set.html: man/sd_bus_error.html
$(html-alias)
@@ -879,6 +1060,12 @@ man/sd_bus_error_set_errno.html: man/sd_bus_error.html
man/sd_bus_error_set_errnof.html: man/sd_bus_error.html
$(html-alias)
+man/sd_bus_error_set_errnofv.html: man/sd_bus_error.html
+ $(html-alias)
+
+man/sd_bus_error_setf.html: man/sd_bus_error.html
+ $(html-alias)
+
man/sd_bus_message_append_array_iovec.html: man/sd_bus_message_append_array.html
$(html-alias)
@@ -2015,6 +2202,7 @@ EXTRA_DIST += \
man/pam_systemd.xml \
man/resolved.conf.xml \
man/runlevel.xml \
+ man/sd-bus-errors.xml \
man/sd-daemon.xml \
man/sd-id128.xml \
man/sd-journal.xml \
@@ -2024,6 +2212,7 @@ EXTRA_DIST += \
man/sd_bus_creds_new_from_pid.xml \
man/sd_bus_default.xml \
man/sd_bus_error.xml \
+ man/sd_bus_error_add_map.xml \
man/sd_bus_message_append.xml \
man/sd_bus_message_append_array.xml \
man/sd_bus_message_append_basic.xml \
diff --git a/man/sd-bus-errors.xml b/man/sd-bus-errors.xml
new file mode 100644
index 0000000000..d6bbd7fbb2
--- /dev/null
+++ b/man/sd-bus-errors.xml
@@ -0,0 +1,309 @@
+
+
+
+
+
+
+
+
+ sd-bus-errors
+ systemd
+
+
+
+ Developer
+ Lennart
+ Poettering
+ lennart@poettering.net
+
+
+
+
+
+ sd-bus-errors
+ 3
+
+
+
+ sd-bus-errors
+ SD_BUS_ERROR_FAILED
+ SD_BUS_ERROR_NO_MEMORY
+ SD_BUS_ERROR_SERVICE_UNKNOWN
+ SD_BUS_ERROR_NAME_HAS_NO_OWNER
+ SD_BUS_ERROR_NO_REPLY
+ SD_BUS_ERROR_IO_ERROR
+ SD_BUS_ERROR_BAD_ADDRESS
+ SD_BUS_ERROR_NOT_SUPPORTED
+ SD_BUS_ERROR_LIMITS_EXCEEDED
+ SD_BUS_ERROR_ACCESS_DENIED
+ SD_BUS_ERROR_AUTH_FAILED
+ SD_BUS_ERROR_NO_SERVER
+ SD_BUS_ERROR_TIMEOUT
+ SD_BUS_ERROR_NO_NETWORK
+ SD_BUS_ERROR_ADDRESS_IN_USE
+ SD_BUS_ERROR_DISCONNECTED
+ SD_BUS_ERROR_INVALID_ARGS
+ SD_BUS_ERROR_FILE_NOT_FOUND
+ SD_BUS_ERROR_FILE_EXISTS
+ SD_BUS_ERROR_UNKNOWN_METHOD
+ SD_BUS_ERROR_UNKNOWN_OBJECT
+ SD_BUS_ERROR_UNKNOWN_INTERFACE
+ SD_BUS_ERROR_UNKNOWN_PROPERTY
+ SD_BUS_ERROR_PROPERTY_READ_ONLY
+ SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
+ SD_BUS_ERROR_INVALID_SIGNATURE
+ SD_BUS_ERROR_INCONSISTENT_MESSAGE
+ SD_BUS_ERROR_MATCH_RULE_NOT_FOUND
+ SD_BUS_ERROR_MATCH_RULE_INVALID
+ SD_BUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED
+
+ Standard D-Bus error names
+
+
+
+
+ #include <systemd/sd-bus.h>
+
+#define SD_BUS_ERROR_FAILED "org.freedesktop.DBus.Error.Failed"
+#define SD_BUS_ERROR_NO_MEMORY "org.freedesktop.DBus.Error.NoMemory"
+#define SD_BUS_ERROR_SERVICE_UNKNOWN "org.freedesktop.DBus.Error.ServiceUnknown"
+#define SD_BUS_ERROR_NAME_HAS_NO_OWNER "org.freedesktop.DBus.Error.NameHasNoOwner"
+#define SD_BUS_ERROR_NO_REPLY "org.freedesktop.DBus.Error.NoReply"
+#define SD_BUS_ERROR_IO_ERROR "org.freedesktop.DBus.Error.IOError"
+#define SD_BUS_ERROR_BAD_ADDRESS "org.freedesktop.DBus.Error.BadAddress"
+#define SD_BUS_ERROR_NOT_SUPPORTED "org.freedesktop.DBus.Error.NotSupported"
+#define SD_BUS_ERROR_LIMITS_EXCEEDED "org.freedesktop.DBus.Error.LimitsExceeded"
+#define SD_BUS_ERROR_ACCESS_DENIED "org.freedesktop.DBus.Error.AccessDenied"
+#define SD_BUS_ERROR_AUTH_FAILED "org.freedesktop.DBus.Error.AuthFailed"
+#define SD_BUS_ERROR_NO_SERVER "org.freedesktop.DBus.Error.NoServer"
+#define SD_BUS_ERROR_TIMEOUT "org.freedesktop.DBus.Error.Timeout"
+#define SD_BUS_ERROR_NO_NETWORK "org.freedesktop.DBus.Error.NoNetwork"
+#define SD_BUS_ERROR_ADDRESS_IN_USE "org.freedesktop.DBus.Error.AddressInUse"
+#define SD_BUS_ERROR_DISCONNECTED "org.freedesktop.DBus.Error.Disconnected"
+#define SD_BUS_ERROR_INVALID_ARGS "org.freedesktop.DBus.Error.InvalidArgs"
+#define SD_BUS_ERROR_FILE_NOT_FOUND "org.freedesktop.DBus.Error.FileNotFound"
+#define SD_BUS_ERROR_FILE_EXISTS "org.freedesktop.DBus.Error.FileExists"
+#define SD_BUS_ERROR_UNKNOWN_METHOD "org.freedesktop.DBus.Error.UnknownMethod"
+#define SD_BUS_ERROR_UNKNOWN_OBJECT "org.freedesktop.DBus.Error.UnknownObject"
+#define SD_BUS_ERROR_UNKNOWN_INTERFACE "org.freedesktop.DBus.Error.UnknownInterface"
+#define SD_BUS_ERROR_UNKNOWN_PROPERTY "org.freedesktop.DBus.Error.UnknownProperty"
+#define SD_BUS_ERROR_PROPERTY_READ_ONLY "org.freedesktop.DBus.Error.PropertyReadOnly"
+#define SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN "org.freedesktop.DBus.Error.UnixProcessIdUnknown"
+#define SD_BUS_ERROR_INVALID_SIGNATURE "org.freedesktop.DBus.Error.InvalidSignature"
+#define SD_BUS_ERROR_INCONSISTENT_MESSAGE "org.freedesktop.DBus.Error.InconsistentMessage"
+#define SD_BUS_ERROR_MATCH_RULE_NOT_FOUND "org.freedesktop.DBus.Error.MatchRuleNotFound"
+#define SD_BUS_ERROR_MATCH_RULE_INVALID "org.freedesktop.DBus.Error.MatchRuleInvalid"
+#define SD_BUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED \
+ "org.freedesktop.DBus.Error.InteractiveAuthorizationRequired"
+
+
+
+
+
+ Description
+
+ In addition to the error names user programs define, D-Bus
+ knows a number of generic, standardized error names, that are
+ listed below.
+
+ In addition to this list, in sd-bus the special error
+ namespace System.Error. is used to map
+ arbitrary Linux system errors (as defined by errno3)
+ to D-Bus errors and back. For example, the error
+ EUCLEAN is mapped to
+ System.Error.EUCLEAN and back.
+
+
+
+
+ SD_BUS_ERROR_FAILED
+ A generic error indication. See the error
+ message for further details. This error name should be
+ avoided, in favour of a more expressive error
+ name.
+
+
+
+ SD_BUS_ERROR_NO_MEMORY
+ A memory allocation failed, and the requested
+ operation could not be completed.
+
+
+
+ SD_BUS_ERROR_SERVICE_UNKNOWN
+ The contacted bus service is unknown and
+ cannot be activated.
+
+
+
+ SD_BUS_ERROR_NAME_HAS_NO_OWNER
+ The specified bus service name currently has
+ no owner.
+
+
+ SD_BUS_ERROR_NO_REPLY
+ A message did not receive a reply. This error
+ is usually generated after a timeout.
+
+
+ SD_BUS_ERROR_IO_ERROR
+ Generic input/output error, for example when
+ accessing a socket or other IO context.
+
+
+ SD_BUS_ERROR_BAD_ADDRESS
+ The specified D-Bus bus address string is
+ malformed.
+
+
+ SD_BUS_ERROR_NOT_SUPPORTED
+ The requested operation is not supported on
+ the local system.
+
+
+ SD_BUS_ERROR_LIMITS_EXCEEDED
+ Some limited resource has been
+ exhausted.
+
+
+ SD_BUS_ERROR_ACCESS_DENIED
+ Access to a resource has bee denied, due to security restrictions.
+
+
+ SD_BUS_ERROR_AUTH_FAILED
+ Authentication did not complete successfully.
+
+
+ SD_BUS_ERROR_NO_SERVER
+ Unable to connect to the specified server.
+
+
+ SD_BUS_ERROR_TIMEOUT
+ An operation timed out. Note that method calls
+ which timeout generate a
+ SD_BUS_ERROR_NO_REPLY.
+
+
+ SD_BUS_ERROR_NO_NETWORK
+ No network available to execute requested network operation on.
+
+
+ SD_BUS_ERROR_ADDRESS_IN_USE
+ The specified network address is already being listened on.
+
+
+ SD_BUS_ERROR_DISCONNECTED
+ The connection has been terminated.
+
+
+ SD_BUS_ERROR_INVALID_ARGS
+ One or more invalid arguments have been passed.
+
+
+ SD_BUS_ERROR_FILE_NOT_FOUND
+ The requested file could not be found.
+
+
+ SD_BUS_ERROR_FILE_EXISTS
+ The requested file exists already.
+
+
+ SD_BUS_ERROR_UNKNOWN_METHOD
+ The requested method does not exist in the selected interface.
+
+
+ SD_BUS_ERROR_UNKNOWN_OBJECT
+ The requested object does not exist in the selected service.
+
+
+ SD_BUS_ERROR_UNKNOWN_INTERFACE
+ The requested interface does not exist on the selected object.
+
+
+ SD_BUS_ERROR_UNKNOWN_PROPERTY
+ The requested property does not exist in the selected interface.
+
+
+ SD_BUS_ERROR_PROPERTY_READ_ONLY
+ A write operation was requested on a read-only property.
+
+
+ SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
+ The requested PID is not known.
+
+
+ SD_BUS_ERROR_INVALID_SIGNATURE
+ The specified message signature is not
+ valid.
+
+
+
+ SD_BUS_ERROR_INCONSISTENT_MESSAGE
+ The passed message does not validate
+ correctly.
+
+
+ SD_BUS_ERROR_MATCH_RULE_NOT_FOUND
+ The specified match rule does not exist.
+
+
+ SD_BUS_ERROR_MATCH_RULE_INVALID
+ The specified match rule is invalid.
+
+
+ SD_BUS_ERROR_INTERACTIVE_AUTHORIZATION_REQUIRED
+ Access to the requested operation is not
+ permitted, however, it might be available after interactive
+ authentication. This is usually returned by method calls
+ supporting a framework for additional interactive
+ authorization, when interactive authorization was not enabled
+ with the
+ sd_bus_message_set_allow_interactive_authorization3
+ for the method call message.
+
+
+
+
+
+ Notes
+
+ The various error definitions described here are available
+ as a shared library, which can be compiled and linked to with the
+ libsystemd pkg-config1
+ file.
+
+
+
+ See Also
+
+
+ systemd1,
+ sd-bus3,
+ sd_bus_error3,
+ sd_bus_message_set_allow_interactive_authorization3,
+ errno3,
+ strerror3
+
+
+
+
diff --git a/man/sd_bus_error.xml b/man/sd_bus_error.xml
index b8cb339cec..6dc4541eb1 100644
--- a/man/sd_bus_error.xml
+++ b/man/sd_bus_error.xml
@@ -44,11 +44,15 @@
sd_bus_error
+ SD_BUS_ERROR_MAKE_CONST
+ SD_BUS_ERROR_NULL
sd_bus_error_free
sd_bus_error_set
+ sd_bus_error_setf
sd_bus_error_set_const
sd_bus_error_set_errno
sd_bus_error_set_errnof
+ sd_bus_error_set_errnofv
sd_bus_error_get_errno
sd_bus_error_copy
sd_bus_error_is_set
@@ -75,7 +79,7 @@
- int sd_bus_error_free
+ void sd_bus_error_free
sd_bus_error *e
@@ -115,6 +119,14 @@
...
+
+ int sd_bus_error_set_errnofv
+ sd_bus_error *e
+ int error
+ const char *format
+ va_list ap
+
+
int sd_bus_error_get_errno
const sd_bus_error *e
@@ -138,234 +150,194 @@
-
- SD_BUS_ERROR_FAILED
-
-
- SD_BUS_ERROR_NO_MEMORY
-
-
- SD_BUS_ERROR_SERVICE_UNKNOWN
-
-
- SD_BUS_ERROR_NAME_HAS_NO_OWNER
-
-
- SD_BUS_ERROR_NO_REPLY
-
-
- SD_BUS_ERROR_IO_ERROR
-
-
- SD_BUS_ERROR_BAD_ADDRESS
-
-
- SD_BUS_ERROR_NOT_SUPPORTED
-
-
- SD_BUS_ERROR_LIMITS_EXCEEDED
-
-
- SD_BUS_ERROR_ACCESS_DENIED
-
-
- SD_BUS_ERROR_AUTH_FAILED
-
-
- SD_BUS_ERROR_NO_SERVER
-
-
- SD_BUS_ERROR_TIMEOUT
-
-
- SD_BUS_ERROR_NO_NETWORK
-
-
- SD_BUS_ERROR_ADDRESS_IN_USE
-
-
- SD_BUS_ERROR_DISCONNECTED
-
-
- SD_BUS_ERROR_INVALID_ARGS
-
-
- SD_BUS_ERROR_FILE_NOT_FOUND
-
-
- SD_BUS_ERROR_FILE_EXISTS
-
-
- SD_BUS_ERROR_UNKNOWN_METHOD
-
-
- SD_BUS_ERROR_UNKNOWN_OBJECT
-
-
- SD_BUS_ERROR_UNKNOWN_INTERFACE
-
-
- SD_BUS_ERROR_UNKNOWN_PROPERTY
-
-
- SD_BUS_ERROR_PROPERTY_READ_ONLY
-
-
- SD_BUS_ERROR_UNIX_PROCESS_ID_UNKNOWN
-
-
- SD_BUS_ERROR_INVALID_SIGNATURE
-
-
- SD_BUS_ERROR_INCONSISTENT_MESSAGE
-
-
- SD_BUS_ERROR_MATCH_RULE_NOT_FOUND
-
-
- SD_BUS_ERROR_MATCH_RULE_INVALID
-
-
Description
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 name field contains a
- short identifier of an error. It should follow the rules for error
- names described in the D-Bus specification, subsection name field contains a short identifier
+ of an error. It should follow the rules for error names described
+ in the D-Bus specification, subsection Valid
- Names. The message is a human
- readable string describing the details. When no longer necessary,
- resources held by this structure should be destroyed with
- sd_bus_error_free.
+ Names. A number of common, standardized error names are
+ described in
+ sd-bus-errors3,
+ but additional domain-specific errors may be defined by
+ applications. The message field usually
+ contains a human readable string describing the details, but might
+ be NULL. An unset sd_bus_error structure
+ should have both fields initialized to NULL. Set an error
+ structure to SD_BUS_ERROR_NULL in order to
+ reset both fields to NULL. When no longer necessary, resources
+ held by the sd_bus_errorstructure should
+ be destroyed with sd_bus_error_free().
- sd_bus_error_set will return an
- errno-like negative value returned based on parameter
- name (see
- errno3).
- Various well-known D-Bus errors are converted to specific values,
- and the remaining ones to -ENXIO. Well-known
- D-Bus error names are available as constants
- SD_BUS_ERROR_FAILED, etc., listed above. If
+ sd_bus_error_set() sets an error
+ structure to the specified name and message strings. The strings
+ will be copied into internal, newly allocated memory. It is
+ essential to free the error structure again when it is not
+ required anymore (see above). The function will return an
+ errno-like negative value (see errno3)
+ determined from the specified error name. Various well-known
+ D-Bus errors are converted to well-known errno
+ counterparts, and the other ones to -EIO. See
+ sd-bus-errors3
+ for a list of well-known error names. Additional error mappings
+ may be defined with
+ sd_bus_error_add_map3. If
+ e is NULL no error structure is initialized
+ but the error is still converted into an
+ errno-style error. If
name is NULL, it is
assumed that no error occurred, and 0 is returned. This means that
this function may be conveniently used in a
- return statement.
+ return statement. If
+ message is NULL no message is set. This
+ call can fail if no memory may be allocated for the name and
+ message strings, in which case an
+ SD_BUS_ERROR_NO_MEMORY error might be set
+ instead and -ENOMEM returned. Do not use this call on error
+ structures that are already initialized. If you intend to reuse an
+ error structure free the old data stored in it with
+ sd_bus_error_free() first.
- If e is not
- NULL, name and
- message in the
- sd_bus_error structure
- e points at will be filled in. As described above,
- name may be NULL,
- which is treated as no error. Parameter
- message may also be
- NULL, in which case no message is specified.
- sd_bus_error_set will make internal copies of
- specified strings.
+ sd_bus_error_setf() is similar to
+ sd_bus_error_set(), but takes a printf3
+ format string and corresponding arguments to generate the
+ message field.
- sd_bus_error_setf is similar to
- sd_bus_error_set, but takes a
- printf3
- format string and corresponding arguments to generate
- message.
+ sd_bus_error_set_const() is similar to
+ sd_bus_error_set(), but the string parameters
+ are not copied internally, and must hence remain constant and
+ valid for the lifetime of e. Use this call
+ to avoid memory allocations when setting error structures. Since
+ this call does not allocate memory it will not fail with an
+ out-of-memory condition, as
+ sd_bus_error_set() can, as described
+ above. Alternatively, the
+ SD_BUS_ERROR_MAKE_CONST() macro may be used
+ to generate a literal, constant bus error structure
+ on-the-fly.
- sd_bus_error_set_const is similar to
- sd_bus_error_set, but string parameters are
- not copied internally, and must remain valid for the lifetime of
- e.
-
- sd_bus_error_set_errno will set
- name based on an errno-like value.
- strerror3
+ sd_bus_error_set_errno() will set
+ name from an
+ errno-like value that is converted to a D-Bus
+ error. strerror_r3
will be used to set message. Well-known
D-Bus error names will be used for name
- if available, otherwise a name in the
- System.Error namespace will be generated.
-
+ if applicable, otherwise a name in the
+ System.Error. namespace will be generated. The
+ sign of the specified error number is ignored. The absolute value
+ is used implicitly. The call always returns a negative value, for
+ convenient usage in return statements. This
+ call might fail due to lack of memory, in which case an
+ SD_BUS_ERROR_NO_MEMORY error is set instead,
+ and -ENOMEM returned.
- sd_bus_error_set_errnof is similar to
- sd_bus_error_set_errno, but in addition to
- name, takes a
- printf3
- format and corresponding arguments.
- name will be generated from
+ sd_bus_error_set_errnof() is similar to
+ sd_bus_error_set_errno(), but in addition to
+ error, takes a printf3
+ format string and corresponding arguments. The
+ message field will be generated from
format and the arguments.
- sd_bus_error_get_errno will convert
- e->name to an errno-like value using the
- same rules as sd_bus_error_set. If
+ sd_bus_error_set_errnofv() is similar to
+ sd_bus_error_set_errnof() but takes the
+ format string parameters as va_arg3
+ parameter list.
+
+ sd_bus_error_get_errno() converts the
+ name field of an error structure to an
+ errno-like (positive) value using the same
+ rules as sd_bus_error_set(). If
e is NULL, 0 will be
returned.
- sd_bus_error_copy will initialize
+ sd_bus_error_copy() will initialize
dst using the values in
e. If the strings in
e were set using
- sd_bus_set_error_const, they will be shared.
- Otherwise, they will be copied.
+ sd_bus_set_error_const(), they will be shared.
+ Otherwise, they will be copied. Returns a converted
+ errno-like, negative error code.
- sd_bus_error_is_set will return
- true if e is
+ sd_bus_error_is_set() will return a
+ non-zero value if e is
non-NULL and an error has been set,
false otherwise.
- sd_bus_error_has_name will return true
- if e is non-NULL and
- an error with the same name has been set,
+ sd_bus_error_has_name() will return a
+ non-zero value if e is
+ non-NULL and an error with the same
+ name has been set,
false otherwise.
- sd_bus_error_free will destroy resources
- held by e. The parameter itself will not
- be deallocated, and must be
- free3d
- by the caller if necessary.
+ sd_bus_error_free() will destroy
+ resources held by e. The parameter itself
+ will not be deallocated, and must be free3d
+ by the caller if necessary. The function may also be called safely
+ on unset errors (error structures with both fields set to NULL),
+ in which case it performs no operation. This call will reset the
+ error structure after freeing the data, so that all fields are set
+ to NULL. The structure may be reused afterwards.
Return Value
- Functions sd_bus_error_set,
- sd_bus_error_setf,
- sd_bus_error_set_const, when successful,
+ The functions sd_bus_error_set(),
+ sd_bus_error_setf(),
+ sd_bus_error_set_const(), when successful,
return the negative errno value corresponding to the
name parameter. Functions
- sd_bus_error_set_errno and
- sd_bus_error_set_errnof, when successful,
- return the value of the errno parameter. If
- an error occurs, one of the negative error values listed below
- will be returned.
+ sd_bus_error_set_errno(),
+ sd_bus_error_set_errnof() and
+ sd_bus_error_set_errnofv(), when successful,
+ return the negative value of the error
+ parameter. If an error occurs, one of the negative error values
+ listed below will be returned.
- sd_bus_error_get_errno returns
+ sd_bus_error_get_errno() returns
false when e is
NULL, and a positive errno value mapped from
e->name otherwise.
- sd_bus_error_copy returns 0 or a
- positive integer on success, and one of the negative error values
- listed below otherwise.
+ sd_bus_error_copy() returns 0 or a
+ positive integer on success, and a negative error value converted
+ from the error name otherwise.
- sd_bus_error_is_set returns
- true when e and
- e->name are non-NULL,
- false otherwise.
+ sd_bus_error_is_set() returns a
+ non-zero value when e and the
+ name field are
+ non-NULL, zero otherwise.
- sd_bus_error_has_name returns
- true when e is
- non-NULL and e->name
- is equal to name,
- false otherwise.
+ sd_bus_error_has_name() returns a
+ non-zero value when e is
+ non-NULL and the
+ name field is equal to
+ name, zero otherwise.
Reference ownership
sd_bus_error is not reference
counted. Users should destroy resources held by it by calling
- sd_bus_error_free.
+ sd_bus_error_free(). Usually error structures
+ are allocated on the stack or passed in as function parameters,
+ but they may also be allocated dynamically, in which case it is
+ the duty of the caller to free3
+ the memory held by the structure itself after freeing its contents
+ with sd_bus_error_free().
@@ -407,8 +379,10 @@
systemd1,
sd-bus3,
+ sd-bus-errors3,
+ sd_bus_error_add_map3,
errno3,
- strerror3
+ strerror_r3
diff --git a/man/sd_bus_error_add_map.xml b/man/sd_bus_error_add_map.xml
new file mode 100644
index 0000000000..3fca63be4a
--- /dev/null
+++ b/man/sd_bus_error_add_map.xml
@@ -0,0 +1,173 @@
+
+
+
+
+
+
+
+
+ sd_bus_error_add_map
+ systemd
+
+
+
+ Developer
+ Lennart
+ Poettering
+ lennart@poettering.net
+
+
+
+
+
+ sd_bus_error_add_map
+ 3
+
+
+
+ sd_bus_error_add_map
+ sd_bus_error_map
+ SD_BUS_ERROR_MAP
+ SD_BUS_ERROR_END
+
+ Additional sd-dbus error mappings
+
+
+
+
+ #include <systemd/sd-bus.h>
+
+ typedef struct {
+ const char *name;
+ int code;
+ ...
+} sd_bus_error_map;
+
+
+
+
+ SD_BUS_ERROR_MAP(name, code)
+
+
+ SD_BUS_ERROR_MAP_END
+
+
+
+ int sd_bus_error_add_map
+ const sd_bus_map *map
+
+
+
+
+
+ Description
+
+ The sd_bus_error_add_map() call may be
+ used to register additional mappings for converting D-Bus errors
+ to Linux errno-style errors. The mappings
+ defined with this call are consulted by calls such as
+ sd_bus_error_set3
+ or
+ sd_bus_error_get_errno3. By
+ default a number of generic, standardized mappings are known, as
+ documented in
+ sd-bus-errors3. Use
+ this call to add further, application-specific mappings.
+
+ The function takes a pointer to an array of
+ sd_bus_error_map structures. A reference
+ to the specified array is added to the lookup tables for error
+ mappings. Note that the structure is not copied, it is hence
+ essential that the array stays available and constant during the
+ entire remaining runtime of the process.
+
+ The mapping array should be put together with a series of
+ SD_BUS_ERROR_MAP() macro invocations, that
+ take a literal name string and a (positive)
+ errno-style error number. The last entry of the
+ array should be an invocation of the
+ SD_BUS_ERROR_MAP_END macro. The array should not be
+ put together without use of these two macros.
+
+ Note that the call is idempotent: it is safe to invoke it
+ multiple times with the parameter, which will only add the passed
+ mapping array once.
+
+ Note that the memory allocated by this call is not intended
+ to be freed during the lifetime of the process. It should not be
+ freed explicitly.
+
+
+
+ Return Value
+
+ sd_bus_error_add_map() returns a
+ positive value when the new array was added to the lookup
+ tables. It returns zero when the same array was already added
+ before. On error, a negative errno-style error
+ code is returned. See below for known error codes.
+
+
+
+ Errors
+
+ Returned errors may indicate the following problems:
+
+
+
+
+ -EINVAL
+
+ The specified mapping array is invalid.
+
+
+
+ -ENOMEM
+
+ Memory allocation failed.
+
+
+
+
+
+ Notes
+
+ The various error definitions described here are available
+ as a shared library, which can be compiled and linked to with the
+ libsystemd pkg-config1
+ file.
+
+
+
+ See Also
+
+
+ systemd1,
+ sd-bus3,
+ sd_bus_error3,
+ sd-bus-errors3,
+ errno3,
+ strerror_r3
+
+
+
+
diff --git a/man/systemd.journal-fields.xml b/man/systemd.journal-fields.xml
index a101006a7e..afe1200d7e 100644
--- a/man/systemd.journal-fields.xml
+++ b/man/systemd.journal-fields.xml
@@ -440,7 +440,6 @@
-