File 0054-vici-signal-waiting-threads-when-skipping-disconnected-connections.patch of Package strongswan.31464

commit eec3bdb04a1e24bfcab6fa828c15e613f2952cf3
Author: Tobias Brunner <tobias@strongswan.org>
Date:   Fri May 7 15:32:49 2021 +0200

    vici: Signal waiting threads when skipping disconnected connections
    
    If two threads are waiting in find_entry() and remove_entry(),
    respectively, and the former is woken first, the latter remains stuck
    as it won't get signaled.

diff --git a/src/libcharon/plugins/vici/vici_socket.c b/src/libcharon/plugins/vici/vici_socket.c
index babbc6d4b..58d33587d 100644
--- a/src/libcharon/plugins/vici/vici_socket.c
+++ b/src/libcharon/plugins/vici/vici_socket.c
@@ -191,6 +191,7 @@ static entry_t* find_entry(private_vici_socket_t *this, stream_t *stream,
 			}
 			if (entry->disconnecting)
 			{
+				entry->cond->signal(entry->cond);
 				continue;
 			}
 			candidate = TRUE;
openSUSE Build Service is sponsored by