[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 11/15] qio: non-default context for TLS hands
From: |
Daniel P . Berrangé |
Subject: |
Re: [Qemu-devel] [PATCH v2 11/15] qio: non-default context for TLS handshake |
Date: |
Thu, 1 Mar 2018 15:50:01 +0000 |
User-agent: |
Mutt/1.9.2 (2017-12-15) |
On Thu, Mar 01, 2018 at 04:44:34PM +0800, Peter Xu wrote:
> qio_channel_tls_handshake_full() is introduced to allow the TLS to be
> run on a non-default context. Still, no functional change.
>
> Signed-off-by: Peter Xu <address@hidden>
> ---
> include/io/channel-tls.h | 17 ++++++++++++++++
> io/channel-tls.c | 51
> +++++++++++++++++++++++++++++++++++-------------
> 2 files changed, 54 insertions(+), 14 deletions(-)
>
> static void qio_channel_tls_handshake_task(QIOChannelTLS *ioc,
> - QIOTask *task)
> + QIOTask *task,
> + GMainContext *context)
> {
> Error *err = NULL;
> QCryptoTLSSessionHandshakeStatus status;
> @@ -171,6 +177,11 @@ static void qio_channel_tls_handshake_task(QIOChannelTLS
> *ioc,
> qio_task_complete(task);
> } else {
> GIOCondition condition;
> + QIOChannelTLSData *data = g_new0(typeof(*data), 1);
> +
> + data->task = task;
> + data->context = context;
The 'context' reference is only valid for as long as the caller
exists. So you need to acquire a reference on 'context' here....
> @@ -191,20 +203,23 @@ static gboolean qio_channel_tls_handshake_io(QIOChannel
> *ioc,
> GIOCondition condition,
> gpointer user_data)
> {
> - QIOTask *task = user_data;
> + QIOChannelTLSData *data = user_data;
> + QIOTask *task = data->task;
> + GMainContext *context = data->context;
> QIOChannelTLS *tioc = QIO_CHANNEL_TLS(
> qio_task_get_source(task));
>
> - qio_channel_tls_handshake_task(
> - tioc, task);
> + g_free(data);
> + qio_channel_tls_handshake_task(tioc, task, context);
And release the reference on context here.
Regards,
Daniel
--
|: https://berrange.com -o- https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org -o- https://fstop138.berrange.com :|
|: https://entangle-photo.org -o- https://www.instagram.com/dberrange :|
- Re: [Qemu-devel] [PATCH v2 08/15] chardev: allow telnet gsource to switch gcontext, (continued)
[Qemu-devel] [PATCH v2 10/15] qio: non-default context for async conn, Peter Xu, 2018/03/01
[Qemu-devel] [PATCH v2 09/15] qio: non-default context for threaded qtask, Peter Xu, 2018/03/01
[Qemu-devel] [PATCH v2 11/15] qio: non-default context for TLS handshake, Peter Xu, 2018/03/01
[Qemu-devel] [PATCH v2 12/15] chardev: introduce chr_machine_done hook, Peter Xu, 2018/03/01
[Qemu-devel] [PATCH v2 13/15] char: use chardev's gcontext for async connect, Peter Xu, 2018/03/01
[Qemu-devel] [PATCH v2 14/15] chardev: tcp: postpone async connection setup, Peter Xu, 2018/03/01