summaryrefslogtreecommitdiff
path: root/vpn/vpn-provider.c
diff options
context:
space:
mode:
Diffstat (limited to 'vpn/vpn-provider.c')
-rw-r--r--vpn/vpn-provider.c7
1 files changed, 7 insertions, 0 deletions
diff --git a/vpn/vpn-provider.c b/vpn/vpn-provider.c
index 2519dd52..0046ea7f 100644
--- a/vpn/vpn-provider.c
+++ b/vpn/vpn-provider.c
@@ -1204,6 +1204,13 @@ static int provider_indicate_state(struct vpn_provider *provider,
connman_dbus_property_changed_basic(provider->path,
VPN_CONNECTION_INTERFACE, "State",
DBUS_TYPE_STRING, &str);
+ /*
+ * We do not stay in failure state as clients like connmand can
+ * get confused about our current state.
+ */
+ if (provider->state == VPN_PROVIDER_STATE_FAILURE)
+ provider->state = VPN_PROVIDER_STATE_IDLE;
+
return 0;
}