diff --git a/src/device.c b/src/device.c
index edd377c..afb0cfc 100644
--- a/src/device.c
+++ b/src/device.c
struct btd_service *service = data;
struct btd_device *device = btd_service_get_device(service);
- service_shutdown(service);
device->pending = g_slist_remove(device->pending, service);
- btd_service_unref(service);
+ service_remove(service);
}
static gboolean do_disconnect(gpointer user_data)
diff --git a/src/service.c b/src/service.c
index 83e1c1a..52a8291 100644
--- a/src/service.c
+++ b/src/service.c
return err;
}
-void service_shutdown(struct btd_service *service)
+void service_remove(struct btd_service *service)
{
change_state(service, BTD_SERVICE_STATE_UNAVAILABLE, 0);
service->profile->device_remove(service);
service->device = NULL;
service->profile = NULL;
+ btd_service_unref(service);
}
int btd_service_connect(struct btd_service *service)
diff --git a/src/service.h b/src/service.h
index 6ee8f17..5230115 100644
--- a/src/service.h
+++ b/src/service.h
struct btd_profile *profile);
int service_probe(struct btd_service *service);
-void service_shutdown(struct btd_service *service);
+void service_remove(struct btd_service *service);
/* Connection control API */
int btd_service_connect(struct btd_service *service);