diff --git a/doc/mesh-api.txt b/doc/mesh-api.txt
index 255104a..470751f 100644
--- a/doc/mesh-api.txt
+++ b/doc/mesh-api.txt
seconds since mesh network layer traffic was last detected on
this node's network.
+ array{uint16} Addresses [read-only]
+
+ This property contains unicast addresses of node's elements.
+
Mesh Provisioning Hierarchy
============================
Service org.bluez.mesh
diff --git a/mesh/node.c b/mesh/node.c
index 3d9ded3..b6824f5 100644
--- a/mesh/node.c
+++ b/mesh/node.c
}
+static bool addresses_getter(struct l_dbus *dbus, struct l_dbus_message *msg,
+ struct l_dbus_message_builder *builder,
+ void *user_data)
+{
+ struct mesh_node *node = user_data;
+ const struct l_queue_entry *entry;
+
+ l_dbus_message_builder_enter_array(builder, "q");
+
+ entry = l_queue_get_entries(node->elements);
+ for (; entry; entry = entry->next) {
+ const struct node_element *ele = entry->data;
+ uint16_t address = node->primary + ele->idx;
+
+ l_dbus_message_builder_append_basic(builder, 'q', &address);
+ }
+
+ l_dbus_message_builder_leave_array(builder);
+
+ return true;
+}
+
static void setup_node_interface(struct l_dbus_interface *iface)
{
l_dbus_interface_method(iface, "Send", 0, send_call, "", "oqqay",
NULL);
l_dbus_interface_property(iface, "SecondsSinceLastHeard", 0, "u",
lastheard_getter, NULL);
+ l_dbus_interface_property(iface, "Addresses", 0, "aq", addresses_getter,
+ NULL);
}
bool node_dbus_init(struct l_dbus *bus)