The VPN needs to be able to call the provider disconnect.
---
 include/provider.h | 2 ++
 src/connman.h      | 1 -
 src/provider.c     | 4 ++--
 src/service.c      | 8 ++++----
 4 files changed, 8 insertions(+), 7 deletions(-)

diff --git a/include/provider.h b/include/provider.h
index 2a71b95..cd059a8 100644
--- a/include/provider.h
+++ b/include/provider.h
@@ -71,6 +71,8 @@ connman_provider_ref_debug(struct connman_provider *provider,
 void connman_provider_unref_debug(struct connman_provider *provider,
                        const char *file, int line, const char *caller);
 
+int connman_provider_disconnect(struct connman_provider *provider);
+
 int connman_provider_set_string(struct connman_provider *provider,
                                        const char *key, const char *value);
 const char *connman_provider_get_string(struct connman_provider *provider,
diff --git a/src/connman.h b/src/connman.h
index ebdaaac..779a8cd 100644
--- a/src/connman.h
+++ b/src/connman.h
@@ -559,7 +559,6 @@ int __connman_provider_indicate_state(struct 
connman_provider *provider,
 int __connman_provider_indicate_error(struct connman_provider *provider,
                                        enum connman_provider_error error);
 int __connman_provider_connect(struct connman_provider *provider);
-int __connman_provider_disconnect(struct connman_provider *provider);
 int __connman_provider_remove(const char *path);
 void __connman_provider_cleanup(void);
 int __connman_provider_init(void);
diff --git a/src/provider.c b/src/provider.c
index 3af6f19..c93a792 100644
--- a/src/provider.c
+++ b/src/provider.c
@@ -432,7 +432,7 @@ static int provider_indicate_state(struct connman_provider 
*provider,
                                        state, CONNMAN_IPCONFIG_TYPE_IPV6);
 }
 
-int __connman_provider_disconnect(struct connman_provider *provider)
+int connman_provider_disconnect(struct connman_provider *provider)
 {
        int err;
 
@@ -1478,7 +1478,7 @@ static void provider_service_changed(struct 
connman_service *service,
 
        DBG("disconnect %p index %d", provider, vpn_index);
 
-       __connman_provider_disconnect(provider);
+       connman_provider_disconnect(provider);
 
        return;
 }
diff --git a/src/service.c b/src/service.c
index 3417e89..5476e84 100644
--- a/src/service.c
+++ b/src/service.c
@@ -3606,7 +3606,7 @@ static gboolean connect_timeout(gpointer user_data)
        if (service->network != NULL)
                __connman_network_disconnect(service->network);
        else if (service->provider != NULL)
-               __connman_provider_disconnect(service->provider);
+               connman_provider_disconnect(service->provider);
 
        __connman_ipconfig_disable(service->ipconfig_ipv4);
        __connman_ipconfig_disable(service->ipconfig_ipv6);
@@ -5080,7 +5080,7 @@ static int service_indicate_state(struct connman_service 
*service)
                if (__connman_notifier_is_connected() == FALSE &&
                        def_service != NULL &&
                                def_service->provider != NULL)
-                       __connman_provider_disconnect(def_service->provider);
+                       connman_provider_disconnect(def_service->provider);
 
                default_changed();
 
@@ -5651,7 +5651,7 @@ int __connman_service_connect(struct connman_service 
*service)
                __connman_network_disconnect(service->network);
        else if (service->type == CONNMAN_SERVICE_TYPE_VPN &&
                                service->provider != NULL)
-                       __connman_provider_disconnect(service->provider);
+                       connman_provider_disconnect(service->provider);
 
        if (service->userconnect == TRUE) {
                if (err == -ENOKEY || err == -EPERM) {
@@ -5693,7 +5693,7 @@ int __connman_service_disconnect(struct connman_service 
*service)
                err = __connman_network_disconnect(service->network);
        } else if (service->type == CONNMAN_SERVICE_TYPE_VPN &&
                                        service->provider != NULL)
-               err = __connman_provider_disconnect(service->provider);
+               err = connman_provider_disconnect(service->provider);
        else
                return -EOPNOTSUPP;
 
-- 
1.7.11.4

_______________________________________________
connman mailing list
[email protected]
http://lists.connman.net/listinfo/connman

Reply via email to