aboutsummaryrefslogtreecommitdiff
path: root/src/lib/common/gnunet_dbus_lib_message.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/common/gnunet_dbus_lib_message.c')
-rw-r--r--src/lib/common/gnunet_dbus_lib_message.c62
1 files changed, 62 insertions, 0 deletions
diff --git a/src/lib/common/gnunet_dbus_lib_message.c b/src/lib/common/gnunet_dbus_lib_message.c
new file mode 100644
index 0000000..1d76f84
--- /dev/null
+++ b/src/lib/common/gnunet_dbus_lib_message.c
@@ -0,0 +1,62 @@
1#include "config.h"
2
3#include <gnunet/platform.h>
4#include <gnunet/gnunet_common.h>
5
6#include "gnunet_dbus_lib_message.h"
7
8#define LOG(kind, ...) GNUNET_log_from (kind, "dbus-message", __VA_ARGS__)
9
10static dbus_int32_t
11pretty_slot_id ()
12{
13 static dbus_int32_t id = -1;
14 if (-1 == id)
15 {
16 dbus_bool_t succ = dbus_message_allocate_data_slot (&id);
17 if (! succ || -1 == id)
18 {
19 LOG (GNUNET_ERROR_TYPE_ERROR, "dbus_message_allocate_data_slot failed. id == %lld\n", (long long)id);
20 GNUNET_abort_ ();
21 };
22 };
23
24 return id;
25};
26
27bool
28GNUNET_DBUS_message_get_pretty (
29 DBusMessage *message)
30{
31 return (bool)dbus_message_get_data (message, pretty_slot_id ());
32}
33
34void
35GNUNET_DBUS_message_set_pretty (
36 DBusMessage *message,
37 bool pretty)
38{
39 dbus_int32_t id = pretty_slot_id ();
40 bool succ = dbus_message_set_data (message, id, (void *)pretty, NULL);
41 if (! succ)
42 {
43 LOG (GNUNET_ERROR_TYPE_ERROR, "dbus_message_set_data failed. id == %lld\n", (long long)id);
44 GNUNET_abort_ ();
45 };
46};
47
48void
49GNUNET_DBUS_message_set_destination (
50 DBusMessage *message,
51 struct GNUNET_DBUS_Client *client)
52{
53 dbus_message_set_destination (message, GNUNET_DBUS_client_get_unique_name (client));
54}
55
56void
57GNUNET_DBUS_message_unset_destination (
58 DBusMessage *message)
59{
60 dbus_message_set_destination (message, NULL);
61}
62