diff options
Diffstat (limited to 'main/strongswan/0010-shunt-manager-Remove-stored-entries-if-installation-.patch')
-rw-r--r-- | main/strongswan/0010-shunt-manager-Remove-stored-entries-if-installation-.patch | 43 |
1 files changed, 0 insertions, 43 deletions
diff --git a/main/strongswan/0010-shunt-manager-Remove-stored-entries-if-installation-.patch b/main/strongswan/0010-shunt-manager-Remove-stored-entries-if-installation-.patch deleted file mode 100644 index f8af98c62f..0000000000 --- a/main/strongswan/0010-shunt-manager-Remove-stored-entries-if-installation-.patch +++ /dev/null @@ -1,43 +0,0 @@ -From 616ff9a2369fd250a2b9e8d2a00f37e2e8d3a2f3 Mon Sep 17 00:00:00 2001 -From: Tobias Brunner <tobias@strongswan.org> -Date: Tue, 14 Jul 2015 16:50:32 +0200 -Subject: [PATCH] shunt-manager: Remove stored entries if installation fails - ---- - src/libcharon/sa/shunt_manager.c | 13 +++++++++++-- - 1 file changed, 11 insertions(+), 2 deletions(-) - -diff --git a/src/libcharon/sa/shunt_manager.c b/src/libcharon/sa/shunt_manager.c -index 434bace..2e42e7e 100644 ---- a/src/libcharon/sa/shunt_manager.c -+++ b/src/libcharon/sa/shunt_manager.c -@@ -122,7 +122,7 @@ METHOD(shunt_manager_t, install, bool, - { - enumerator_t *enumerator; - child_cfg_t *child_cfg; -- bool found = FALSE; -+ bool found = FALSE, success; - - /* check if not already installed */ - this->lock->write_lock(this->lock); -@@ -146,7 +146,16 @@ METHOD(shunt_manager_t, install, bool, - this->shunts->insert_last(this->shunts, child->get_ref(child)); - this->lock->unlock(this->lock); - -- return install_shunt_policy(child); -+ success = install_shunt_policy(child); -+ -+ if (!success) -+ { -+ this->lock->write_lock(this->lock); -+ this->shunts->remove(this->shunts, child, NULL); -+ this->lock->unlock(this->lock); -+ child->destroy(child); -+ } -+ return success; - } - - /** --- -2.4.6 - |