aboutsummaryrefslogtreecommitdiffstats
path: root/src/libcharon/plugins/socket_default/socket_default_socket.c
diff options
context:
space:
mode:
authorTobias Brunner <tobias@strongswan.org>2015-07-13 13:20:14 +0200
committerTobias Brunner <tobias@strongswan.org>2015-07-27 13:50:19 +0200
commit12b3cdba7689113558f58a5265827f3086852bae (patch)
treeda0e00d5a4720be1cafb5a2d41c631082c822605 /src/libcharon/plugins/socket_default/socket_default_socket.c
parenta229bdce625338117966a53efd0475b2c7c84566 (diff)
downloadstrongswan-12b3cdba7689113558f58a5265827f3086852bae.tar.bz2
strongswan-12b3cdba7689113558f58a5265827f3086852bae.tar.xz
trap-manager: Resolve race conditions between flush() and install()
When flush() is called there might be threads in install() waiting for trap policies to get installed (without holding the lock). We have to wait until they updated the entries with the respective CHILD_SAs before destroying the list. We also have to prevent further trap policy installations (and wait until threads in install() are really finished), otherwise we might end up destroying CHILD_SA objects after the kernel interface implementations have already been unloaded (avoiding this is the whole point of calling flush() before unloading the plugins).
Diffstat (limited to 'src/libcharon/plugins/socket_default/socket_default_socket.c')
0 files changed, 0 insertions, 0 deletions