diff options
-rw-r--r-- | include/provider.h | 1 | ||||
-rw-r--r-- | src/provider.c | 13 |
2 files changed, 14 insertions, 0 deletions
diff --git a/include/provider.h b/include/provider.h index bfefaed3..fdd8ae0d 100644 --- a/include/provider.h +++ b/include/provider.h @@ -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); diff --git a/src/provider.c b/src/provider.c index b86e7d67..f7bb4e10 100644 --- a/src/provider.c +++ b/src/provider.c @@ -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; |