]> git.ipfire.org Git - thirdparty/systemd.git/blame - man/sd_bus_send.xml
man: fix link markup
[thirdparty/systemd.git] / man / sd_bus_send.xml
CommitLineData
b0f4c02e
DDM
1<?xml version='1.0'?>
2<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
3 "http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
4<!-- SPDX-License-Identifier: LGPL-2.1+ -->
5
6<refentry id="sd_bus_send"
7 xmlns:xi="http://www.w3.org/2001/XInclude">
8
9 <refentryinfo>
10 <title>sd_bus_send</title>
11 <productname>systemd</productname>
12 </refentryinfo>
13
14 <refmeta>
15 <refentrytitle>sd_bus_send</refentrytitle>
16 <manvolnum>3</manvolnum>
17 </refmeta>
18
19 <refnamediv>
20 <refname>sd_bus_send</refname>
d7fbc680 21 <refname>sd_bus_send_to</refname>
b0f4c02e
DDM
22
23 <refpurpose>Queue a D-Bus message for transfer</refpurpose>
24 </refnamediv>
25
26 <refsynopsisdiv>
27 <funcsynopsis>
28 <funcsynopsisinfo>#include &lt;systemd/sd-bus.h&gt;</funcsynopsisinfo>
29
30 <funcprototype>
31 <funcdef>int <function>sd_bus_send</function></funcdef>
32 <paramdef>sd_bus *<parameter>bus</parameter></paramdef>
33 <paramdef>sd_bus_message *<parameter>m</parameter></paramdef>
34 <paramdef>uint64_t *<parameter>cookie</parameter></paramdef>
35 </funcprototype>
d7fbc680
DDM
36
37 <funcprototype>
38 <funcdef>int <function>sd_bus_send_to</function></funcdef>
39 <paramdef>sd_bus *<parameter>bus</parameter></paramdef>
40 <paramdef>sd_bus_message *<parameter>m</parameter></paramdef>
41 <paramdef>const char *<parameter>destination</parameter></paramdef>
42 <paramdef>uint64_t *<parameter>cookie</parameter></paramdef>
43 </funcprototype>
b0f4c02e
DDM
44 </funcsynopsis>
45 </refsynopsisdiv>
46
47 <refsect1>
48 <title>Description</title>
49
d7fbc680
DDM
50 <para><function>sd_bus_send()</function> queues the bus message object <parameter>m</parameter> for
51 transfer. If <parameter>bus</parameter> is <constant>NULL</constant>, the bus that
52 <parameter>m</parameter> is attached to is used. <parameter>bus</parameter> only needs to be set when the
53 message is sent to a different bus than the one it's attached to, for example when forwarding messages.
54 If the output parameter <parameter>cookie</parameter> is not <constant>NULL</constant>, it is set to the
55 message identifier. This value can later be used to match incoming replies to their corresponding
56 messages. If <parameter>cookie</parameter> is set to <constant>NULL</constant> and the message is not
57 sealed, <function>sd_bus_send()</function> assumes the message <parameter>m</parameter> doesn't expect a
58 reply and adds the necessary headers to indicate this.</para>
b0f4c02e
DDM
59
60 <para>Note that in most scenarios, <function>sd_bus_send()</function> should not be called
61 directly. Instead, use higher level functions such as
62 <citerefentry><refentrytitle>sd_bus_call_method</refentrytitle><manvolnum>3</manvolnum></citerefentry> and
63 <citerefentry><refentrytitle>sd_bus_reply_method_return</refentrytitle><manvolnum>3</manvolnum></citerefentry>
64 which call <function>sd_bus_send()</function> internally.</para>
d7fbc680
DDM
65
66 <para><function>sd_bus_send_to()</function> is a shorthand for sending a message to a specific
67 destination. It's main use case is to simplify sending unicast signal messages (signals that only have a
68 single receiver). It's behavior is similar to calling
69 <citerefentry><refentrytitle>sd_bus_message_set_destination</refentrytitle><manvolnum>3</manvolnum></citerefentry>
70 followed by calling <function>sd_bus_send()</function>.</para>
b0f4c02e
DDM
71 </refsect1>
72
73 <refsect1>
74 <title>Return Value</title>
75
d7fbc680
DDM
76 <para>On success, these functions return a non-negative integer. On failure, they return a negative
77 errno-style error code.</para>
b0f4c02e
DDM
78
79 <refsect2 id='errors'>
80 <title>Errors</title>
81
82 <para>Returned errors may indicate the following problems:</para>
83
84 <variablelist>
85 <varlistentry>
86 <term><constant>-EINVAL</constant></term>
87
88 <listitem><para>The input parameter <parameter>m</parameter> is <constant>NULL</constant>.
89 </para></listitem>
90 </varlistentry>
91
92 <varlistentry>
93 <term><constant>-EOPNOTSUPP</constant></term>
94
95 <listitem><para>The bus connection does not support sending file descriptors.
96 </para></listitem>
97 </varlistentry>
98
99 <varlistentry>
100 <term><constant>-ECHILD</constant></term>
101
d7fbc680
DDM
102 <listitem><para>The bus connection was allocated in a parent process and is being reused in a child
103 process after <function>fork()</function>.</para></listitem>
b0f4c02e
DDM
104 </varlistentry>
105
106 <varlistentry>
107 <term><constant>-ENOBUFS</constant></term>
108
109 <listitem><para>The bus connection's write queue is full.</para></listitem>
110 </varlistentry>
111
112 <varlistentry>
113 <term><constant>-ENOTCONN</constant></term>
114
115 <listitem><para>The input parameter <parameter>bus</parameter> is
116 <constant>NULL</constant> or the bus is not connected.</para></listitem>
117 </varlistentry>
118
119 <varlistentry>
120 <term><constant>-ECONNRESET</constant></term>
121
122 <listitem><para>The bus connection was closed while waiting for the response.
123 </para></listitem>
124 </varlistentry>
125
126 <varlistentry>
127 <term><constant>-ENOMEM</constant></term>
128
129 <listitem><para>Memory allocation failed.</para></listitem>
130 </varlistentry>
131 </variablelist>
132 </refsect2>
133 </refsect1>
134
135 <xi:include href="libsystemd-pkgconfig.xml" />
136
137 <refsect1>
138 <title>See Also</title>
139
140 <para>
141 <citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
142 <citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
143 <citerefentry><refentrytitle>sd_bus_call_method</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
144 <citerefentry><refentrytitle>sd_bus_message_set_destination</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
d7fbc680 145 <citerefentry><refentrytitle>sd_bus_reply_method_return</refentrytitle><manvolnum>3</manvolnum></citerefentry>
b0f4c02e
DDM
146 </para>
147 </refsect1>
148
149</refentry>