provider: New provider removal function callable from vpn plugin
authorJukka Rissanen <jukka.rissanen@linux.intel.com>
Thu, 7 Mar 2013 16:13:41 +0000 (18:13 +0200)
committerPatrik Flykt <patrik.flykt@linux.intel.com>
Fri, 8 Mar 2013 11:50:07 +0000 (13:50 +0200)
include/provider.h
src/provider.c

index bfefaed..fdd8ae0 100644 (file)
@@ -79,6 +79,7 @@ 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_remove(struct connman_provider *provider);
 
 int connman_provider_set_string(struct connman_provider *provider,
                                        const char *key, const char *value);
index b86e7d6..f7bb4e1 100644 (file)
@@ -150,6 +150,19 @@ int connman_provider_disconnect(struct connman_provider *provider)
        return 0;
 }
 
+int connman_provider_remove(struct connman_provider *provider)
+{
+       DBG("Removing VPN %s", provider->identifier);
+
+       provider_remove(provider);
+
+       connman_provider_set_state(provider, CONNMAN_PROVIDER_STATE_IDLE);
+
+       g_hash_table_remove(provider_hash, provider->identifier);
+
+       return 0;
+}
+
 int __connman_provider_connect(struct connman_provider *provider)
 {
        int err;