summaryrefslogtreecommitdiff
path: root/vpn
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 /vpn
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.
Diffstat (limited to 'vpn')
-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);
};