summaryrefslogtreecommitdiff
path: root/plugins/vpn.c
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/vpn.c')
-rw-r--r--plugins/vpn.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/plugins/vpn.c b/plugins/vpn.c
index 4685b513..b75df05d 100644
--- a/plugins/vpn.c
+++ b/plugins/vpn.c
@@ -106,14 +106,16 @@ void vpn_died(struct connman_task *task, int exit_code, void *user_data)
{
struct connman_provider *provider = user_data;
struct vpn_data *data = connman_provider_get_data(provider);
- int state = data->state;
+ int state = VPN_STATE_FAILURE;
enum connman_provider_error ret;
DBG("provider %p data %p", provider, data);
- if (!data)
+ if (data == NULL)
goto vpn_exit;
+ state = data->state;
+
kill_tun(data->if_name);
connman_provider_set_data(provider, NULL);
connman_rtnl_remove_watch(data->watch);