diff --git a/attrib/client.c b/attrib/client.c
index 0d828c0..f7c78d3 100644
--- a/attrib/client.c
+++ b/attrib/client.c
struct gatt_service {
struct btd_device *dev;
DBusConnection *conn;
- char *path;
GSList *primary;
GAttrib *attrib;
DBusMessage *msg;
g_slist_free_full(gatt->primary, primary_free);
g_attrib_unref(gatt->attrib);
- g_free(gatt->path);
btd_device_unref(gatt->dev);
dbus_connection_unref(gatt->conn);
g_free(gatt);
static GSList *register_primaries(struct gatt_service *gatt, GSList *primaries)
{
+ struct btd_device *device = gatt->dev;
GSList *l, *paths;
+ const char *device_path;
+
+ device_path = device_get_path(device);
for (paths = NULL, l = primaries; l; l = l->next) {
struct att_primary *att = l->data;
prim = g_new0(struct primary, 1);
prim->att = att;
prim->gatt = gatt;
- prim->path = g_strdup_printf("%s/service%04x", gatt->path,
+ prim->path = g_strdup_printf("%s/service%04x", device_path,
att->start);
g_dbus_register_interface(gatt->conn, prim->path,
struct btd_device *device, int psm,
GAttrib *attrib, GSList *primaries)
{
- const char *path = device_get_path(device);
struct gatt_service *gatt;
gatt = g_new0(struct gatt_service, 1);
gatt->dev = btd_device_ref(device);
gatt->conn = dbus_connection_ref(connection);
gatt->listen = FALSE;
- gatt->path = g_strdup(path);
gatt->psm = psm;
if (attrib)