When removing a service, let the service disconnect take the service
to the idle state. Also, when unsetting the 'Error' property, don't
force the service to idle.
---
src/service.c | 15 ++-------------
1 file changed, 2 insertions(+), 13 deletions(-)
diff --git a/src/service.c b/src/service.c
index b98b1de..b5e1eff 100644
--- a/src/service.c
+++ b/src/service.c
@@ -3420,17 +3420,6 @@ static void set_error(struct connman_service *service,
DBUS_TYPE_STRING, &str);
}
-static void set_idle(struct connman_service *service)
-{
- if (service->state == CONNMAN_SERVICE_STATE_IDLE)
- return;
-
- service->state = service->state_ipv4 = service->state_ipv6 =
- CONNMAN_SERVICE_STATE_IDLE;
- set_error(service, CONNMAN_SERVICE_ERROR_UNKNOWN);
- state_changed(service);
-}
-
static DBusMessage *clear_property(DBusConnection *conn,
DBusMessage *msg, void *user_data)
{
@@ -3443,7 +3432,7 @@ static DBusMessage *clear_property(DBusConnection *conn,
DBUS_TYPE_INVALID);
if (g_str_equal(name, "Error")) {
- set_idle(service);
+ set_error(service, CONNMAN_SERVICE_ERROR_UNKNOWN);
g_get_current_time(&service->modified);
service_save(service);
@@ -4051,7 +4040,7 @@ bool __connman_service_remove(struct connman_service
*service)
g_free(service->eap);
service->eap = NULL;
- set_idle(service);
+ service->error = CONNMAN_SERVICE_ERROR_UNKNOWN;
__connman_service_set_favorite(service, false);
--
1.8.5.3
_______________________________________________
connman mailing list
[email protected]
https://lists.connman.net/mailman/listinfo/connman