Merge pull request #14645 from keszybz/sd-bus-message-dump
sd_bus_message_dump
This commit is contained in:
commit
d58f31793a
|
@ -233,6 +233,7 @@ manpages = [
|
||||||
''],
|
''],
|
||||||
['sd_bus_message_append_strv', '3', [], ''],
|
['sd_bus_message_append_strv', '3', [], ''],
|
||||||
['sd_bus_message_copy', '3', [], ''],
|
['sd_bus_message_copy', '3', [], ''],
|
||||||
|
['sd_bus_message_dump', '3', [], ''],
|
||||||
['sd_bus_message_get_cookie', '3', ['sd_bus_message_get_reply_cookie'], ''],
|
['sd_bus_message_get_cookie', '3', ['sd_bus_message_get_reply_cookie'], ''],
|
||||||
['sd_bus_message_get_monotonic_usec',
|
['sd_bus_message_get_monotonic_usec',
|
||||||
'3',
|
'3',
|
||||||
|
|
|
@ -58,6 +58,7 @@
|
||||||
<citerefentry><refentrytitle>sd_bus_message_append_string_memfd</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_append_string_memfd</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_message_append_strv</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_append_strv</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_message_copy</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_copy</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
|
<citerefentry><refentrytitle>sd_bus_message_dump</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_message_get_cookie</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_get_cookie</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_message_get_monotonic_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_get_monotonic_usec</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
<citerefentry><refentrytitle>sd_bus_message_get_signature</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
<citerefentry><refentrytitle>sd_bus_message_get_signature</refentrytitle><manvolnum>3</manvolnum></citerefentry>,
|
||||||
|
|
107
man/sd_bus_message_dump.xml
Normal file
107
man/sd_bus_message_dump.xml
Normal file
|
@ -0,0 +1,107 @@
|
||||||
|
<?xml version='1.0'?>
|
||||||
|
<!DOCTYPE refentry PUBLIC "-//OASIS//DTD DocBook XML V4.5//EN"
|
||||||
|
"http://www.oasis-open.org/docbook/xml/4.2/docbookx.dtd">
|
||||||
|
<!-- SPDX-License-Identifier: LGPL-2.1+ -->
|
||||||
|
|
||||||
|
<refentry id="sd_bus_message_dump"
|
||||||
|
xmlns:xi="http://www.w3.org/2001/XInclude">
|
||||||
|
|
||||||
|
<refentryinfo>
|
||||||
|
<title>sd_bus_message_dump</title>
|
||||||
|
<productname>systemd</productname>
|
||||||
|
</refentryinfo>
|
||||||
|
|
||||||
|
<refmeta>
|
||||||
|
<refentrytitle>sd_bus_message_dump</refentrytitle>
|
||||||
|
<manvolnum>3</manvolnum>
|
||||||
|
</refmeta>
|
||||||
|
|
||||||
|
<refnamediv>
|
||||||
|
<refname>sd_bus_message_dump</refname>
|
||||||
|
|
||||||
|
<refpurpose>Produce a string representation of a message for debugging purposes</refpurpose>
|
||||||
|
</refnamediv>
|
||||||
|
|
||||||
|
<refsynopsisdiv>
|
||||||
|
<funcsynopsis>
|
||||||
|
<funcsynopsisinfo>#include <systemd/sd-bus.h></funcsynopsisinfo>
|
||||||
|
|
||||||
|
<funcprototype>
|
||||||
|
<funcdef>int sd_bus_message_dump</funcdef>
|
||||||
|
<paramdef>sd_bus_message *<parameter>m</parameter></paramdef>
|
||||||
|
<paramdef>FILE *<parameter>f</parameter></paramdef>
|
||||||
|
<paramdef>uint64_t <parameter>flags</parameter></paramdef>
|
||||||
|
</funcprototype>
|
||||||
|
</funcsynopsis>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<constant>SD_BUS_MESSAGE_DUMP_WITH_HEADER</constant>,
|
||||||
|
<constant>SD_BUS_MESSAGE_DUMP_SUBTREE_ONLY</constant>
|
||||||
|
</para>
|
||||||
|
</refsynopsisdiv>
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
<title>Description</title>
|
||||||
|
|
||||||
|
<para>The <function>sd_bus_message_dump()</function> function writes a textual representation of the
|
||||||
|
message <parameter>m</parameter> to the stream <parameter>f</parameter>. This function is intended to be
|
||||||
|
used for debugging purposes, and the output is neither stable nor designed to be machine readable.
|
||||||
|
</para>
|
||||||
|
|
||||||
|
<para>The <parameter>flags</parameter> parameter may be used to modify the output. With
|
||||||
|
<constant>SD_BUS_MESSAGE_DUMP_WITH_HEADER</constant>, a header that specifies the message type and flags
|
||||||
|
and some additional metadata is printed. When <constant>SD_BUS_MESSAGE_DUMP_SUBTREE_ONLY</constant> is
|
||||||
|
not passed, the contents of the whole message are printed. When it <emphasis>is</emphasis> passed,
|
||||||
|
only the current container in printed.</para>
|
||||||
|
|
||||||
|
<para>Note that this function moves the read pointer of the message. It may be necessary to reset the
|
||||||
|
position afterwards, for example with
|
||||||
|
<citerefentry><refentrytitle>sd_bus_message_rewind</refentrytitle><manvolnum>3</manvolnum></citerefentry>.
|
||||||
|
</para>
|
||||||
|
</refsect1>
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
<title>Examples</title>
|
||||||
|
|
||||||
|
<para>Output for a signal message (with <constant>SD_BUS_MESSAGE_DUMP_WITH_HEADER</constant>):
|
||||||
|
<programlisting>
|
||||||
|
‣ Type=signal Endian=l Flags=1 Version=1 Priority=0 Cookie=22
|
||||||
|
Path=/value/a Interface=org.freedesktop.DBus.Properties Member=PropertiesChanged
|
||||||
|
MESSAGE "sa{sv}as" {
|
||||||
|
STRING "org.freedesktop.systemd.ValueTest";
|
||||||
|
ARRAY "{sv}" {
|
||||||
|
DICT_ENTRY "sv" {
|
||||||
|
STRING "Value";
|
||||||
|
VARIANT "s" {
|
||||||
|
STRING "object 0x1e, path /value/a";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
};
|
||||||
|
ARRAY "s" {
|
||||||
|
STRING "Value2";
|
||||||
|
STRING "AnExplicitProperty";
|
||||||
|
};
|
||||||
|
};
|
||||||
|
</programlisting>
|
||||||
|
</para>
|
||||||
|
</refsect1>
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
<title>Return Value</title>
|
||||||
|
|
||||||
|
<para>On success, this function returns 0 or a positive integer. On failure, it returns a negative
|
||||||
|
errno-style error code. No error codes are currently defined.</para>
|
||||||
|
</refsect1>
|
||||||
|
|
||||||
|
<xi:include href="libsystemd-pkgconfig.xml" />
|
||||||
|
|
||||||
|
<refsect1>
|
||||||
|
<title>See Also</title>
|
||||||
|
|
||||||
|
<para>
|
||||||
|
<citerefentry><refentrytitle>systemd</refentrytitle><manvolnum>1</manvolnum></citerefentry>,
|
||||||
|
<citerefentry><refentrytitle>sd-bus</refentrytitle><manvolnum>3</manvolnum></citerefentry>
|
||||||
|
</para>
|
||||||
|
</refsect1>
|
||||||
|
|
||||||
|
</refentry>
|
|
@ -1158,7 +1158,7 @@ static int introspect(int argc, char **argv, void *userdata) {
|
||||||
}
|
}
|
||||||
|
|
||||||
static int message_dump(sd_bus_message *m, FILE *f) {
|
static int message_dump(sd_bus_message *m, FILE *f) {
|
||||||
return bus_message_dump(m, f, BUS_MESSAGE_DUMP_WITH_HEADER);
|
return sd_bus_message_dump(m, f, SD_BUS_MESSAGE_DUMP_WITH_HEADER);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int message_pcap(sd_bus_message *m, FILE *f) {
|
static int message_pcap(sd_bus_message *m, FILE *f) {
|
||||||
|
@ -2052,7 +2052,7 @@ static int call(int argc, char **argv, void *userdata) {
|
||||||
} else if (arg_verbose) {
|
} else if (arg_verbose) {
|
||||||
(void) pager_open(arg_pager_flags);
|
(void) pager_open(arg_pager_flags);
|
||||||
|
|
||||||
r = bus_message_dump(reply, stdout, 0);
|
r = sd_bus_message_dump(reply, stdout, 0);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
} else {
|
} else {
|
||||||
|
@ -2158,7 +2158,7 @@ static int get_property(int argc, char **argv, void *userdata) {
|
||||||
} else if (arg_verbose) {
|
} else if (arg_verbose) {
|
||||||
(void) pager_open(arg_pager_flags);
|
(void) pager_open(arg_pager_flags);
|
||||||
|
|
||||||
r = bus_message_dump(reply, stdout, BUS_MESSAGE_DUMP_SUBTREE_ONLY);
|
r = sd_bus_message_dump(reply, stdout, SD_BUS_MESSAGE_DUMP_SUBTREE_ONLY);
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return r;
|
return r;
|
||||||
} else {
|
} else {
|
||||||
|
|
|
@ -36,7 +36,7 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size) {
|
||||||
if (getenv_bool("SYSTEMD_FUZZ_OUTPUT") <= 0)
|
if (getenv_bool("SYSTEMD_FUZZ_OUTPUT") <= 0)
|
||||||
assert_se(g = open_memstream_unlocked(&out, &out_size));
|
assert_se(g = open_memstream_unlocked(&out, &out_size));
|
||||||
|
|
||||||
bus_message_dump(m, g ?: stdout, BUS_MESSAGE_DUMP_WITH_HEADER);
|
sd_bus_message_dump(m, g ?: stdout, SD_BUS_MESSAGE_DUMP_WITH_HEADER);
|
||||||
|
|
||||||
r = sd_bus_message_rewind(m, true);
|
r = sd_bus_message_rewind(m, true);
|
||||||
assert_se(r >= 0);
|
assert_se(r >= 0);
|
||||||
|
|
|
@ -685,6 +685,7 @@ global:
|
||||||
|
|
||||||
LIBSYSTEMD_245 {
|
LIBSYSTEMD_245 {
|
||||||
global:
|
global:
|
||||||
|
sd_bus_message_dump;
|
||||||
sd_bus_message_sensitive;
|
sd_bus_message_sensitive;
|
||||||
sd_event_add_child_pidfd;
|
sd_event_add_child_pidfd;
|
||||||
sd_event_source_get_child_pidfd;
|
sd_event_source_get_child_pidfd;
|
||||||
|
|
|
@ -18,23 +18,23 @@
|
||||||
#include "terminal-util.h"
|
#include "terminal-util.h"
|
||||||
#include "util.h"
|
#include "util.h"
|
||||||
|
|
||||||
static char *indent(unsigned level, unsigned flags) {
|
static char *indent(unsigned level, uint64_t flags) {
|
||||||
char *p;
|
char *p;
|
||||||
unsigned n, i = 0;
|
unsigned n, i = 0;
|
||||||
|
|
||||||
n = 0;
|
n = 0;
|
||||||
|
|
||||||
if (flags & BUS_MESSAGE_DUMP_SUBTREE_ONLY && level > 0)
|
if (flags & SD_BUS_MESSAGE_DUMP_SUBTREE_ONLY && level > 0)
|
||||||
level -= 1;
|
level -= 1;
|
||||||
|
|
||||||
if (flags & BUS_MESSAGE_DUMP_WITH_HEADER)
|
if (flags & SD_BUS_MESSAGE_DUMP_WITH_HEADER)
|
||||||
n += 2;
|
n += 2;
|
||||||
|
|
||||||
p = new(char, n + level*8 + 1);
|
p = new(char, n + level*8 + 1);
|
||||||
if (!p)
|
if (!p)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
|
||||||
if (flags & BUS_MESSAGE_DUMP_WITH_HEADER) {
|
if (flags & SD_BUS_MESSAGE_DUMP_WITH_HEADER) {
|
||||||
p[i++] = ' ';
|
p[i++] = ' ';
|
||||||
p[i++] = ' ';
|
p[i++] = ' ';
|
||||||
}
|
}
|
||||||
|
@ -45,7 +45,7 @@ static char *indent(unsigned level, unsigned flags) {
|
||||||
return p;
|
return p;
|
||||||
}
|
}
|
||||||
|
|
||||||
int bus_message_dump(sd_bus_message *m, FILE *f, unsigned flags) {
|
_public_ int sd_bus_message_dump(sd_bus_message *m, FILE *f, uint64_t flags) {
|
||||||
unsigned level = 1;
|
unsigned level = 1;
|
||||||
int r;
|
int r;
|
||||||
|
|
||||||
|
@ -54,7 +54,7 @@ int bus_message_dump(sd_bus_message *m, FILE *f, unsigned flags) {
|
||||||
if (!f)
|
if (!f)
|
||||||
f = stdout;
|
f = stdout;
|
||||||
|
|
||||||
if (flags & BUS_MESSAGE_DUMP_WITH_HEADER) {
|
if (flags & SD_BUS_MESSAGE_DUMP_WITH_HEADER) {
|
||||||
fprintf(f,
|
fprintf(f,
|
||||||
"%s%s%s Type=%s%s%s Endian=%c Flags=%u Version=%u Priority=%"PRIi64,
|
"%s%s%s Type=%s%s%s Endian=%c Flags=%u Version=%u Priority=%"PRIi64,
|
||||||
m->header->type == SD_BUS_MESSAGE_METHOD_ERROR ? ansi_highlight_red() :
|
m->header->type == SD_BUS_MESSAGE_METHOD_ERROR ? ansi_highlight_red() :
|
||||||
|
@ -118,11 +118,11 @@ int bus_message_dump(sd_bus_message *m, FILE *f, unsigned flags) {
|
||||||
bus_creds_dump(&m->creds, f, true);
|
bus_creds_dump(&m->creds, f, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
r = sd_bus_message_rewind(m, !(flags & BUS_MESSAGE_DUMP_SUBTREE_ONLY));
|
r = sd_bus_message_rewind(m, !(flags & SD_BUS_MESSAGE_DUMP_SUBTREE_ONLY));
|
||||||
if (r < 0)
|
if (r < 0)
|
||||||
return log_error_errno(r, "Failed to rewind: %m");
|
return log_error_errno(r, "Failed to rewind: %m");
|
||||||
|
|
||||||
if (!(flags & BUS_MESSAGE_DUMP_SUBTREE_ONLY)) {
|
if (!(flags & SD_BUS_MESSAGE_DUMP_SUBTREE_ONLY)) {
|
||||||
_cleanup_free_ char *prefix = NULL;
|
_cleanup_free_ char *prefix = NULL;
|
||||||
|
|
||||||
prefix = indent(0, flags);
|
prefix = indent(0, flags);
|
||||||
|
@ -259,7 +259,7 @@ int bus_message_dump(sd_bus_message *m, FILE *f, unsigned flags) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!(flags & BUS_MESSAGE_DUMP_SUBTREE_ONLY)) {
|
if (!(flags & SD_BUS_MESSAGE_DUMP_SUBTREE_ONLY)) {
|
||||||
_cleanup_free_ char *prefix = NULL;
|
_cleanup_free_ char *prefix = NULL;
|
||||||
|
|
||||||
prefix = indent(0, flags);
|
prefix = indent(0, flags);
|
||||||
|
|
|
@ -6,13 +6,6 @@
|
||||||
|
|
||||||
#include "sd-bus.h"
|
#include "sd-bus.h"
|
||||||
|
|
||||||
enum {
|
|
||||||
BUS_MESSAGE_DUMP_WITH_HEADER = 1 << 0,
|
|
||||||
BUS_MESSAGE_DUMP_SUBTREE_ONLY = 1 << 1,
|
|
||||||
};
|
|
||||||
|
|
||||||
int bus_message_dump(sd_bus_message *m, FILE *f, unsigned flags);
|
|
||||||
|
|
||||||
int bus_creds_dump(sd_bus_creds *c, FILE *f, bool terse);
|
int bus_creds_dump(sd_bus_creds *c, FILE *f, bool terse);
|
||||||
|
|
||||||
int bus_pcap_header(size_t snaplen, FILE *f);
|
int bus_pcap_header(size_t snaplen, FILE *f);
|
||||||
|
|
|
@ -145,7 +145,7 @@ static int server(sd_bus *bus) {
|
||||||
strna(sd_bus_message_get_member(m)),
|
strna(sd_bus_message_get_member(m)),
|
||||||
pid,
|
pid,
|
||||||
strna(label));
|
strna(label));
|
||||||
/* bus_message_dump(m); */
|
/* sd_bus_message_dump(m); */
|
||||||
/* sd_bus_message_rewind(m, true); */
|
/* sd_bus_message_rewind(m, true); */
|
||||||
|
|
||||||
if (sd_bus_message_is_method_call(m, "org.freedesktop.systemd.test", "LowerCase")) {
|
if (sd_bus_message_is_method_call(m, "org.freedesktop.systemd.test", "LowerCase")) {
|
||||||
|
|
|
@ -175,7 +175,7 @@ static int test_marshal(void) {
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
assert_se(bus_message_dump(m, NULL, BUS_MESSAGE_DUMP_WITH_HEADER) >= 0);
|
assert_se(sd_bus_message_dump(m, NULL, SD_BUS_MESSAGE_DUMP_WITH_HEADER) >= 0);
|
||||||
|
|
||||||
assert_se(bus_message_get_blob(m, &blob, &sz) >= 0);
|
assert_se(bus_message_get_blob(m, &blob, &sz) >= 0);
|
||||||
|
|
||||||
|
@ -196,7 +196,7 @@ static int test_marshal(void) {
|
||||||
assert_se(bus_message_from_malloc(bus, blob, sz, NULL, 0, NULL, &n) >= 0);
|
assert_se(bus_message_from_malloc(bus, blob, sz, NULL, 0, NULL, &n) >= 0);
|
||||||
blob = NULL;
|
blob = NULL;
|
||||||
|
|
||||||
assert_se(bus_message_dump(n, NULL, BUS_MESSAGE_DUMP_WITH_HEADER) >= 0);
|
assert_se(sd_bus_message_dump(n, NULL, SD_BUS_MESSAGE_DUMP_WITH_HEADER) >= 0);
|
||||||
|
|
||||||
m = sd_bus_message_unref(m);
|
m = sd_bus_message_unref(m);
|
||||||
|
|
||||||
|
@ -205,7 +205,7 @@ static int test_marshal(void) {
|
||||||
assert_se(sd_bus_message_append(m, "as", 0) >= 0);
|
assert_se(sd_bus_message_append(m, "as", 0) >= 0);
|
||||||
|
|
||||||
assert_se(sd_bus_message_seal(m, 4712, 0) >= 0);
|
assert_se(sd_bus_message_seal(m, 4712, 0) >= 0);
|
||||||
assert_se(bus_message_dump(m, NULL, BUS_MESSAGE_DUMP_WITH_HEADER) >= 0);
|
assert_se(sd_bus_message_dump(m, NULL, SD_BUS_MESSAGE_DUMP_WITH_HEADER) >= 0);
|
||||||
|
|
||||||
return EXIT_SUCCESS;
|
return EXIT_SUCCESS;
|
||||||
}
|
}
|
||||||
|
|
|
@ -188,10 +188,10 @@ int main(int argc, char *argv[]) {
|
||||||
r = sd_bus_message_seal(m, 4711, 0);
|
r = sd_bus_message_seal(m, 4711, 0);
|
||||||
assert_se(r >= 0);
|
assert_se(r >= 0);
|
||||||
|
|
||||||
bus_message_dump(m, stdout, BUS_MESSAGE_DUMP_WITH_HEADER);
|
sd_bus_message_dump(m, stdout, SD_BUS_MESSAGE_DUMP_WITH_HEADER);
|
||||||
|
|
||||||
ms = open_memstream_unlocked(&first, &first_size);
|
ms = open_memstream_unlocked(&first, &first_size);
|
||||||
bus_message_dump(m, ms, 0);
|
sd_bus_message_dump(m, ms, 0);
|
||||||
fflush(ms);
|
fflush(ms);
|
||||||
assert_se(!ferror(ms));
|
assert_se(!ferror(ms));
|
||||||
|
|
||||||
|
@ -244,11 +244,11 @@ int main(int argc, char *argv[]) {
|
||||||
r = bus_message_from_malloc(bus, buffer, sz, NULL, 0, NULL, &m);
|
r = bus_message_from_malloc(bus, buffer, sz, NULL, 0, NULL, &m);
|
||||||
assert_se(r >= 0);
|
assert_se(r >= 0);
|
||||||
|
|
||||||
bus_message_dump(m, stdout, BUS_MESSAGE_DUMP_WITH_HEADER);
|
sd_bus_message_dump(m, stdout, SD_BUS_MESSAGE_DUMP_WITH_HEADER);
|
||||||
|
|
||||||
fclose(ms);
|
fclose(ms);
|
||||||
ms = open_memstream_unlocked(&second, &second_size);
|
ms = open_memstream_unlocked(&second, &second_size);
|
||||||
bus_message_dump(m, ms, 0);
|
sd_bus_message_dump(m, ms, 0);
|
||||||
fflush(ms);
|
fflush(ms);
|
||||||
assert_se(!ferror(ms));
|
assert_se(!ferror(ms));
|
||||||
assert_se(first_size == second_size);
|
assert_se(first_size == second_size);
|
||||||
|
@ -354,7 +354,7 @@ int main(int argc, char *argv[]) {
|
||||||
|
|
||||||
fclose(ms);
|
fclose(ms);
|
||||||
ms = open_memstream_unlocked(&third, &third_size);
|
ms = open_memstream_unlocked(&third, &third_size);
|
||||||
bus_message_dump(copy, ms, 0);
|
sd_bus_message_dump(copy, ms, 0);
|
||||||
fflush(ms);
|
fflush(ms);
|
||||||
assert_se(!ferror(ms));
|
assert_se(!ferror(ms));
|
||||||
|
|
||||||
|
|
|
@ -399,7 +399,7 @@ static int client(struct context *c) {
|
||||||
r = sd_bus_call_method(bus, "org.freedesktop.systemd.test", "/foo", "org.freedesktop.DBus.Properties", "GetAll", &error, &reply, "s", "");
|
r = sd_bus_call_method(bus, "org.freedesktop.systemd.test", "/foo", "org.freedesktop.DBus.Properties", "GetAll", &error, &reply, "s", "");
|
||||||
assert_se(r >= 0);
|
assert_se(r >= 0);
|
||||||
|
|
||||||
bus_message_dump(reply, stdout, BUS_MESSAGE_DUMP_WITH_HEADER);
|
sd_bus_message_dump(reply, stdout, SD_BUS_MESSAGE_DUMP_WITH_HEADER);
|
||||||
|
|
||||||
sd_bus_message_unref(reply);
|
sd_bus_message_unref(reply);
|
||||||
reply = NULL;
|
reply = NULL;
|
||||||
|
@ -417,7 +417,7 @@ static int client(struct context *c) {
|
||||||
r = sd_bus_call_method(bus, "org.freedesktop.systemd.test", "/value", "org.freedesktop.DBus.ObjectManager", "GetManagedObjects", &error, &reply, "");
|
r = sd_bus_call_method(bus, "org.freedesktop.systemd.test", "/value", "org.freedesktop.DBus.ObjectManager", "GetManagedObjects", &error, &reply, "");
|
||||||
assert_se(r >= 0);
|
assert_se(r >= 0);
|
||||||
|
|
||||||
bus_message_dump(reply, stdout, BUS_MESSAGE_DUMP_WITH_HEADER);
|
sd_bus_message_dump(reply, stdout, SD_BUS_MESSAGE_DUMP_WITH_HEADER);
|
||||||
|
|
||||||
sd_bus_message_unref(reply);
|
sd_bus_message_unref(reply);
|
||||||
reply = NULL;
|
reply = NULL;
|
||||||
|
@ -429,7 +429,7 @@ static int client(struct context *c) {
|
||||||
assert_se(r > 0);
|
assert_se(r > 0);
|
||||||
|
|
||||||
assert_se(sd_bus_message_is_signal(reply, "org.freedesktop.DBus.Properties", "PropertiesChanged"));
|
assert_se(sd_bus_message_is_signal(reply, "org.freedesktop.DBus.Properties", "PropertiesChanged"));
|
||||||
bus_message_dump(reply, stdout, BUS_MESSAGE_DUMP_WITH_HEADER);
|
sd_bus_message_dump(reply, stdout, SD_BUS_MESSAGE_DUMP_WITH_HEADER);
|
||||||
|
|
||||||
sd_bus_message_unref(reply);
|
sd_bus_message_unref(reply);
|
||||||
reply = NULL;
|
reply = NULL;
|
||||||
|
@ -441,7 +441,7 @@ static int client(struct context *c) {
|
||||||
assert_se(r > 0);
|
assert_se(r > 0);
|
||||||
|
|
||||||
assert_se(sd_bus_message_is_signal(reply, "org.freedesktop.DBus.Properties", "PropertiesChanged"));
|
assert_se(sd_bus_message_is_signal(reply, "org.freedesktop.DBus.Properties", "PropertiesChanged"));
|
||||||
bus_message_dump(reply, stdout, BUS_MESSAGE_DUMP_WITH_HEADER);
|
sd_bus_message_dump(reply, stdout, SD_BUS_MESSAGE_DUMP_WITH_HEADER);
|
||||||
|
|
||||||
sd_bus_message_unref(reply);
|
sd_bus_message_unref(reply);
|
||||||
reply = NULL;
|
reply = NULL;
|
||||||
|
@ -453,7 +453,7 @@ static int client(struct context *c) {
|
||||||
assert_se(r > 0);
|
assert_se(r > 0);
|
||||||
|
|
||||||
assert_se(sd_bus_message_is_signal(reply, "org.freedesktop.DBus.ObjectManager", "InterfacesAdded"));
|
assert_se(sd_bus_message_is_signal(reply, "org.freedesktop.DBus.ObjectManager", "InterfacesAdded"));
|
||||||
bus_message_dump(reply, stdout, BUS_MESSAGE_DUMP_WITH_HEADER);
|
sd_bus_message_dump(reply, stdout, SD_BUS_MESSAGE_DUMP_WITH_HEADER);
|
||||||
|
|
||||||
sd_bus_message_unref(reply);
|
sd_bus_message_unref(reply);
|
||||||
reply = NULL;
|
reply = NULL;
|
||||||
|
@ -465,7 +465,7 @@ static int client(struct context *c) {
|
||||||
assert_se(r > 0);
|
assert_se(r > 0);
|
||||||
|
|
||||||
assert_se(sd_bus_message_is_signal(reply, "org.freedesktop.DBus.ObjectManager", "InterfacesRemoved"));
|
assert_se(sd_bus_message_is_signal(reply, "org.freedesktop.DBus.ObjectManager", "InterfacesRemoved"));
|
||||||
bus_message_dump(reply, stdout, BUS_MESSAGE_DUMP_WITH_HEADER);
|
sd_bus_message_dump(reply, stdout, SD_BUS_MESSAGE_DUMP_WITH_HEADER);
|
||||||
|
|
||||||
sd_bus_message_unref(reply);
|
sd_bus_message_unref(reply);
|
||||||
reply = NULL;
|
reply = NULL;
|
||||||
|
@ -477,7 +477,7 @@ static int client(struct context *c) {
|
||||||
assert_se(r > 0);
|
assert_se(r > 0);
|
||||||
|
|
||||||
assert_se(sd_bus_message_is_signal(reply, "org.freedesktop.DBus.ObjectManager", "InterfacesAdded"));
|
assert_se(sd_bus_message_is_signal(reply, "org.freedesktop.DBus.ObjectManager", "InterfacesAdded"));
|
||||||
bus_message_dump(reply, stdout, BUS_MESSAGE_DUMP_WITH_HEADER);
|
sd_bus_message_dump(reply, stdout, SD_BUS_MESSAGE_DUMP_WITH_HEADER);
|
||||||
|
|
||||||
sd_bus_message_unref(reply);
|
sd_bus_message_unref(reply);
|
||||||
reply = NULL;
|
reply = NULL;
|
||||||
|
@ -489,7 +489,7 @@ static int client(struct context *c) {
|
||||||
assert_se(r > 0);
|
assert_se(r > 0);
|
||||||
|
|
||||||
assert_se(sd_bus_message_is_signal(reply, "org.freedesktop.DBus.ObjectManager", "InterfacesRemoved"));
|
assert_se(sd_bus_message_is_signal(reply, "org.freedesktop.DBus.ObjectManager", "InterfacesRemoved"));
|
||||||
bus_message_dump(reply, stdout, BUS_MESSAGE_DUMP_WITH_HEADER);
|
sd_bus_message_dump(reply, stdout, SD_BUS_MESSAGE_DUMP_WITH_HEADER);
|
||||||
|
|
||||||
sd_bus_message_unref(reply);
|
sd_bus_message_unref(reply);
|
||||||
reply = NULL;
|
reply = NULL;
|
||||||
|
|
|
@ -19,6 +19,7 @@
|
||||||
|
|
||||||
#include <inttypes.h>
|
#include <inttypes.h>
|
||||||
#include <stdarg.h>
|
#include <stdarg.h>
|
||||||
|
#include <stdio.h>
|
||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
#include <sys/uio.h>
|
#include <sys/uio.h>
|
||||||
|
|
||||||
|
@ -105,6 +106,11 @@ enum {
|
||||||
SD_BUS_NAME_QUEUE = 1ULL << 2
|
SD_BUS_NAME_QUEUE = 1ULL << 2
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum {
|
||||||
|
SD_BUS_MESSAGE_DUMP_WITH_HEADER = 1ULL << 0,
|
||||||
|
SD_BUS_MESSAGE_DUMP_SUBTREE_ONLY = 1ULL << 1,
|
||||||
|
};
|
||||||
|
|
||||||
/* Callbacks */
|
/* Callbacks */
|
||||||
|
|
||||||
typedef int (*sd_bus_message_handler_t)(sd_bus_message *m, void *userdata, sd_bus_error *ret_error);
|
typedef int (*sd_bus_message_handler_t)(sd_bus_message *m, void *userdata, sd_bus_error *ret_error);
|
||||||
|
@ -330,6 +336,8 @@ int sd_bus_message_at_end(sd_bus_message *m, int complete);
|
||||||
int sd_bus_message_rewind(sd_bus_message *m, int complete);
|
int sd_bus_message_rewind(sd_bus_message *m, int complete);
|
||||||
int sd_bus_message_sensitive(sd_bus_message *m);
|
int sd_bus_message_sensitive(sd_bus_message *m);
|
||||||
|
|
||||||
|
int sd_bus_message_dump(sd_bus_message *m, FILE *f, uint64_t flags);
|
||||||
|
|
||||||
/* Bus management */
|
/* Bus management */
|
||||||
|
|
||||||
int sd_bus_get_unique_name(sd_bus *bus, const char **unique);
|
int sd_bus_get_unique_name(sd_bus *bus, const char **unique);
|
||||||
|
|
Loading…
Reference in a new issue