From 025e5810dd96f6b54d7e392e6dce790d6dd42236 Mon Sep 17 00:00:00 2001 From: Patrik Flykt Date: Wed, 17 Aug 2011 12:47:05 +0300 Subject: [PATCH] service: Properly disconnect network or provider on connect failure Correctly check whether a service has a network or a VPN provider associated with it if the service fails already in __connman_service_connect(). --- src/service.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/service.c b/src/service.c index f5312b5..5fb11c0 100644 --- a/src/service.c +++ b/src/service.c @@ -4017,7 +4017,11 @@ int __connman_service_connect(struct connman_service *service) CONNMAN_SERVICE_STATE_FAILURE, CONNMAN_IPCONFIG_TYPE_IPV6); - __connman_network_disconnect(service->network); + if (service->network != NULL) + __connman_network_disconnect(service->network); + else if (service->type == CONNMAN_SERVICE_TYPE_VPN && + service->provider != NULL) + __connman_provider_disconnect(service->provider); if (service->userconnect == TRUE) { if (err == -ENOKEY) { -- 2.7.4