1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
|
#include "config.h"
#include <gnunet/platform.h>
#include <gnunet/gnunet_common.h>
#include "gnunet_dbus_lib_message.h"
#define LOG(kind, ...) GNUNET_log_from (kind, "dbus-message", __VA_ARGS__)
static dbus_int32_t
pretty_slot_id ()
{
static dbus_int32_t id = -1;
if (-1 == id)
{
dbus_bool_t succ = dbus_message_allocate_data_slot (&id);
if (! succ || -1 == id)
{
LOG (GNUNET_ERROR_TYPE_ERROR, "dbus_message_allocate_data_slot failed. id == %lld\n", (long long)id);
GNUNET_abort_ ();
};
};
return id;
};
bool
GNUNET_DBUS_message_get_pretty (
DBusMessage *message)
{
return (bool)dbus_message_get_data (message, pretty_slot_id ());
}
void
GNUNET_DBUS_message_set_pretty (
DBusMessage *message,
bool pretty)
{
dbus_int32_t id = pretty_slot_id ();
bool succ = dbus_message_set_data (message, id, (void *)pretty, NULL);
if (! succ)
{
LOG (GNUNET_ERROR_TYPE_ERROR, "dbus_message_set_data failed. id == %lld\n", (long long)id);
GNUNET_abort_ ();
};
};
void
GNUNET_DBUS_message_set_destination (
DBusMessage *message,
struct GNUNET_DBUS_Client *client)
{
dbus_message_set_destination (message, GNUNET_DBUS_client_get_unique_name (client));
}
void
GNUNET_DBUS_message_unset_destination (
DBusMessage *message)
{
dbus_message_set_destination (message, NULL);
}
|