diff options
-rw-r--r-- | vpn/vpn-provider.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/vpn/vpn-provider.c b/vpn/vpn-provider.c index 0b164c04..e98573fb 100644 --- a/vpn/vpn-provider.c +++ b/vpn/vpn-provider.c @@ -966,14 +966,10 @@ int __vpn_provider_disconnect(struct vpn_provider *provider) else return -EOPNOTSUPP; - if (err < 0) { - if (err != -EINPROGRESS) - return err; - - return -EINPROGRESS; - } + if (err == -EINPROGRESS) + vpn_provider_set_state(provider, VPN_PROVIDER_STATE_CONNECT); - return 0; + return err; } static void connect_cb(struct vpn_provider *provider, void *user_data, @@ -1009,6 +1005,9 @@ int __vpn_provider_connect(struct vpn_provider *provider, DBusMessage *msg) } else return -EOPNOTSUPP; + if (err == -EINPROGRESS) + vpn_provider_set_state(provider, VPN_PROVIDER_STATE_CONNECT); + return err; } |