aboutsummaryrefslogtreecommitdiffstats
path: root/src/libhydra
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2012-05-21 13:19:57 +0200
committerTobias Brunner <tobias@strongswan.org>2012-05-21 13:33:13 +0200
commit9e19cb912de885f86205f5d06a2bf8cf89ca4294 (patch)
tree739cd432f9b56646db5acb68bfd42981b274a54f /src/libhydra
parent75d4e01c4a0739bb580664728189b549f20ff940 (diff)
downloadstrongswan-9e19cb912de885f86205f5d06a2bf8cf89ca4294.tar.bz2
strongswan-9e19cb912de885f86205f5d06a2bf8cf89ca4294.tar.xz
Destroy Netlink socket only after deleting remaining source routes.
Diffstat (limited to 'src/libhydra')
-rw-r--r--src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c b/src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c
index 8a5eaa0f7..c64a66be2 100644
--- a/src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c
+++ b/src/libhydra/plugins/kernel_netlink/kernel_netlink_net.c
@@ -1762,8 +1762,6 @@ METHOD(kernel_net_t, destroy, void,
{
close(this->socket_events);
}
- DESTROY_IF(this->socket);
-
enumerator = this->routes->create_enumerator(this->routes);
while (enumerator->enumerate(enumerator, NULL, (void**)&route))
{
@@ -1773,6 +1771,7 @@ METHOD(kernel_net_t, destroy, void,
}
enumerator->destroy(enumerator);
this->routes->destroy(this->routes);
+ DESTROY_IF(this->socket);
net_changes_clear(this);
this->net_changes->destroy(this->net_changes);