2018-07-08 15:11:13 +03:00
<?xml version='1.0'?>
2019-03-14 16:40:58 +03:00
< !DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
2023-12-25 17:48:33 +03:00
"http://www.oasis-open.org/docbook/xml/4.5/docbookx.dtd">
2020-11-09 07:23:58 +03:00
<!-- SPDX - License - Identifier: LGPL - 2.1 - or - later -->
2018-07-08 15:11:13 +03:00
<refentry id= "sd_bus_reply_method_error"
xmlns:xi="http://www.w3.org/2001/XInclude">
<refentryinfo >
<title > sd_bus_reply_method_error</title>
<productname > systemd</productname>
</refentryinfo>
<refmeta >
<refentrytitle > sd_bus_reply_method_error</refentrytitle>
<manvolnum > 3</manvolnum>
</refmeta>
<refnamediv >
<refname > sd_bus_reply_method_error</refname>
<refname > sd_bus_reply_method_errorf</refname>
2020-03-31 17:28:01 +03:00
<refname > sd_bus_reply_method_errorfv</refname>
2018-07-08 15:11:13 +03:00
<refname > sd_bus_reply_method_errno</refname>
<refname > sd_bus_reply_method_errnof</refname>
2020-03-31 17:28:01 +03:00
<refname > sd_bus_reply_method_errnofv</refname>
2018-07-08 15:11:13 +03:00
2020-03-19 21:52:54 +03:00
<refpurpose > Reply with an error to a D-Bus method call</refpurpose>
2018-07-08 15:11:13 +03:00
</refnamediv>
<refsynopsisdiv >
<funcsynopsis >
<funcsynopsisinfo > #include < systemd/sd-bus.h> </funcsynopsisinfo>
<funcprototype >
<funcdef > int sd_bus_reply_method_error</funcdef>
<paramdef > sd_bus_message *<parameter > call</parameter> </paramdef>
<paramdef > const sd_bus_error *<parameter > e</parameter> </paramdef>
</funcprototype>
<funcprototype >
<funcdef > int sd_bus_reply_method_errorf</funcdef>
<paramdef > sd_bus_message *<parameter > call</parameter> </paramdef>
<paramdef > const char *<parameter > name</parameter> </paramdef>
<paramdef > const char *<parameter > format</parameter> </paramdef>
2020-03-31 17:28:01 +03:00
<paramdef > ...</paramdef>
</funcprototype>
<funcprototype >
<funcdef > int sd_bus_reply_method_errorfv</funcdef>
<paramdef > sd_bus_message *<parameter > call</parameter> </paramdef>
<paramdef > const char *<parameter > name</parameter> </paramdef>
<paramdef > const char *<parameter > format</parameter> </paramdef>
<paramdef > va_list <parameter > ap</parameter> </paramdef>
2018-07-08 15:11:13 +03:00
</funcprototype>
<funcprototype >
<funcdef > int sd_bus_reply_method_errno</funcdef>
<paramdef > sd_bus_message *<parameter > call</parameter> </paramdef>
<paramdef > int <parameter > error</parameter> </paramdef>
<paramdef > const sd_bus_error *<parameter > p</parameter> </paramdef>
</funcprototype>
<funcprototype >
<funcdef > int sd_bus_reply_method_errnof</funcdef>
<paramdef > sd_bus_message *<parameter > call</parameter> </paramdef>
<paramdef > int <parameter > error</parameter> </paramdef>
<paramdef > const char *<parameter > format</parameter> </paramdef>
2020-03-31 17:28:01 +03:00
<paramdef > ...</paramdef>
</funcprototype>
<funcprototype >
<funcdef > int sd_bus_reply_method_errnofv</funcdef>
<paramdef > sd_bus_message *<parameter > call</parameter> </paramdef>
<paramdef > int <parameter > error</parameter> </paramdef>
<paramdef > const char *<parameter > format</parameter> </paramdef>
<paramdef > va_list <parameter > ap</parameter> </paramdef>
2018-07-08 15:11:13 +03:00
</funcprototype>
</funcsynopsis>
</refsynopsisdiv>
<refsect1 >
<title > Description</title>
2020-03-19 21:52:54 +03:00
<para > The <function > sd_bus_reply_method_error()</function> function sends an error reply to the
<parameter > call</parameter> message. The error structure <parameter > e</parameter> specifies the
error to send, and is used as described in
2020-06-25 15:38:21 +03:00
<citerefentry > <refentrytitle > sd_bus_message_new_method_error</refentrytitle> <manvolnum > 3</manvolnum> </citerefentry> .
2020-03-19 21:52:54 +03:00
If no reply is expected to <parameter > call</parameter> , this function succeeds without sending a
reply.</para>
2018-07-08 15:11:13 +03:00
<para > The <function > sd_bus_reply_method_errorf()</function> is to
<function > sd_bus_reply_method_error()</function> what
<function > sd_bus_message_new_method_errorf()</function> is to
<function > sd_bus_message_new_method_error()</function> .</para>
<para > The <function > sd_bus_reply_method_errno()</function> is to
<function > sd_bus_reply_method_error()</function> what
<function > sd_bus_message_new_method_errno()</function> is to
<function > sd_bus_message_new_method_error()</function> .</para>
<para > The <function > sd_bus_reply_method_errnof()</function> is to
<function > sd_bus_reply_method_error()</function> what
<function > sd_bus_message_new_method_errnof()</function> is to
<function > sd_bus_message_new_method_error()</function> .</para>
</refsect1>
<refsect1 >
<title > Return Value</title>
2020-03-19 21:52:54 +03:00
<para > This function returns a non-negative integer if the error reply was successfully sent or
if <parameter > call</parameter> does not expect a reply. On failure, it returns a negative
errno-style error code.</para>
2018-07-08 15:11:13 +03:00
2019-03-21 16:53:00 +03:00
<refsect2 >
<title > Errors</title>
2018-07-08 15:11:13 +03:00
2019-03-21 16:53:00 +03:00
<para > Returned errors may indicate the following problems:</para>
2018-07-08 15:11:13 +03:00
2019-03-21 16:53:00 +03:00
<variablelist >
<varlistentry >
<term > <constant > -EINVAL</constant> </term>
2018-07-08 15:11:13 +03:00
2020-03-19 21:52:54 +03:00
<listitem > <para > The input parameter <parameter > call</parameter> is
2019-03-21 16:53:00 +03:00
<constant > NULL</constant> .</para>
2018-07-08 15:11:13 +03:00
2020-03-19 21:52:54 +03:00
<para > Message <parameter > call</parameter> is not a method call message.</para>
2018-07-08 15:11:13 +03:00
2019-03-21 16:53:00 +03:00
<para > Message <parameter > call</parameter> is not attached to a bus.</para>
2018-07-08 15:11:13 +03:00
2020-11-10 00:38:36 +03:00
<para > The error parameter <parameter > e</parameter> to
<function > sd_bus_reply_method_error()</function> is not set, see
2019-03-21 16:53:00 +03:00
<citerefentry > <refentrytitle > sd_bus_error_is_set</refentrytitle> <manvolnum > 3</manvolnum> </citerefentry> .
</para>
</listitem>
</varlistentry>
2018-07-08 15:11:13 +03:00
2019-03-21 16:53:00 +03:00
<varlistentry >
<term > <constant > -EPERM</constant> </term>
2018-07-08 15:11:13 +03:00
2019-03-21 16:53:00 +03:00
<listitem > <para > Message <parameter > call</parameter> has been sealed.
</para> </listitem>
</varlistentry>
2018-07-08 15:11:13 +03:00
2019-03-21 16:53:00 +03:00
<varlistentry >
<term > <constant > -ENOTCONN</constant> </term>
2018-07-08 15:11:13 +03:00
2019-03-21 16:53:00 +03:00
<listitem > <para > The bus to which message <parameter > call</parameter> is attached is not
connected.</para> </listitem>
</varlistentry>
2018-07-08 15:11:13 +03:00
2019-03-21 16:53:00 +03:00
<varlistentry >
<term > <constant > -ENOMEM</constant> </term>
2018-07-08 15:11:13 +03:00
2019-03-21 16:53:00 +03:00
<listitem > <para > Memory allocation failed.</para> </listitem>
</varlistentry>
</variablelist>
2018-07-08 15:11:13 +03:00
2020-03-19 21:52:54 +03:00
<para > In addition, any error returned by
2019-03-21 16:53:00 +03:00
<citerefentry > <refentrytitle > sd_bus_send</refentrytitle> <manvolnum > 1</manvolnum> </citerefentry>
may be returned.</para>
</refsect2>
2018-07-08 15:11:13 +03:00
</refsect1>
<xi:include href= "libsystemd-pkgconfig.xml" />
<refsect1 >
<title > See Also</title>
2023-12-22 21:09:32 +03:00
<para > <simplelist type= "inline" >
<member > <citerefentry > <refentrytitle > systemd</refentrytitle> <manvolnum > 1</manvolnum> </citerefentry> </member>
<member > <citerefentry > <refentrytitle > sd-bus</refentrytitle> <manvolnum > 3</manvolnum> </citerefentry> </member>
<member > <citerefentry > <refentrytitle > sd_bus_message_new_method_error</refentrytitle> <manvolnum > 3</manvolnum> </citerefentry> </member>
</simplelist> </para>
2018-07-08 15:11:13 +03:00
</refsect1>
</refentry>