summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJukka Rissanen <jukka.rissanen@linux.intel.com>2012-11-30 11:30:51 +0200
committerPatrik Flykt <patrik.flykt@linux.intel.com>2012-11-30 15:01:19 +0200
commitc6dc437648097c21965ca87016365a7d6616ad32 (patch)
treefe0ea4c82fc07c9c272605d4b3c024041d3c57cd
parentd27c42180b7d0d6fe0e7516019d61d6022421799 (diff)
downloadconnman-c6dc437648097c21965ca87016365a7d6616ad32.tar.gz
connman-c6dc437648097c21965ca87016365a7d6616ad32.tar.bz2
connman-c6dc437648097c21965ca87016365a7d6616ad32.zip
vpn: Driver disconnect needs provider information
The provider pointer needs to be passed to VPN driver when disconnecting. Otherwise we cannot find the correct provider that is being disconnected.
-rw-r--r--vpn/plugins/vpn.c2
-rw-r--r--vpn/plugins/vpn.h2
2 files changed, 2 insertions, 2 deletions
diff --git a/vpn/plugins/vpn.c b/vpn/plugins/vpn.c
index a8603d92..05068f58 100644
--- a/vpn/plugins/vpn.c
+++ b/vpn/plugins/vpn.c
@@ -458,7 +458,7 @@ static int vpn_disconnect(struct vpn_provider *provider)
vpn_driver_data = g_hash_table_lookup(driver_hash, name);
if (vpn_driver_data->vpn_driver->disconnect)
- vpn_driver_data->vpn_driver->disconnect();
+ vpn_driver_data->vpn_driver->disconnect(provider);
if (data->watch != 0) {
vpn_provider_unref(provider);
diff --git a/vpn/plugins/vpn.h b/vpn/plugins/vpn.h
index d1e322c1..6f86aac5 100644
--- a/vpn/plugins/vpn.h
+++ b/vpn/plugins/vpn.h
@@ -46,7 +46,7 @@ struct vpn_driver {
int (*connect) (struct vpn_provider *provider,
struct connman_task *task, const char *if_name,
vpn_provider_connect_cb_t cb, void *user_data);
- void (*disconnect) (void);
+ void (*disconnect) (struct vpn_provider *provider);
int (*error_code) (int exit_code);
int (*save) (struct vpn_provider *provider, GKeyFile *keyfile);
};