From c6dc437648097c21965ca87016365a7d6616ad32 Mon Sep 17 00:00:00 2001 From: Jukka Rissanen Date: Fri, 30 Nov 2012 11:30:51 +0200 Subject: 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. --- vpn/plugins/vpn.c | 2 +- vpn/plugins/vpn.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) (limited to 'vpn') 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); }; -- cgit v1.2.3