summary refs log tree commit diff stats
path: root/io/channel-tls.c
diff options
context:
space:
mode:
authorDaniel P. Berrangé <berrange@redhat.com>2025-07-18 16:05:12 +0100
committerFabiano Rosas <farosas@suse.de>2025-07-22 19:39:30 -0300
commitedea818371bd7179b55f38d3b113d342251d8f9b (patch)
tree2459be8560010e2d770edf156fbda47389aa54d1 /io/channel-tls.c
parent24ad5e19952b326796c8a3a1595c57ff180dab84 (diff)
downloadfocaccia-qemu-edea818371bd7179b55f38d3b113d342251d8f9b.tar.gz
focaccia-qemu-edea818371bd7179b55f38d3b113d342251d8f9b.zip
io: add support for activating TLS thread safety workaround
Add a QIO_CHANNEL_FEATURE_CONCURRENT_IO feature flag.

If this is set on a QIOChannelTLS session object, the TLS
session will be marked as requiring thread safety, which
will activate the workaround for GNUTLS bug 1717 if needed.

Signed-off-by: Daniel P. Berrangé <berrange@redhat.com>
Reviewed-by: Fabiano Rosas <farosas@suse.de>
Link: https://lore.kernel.org/qemu-devel/20250718150514.2635338-3-berrange@redhat.com
Signed-off-by: Fabiano Rosas <farosas@suse.de>
Diffstat (limited to 'io/channel-tls.c')
-rw-r--r--io/channel-tls.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/io/channel-tls.c b/io/channel-tls.c
index db2ac1deae..a8248a9216 100644
--- a/io/channel-tls.c
+++ b/io/channel-tls.c
@@ -241,6 +241,11 @@ void qio_channel_tls_handshake(QIOChannelTLS *ioc,
 {
     QIOTask *task;
 
+    if (qio_channel_has_feature(QIO_CHANNEL(ioc),
+                                QIO_CHANNEL_FEATURE_CONCURRENT_IO)) {
+        qcrypto_tls_session_require_thread_safety(ioc->session);
+    }
+
     task = qio_task_new(OBJECT(ioc),
                         func, opaque, destroy);