diff options
Diffstat (limited to 'src/libhydra/plugins/kernel_netlink/kernel_netlink_plugin.c')
| -rw-r--r-- | src/libhydra/plugins/kernel_netlink/kernel_netlink_plugin.c | 17 | 
1 files changed, 10 insertions, 7 deletions
| diff --git a/src/libhydra/plugins/kernel_netlink/kernel_netlink_plugin.c b/src/libhydra/plugins/kernel_netlink/kernel_netlink_plugin.c index 212675d1a..9fc1a03f5 100644 --- a/src/libhydra/plugins/kernel_netlink/kernel_netlink_plugin.c +++ b/src/libhydra/plugins/kernel_netlink/kernel_netlink_plugin.c @@ -33,10 +33,8 @@ struct private_kernel_netlink_plugin_t {  	kernel_netlink_plugin_t public;  }; -/** - * Implementation of plugin_t.destroy - */ -static void destroy(private_kernel_netlink_plugin_t *this) +METHOD(plugin_t, destroy, void, +	private_kernel_netlink_plugin_t *this)  {  	hydra->kernel_interface->remove_ipsec_interface(hydra->kernel_interface,  					(kernel_ipsec_constructor_t)kernel_netlink_ipsec_create); @@ -50,10 +48,15 @@ static void destroy(private_kernel_netlink_plugin_t *this)   */  plugin_t *kernel_netlink_plugin_create()  { -	private_kernel_netlink_plugin_t *this = malloc_thing(private_kernel_netlink_plugin_t); - -	this->public.plugin.destroy = (void(*)(plugin_t*))destroy; +	private_kernel_netlink_plugin_t *this; +	INIT(this, +		.public = { +			.plugin = { +				.destroy = _destroy, +			}, +		}, +	);  	hydra->kernel_interface->add_ipsec_interface(hydra->kernel_interface,  					(kernel_ipsec_constructor_t)kernel_netlink_ipsec_create);  	hydra->kernel_interface->add_net_interface(hydra->kernel_interface, | 
