summaryrefslogtreecommitdiff
path: root/src/provider.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/provider.c')
-rw-r--r--src/provider.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/provider.c b/src/provider.c
index d6d1b7ed..9f7050fe 100644
--- a/src/provider.c
+++ b/src/provider.c
@@ -359,6 +359,8 @@ int connman_provider_indicate_error(struct connman_provider *provider,
enum connman_provider_error error)
{
enum connman_service_error service_error;
+ const char *path;
+ int ret;
switch (error) {
case CONNMAN_PROVIDER_ERROR_LOGIN_FAILED:
@@ -375,8 +377,12 @@ int connman_provider_indicate_error(struct connman_provider *provider,
break;
}
- return __connman_service_indicate_error(provider->vpn_service,
+ ret = __connman_service_indicate_error(provider->vpn_service,
service_error);
+ path = __connman_service_get_path(provider->vpn_service);
+ __connman_provider_remove(path);
+
+ return ret;
}
static void unregister_provider(gpointer data)