diff options
Diffstat (limited to 'src/provider.c')
-rw-r--r-- | src/provider.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/src/provider.c b/src/provider.c index 693552ee..9c71a200 100644 --- a/src/provider.c +++ b/src/provider.c @@ -141,12 +141,12 @@ int connman_provider_disconnect(struct connman_provider *provider) provider_indicate_state(provider, CONNMAN_SERVICE_STATE_DISCONNECT); - if (err < 0) { - if (err != -EINPROGRESS) - return err; + if (err < 0) + return err; - return -EINPROGRESS; - } + if (provider->vpn_service) + provider_indicate_state(provider, + CONNMAN_SERVICE_STATE_IDLE); return 0; } @@ -164,14 +164,15 @@ int connman_provider_remove(struct connman_provider *provider) return 0; } -int __connman_provider_connect(struct connman_provider *provider) +int __connman_provider_connect(struct connman_provider *provider, + const char *dbus_sender) { int err; DBG("provider %p", provider); if (provider->driver && provider->driver->connect) - err = provider->driver->connect(provider); + err = provider->driver->connect(provider, dbus_sender); else return -EOPNOTSUPP; |