qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH v4 7/7] crypto: Make QCryptoTLSCreds* structures private


From: Daniel P . Berrangé
Subject: Re: [PATCH v4 7/7] crypto: Make QCryptoTLSCreds* structures private
Date: Thu, 17 Jun 2021 13:15:15 +0100
User-agent: Mutt/2.0.7 (2021-05-04)

On Thu, Jun 17, 2021 at 02:08:17PM +0200, Philippe Mathieu-Daudé wrote:
> On 6/17/21 11:35 AM, Daniel P. Berrangé wrote:
> > On Wed, Jun 16, 2021 at 06:22:25PM +0200, Philippe Mathieu-Daudé wrote:
> >> Code consuming the "crypto/tlscreds*.h" APIs doesn't need
> >> to access its internals. Move the structure definitions to
> >> the "tlscredspriv.h" private header (only accessible by
> >> implementations). The public headers (in include/) still
> >> forward-declare the structures typedef.
> >>
> >> This solves a bug introduced by commit 7de2e856533 which made
> >> migration/qemu-file-channel.c include "io/channel-tls.h",
> >> itself sometime depends on GNUTLS, leading to build failure
> >> on OSX:
> >>
> >>   [2/35] Compiling C object 
> >> libmigration.fa.p/migration_qemu-file-channel.c.o
> >>   FAILED: libmigration.fa.p/migration_qemu-file-channel.c.o
> >>   cc -Ilibmigration.fa.p -I. -I.. -Iqapi [ ... ] -o 
> >> libmigration.fa.p/migration_qemu-file-channel.c.o -c 
> >> ../migration/qemu-file-channel.c
> >>   In file included from ../migration/qemu-file-channel.c:29:
> >>   In file included from include/io/channel-tls.h:26:
> >>   In file included from include/crypto/tlssession.h:24:
> >>   include/crypto/tlscreds.h:28:10: fatal error: 'gnutls/gnutls.h' file not 
> >> found
> >>   #include <gnutls/gnutls.h>
> >>            ^~~~~~~~~~~~~~~~~
> >>   1 error generated.
> >>
> >> Reported-by: Stefan Weil <sw@weilnetz.de>
> >> Suggested-by: Daniel P. Berrangé <berrange@redhat.com>
> >> Resolves: https://gitlab.com/qemu-project/qemu/-/issues/407
> >> Fixes: 7de2e856533 ("yank: Unregister function when using TLS migration")
> >> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
> >> ---
> >>  crypto/tlscredspriv.h              | 45 ++++++++++++++++++++++++++++++
> >>  include/crypto/tls-cipher-suites.h |  6 ----
> >>  include/crypto/tlscreds.h          | 16 -----------
> >>  include/crypto/tlscredsanon.h      | 12 --------
> >>  include/crypto/tlscredspsk.h       | 12 --------
> >>  include/crypto/tlscredsx509.h      | 10 -------
> >>  crypto/tls-cipher-suites.c         |  7 +++++
> >>  crypto/tlscredsanon.c              |  2 ++
> >>  crypto/tlscredspsk.c               |  2 ++
> >>  crypto/tlscredsx509.c              |  1 +
> >>  crypto/tlssession.c                |  1 +
> >>  11 files changed, 58 insertions(+), 56 deletions(-)
> 
> > I was expecting all these files, and tlscreds.c to include
> > tlscredspriv.h, otherwise how do they see the struct
> > definition they need ?
> 
> They already include it:
> 
> $ git grep tlscredspriv.h origin/master
> origin/master:crypto/tlscreds.c:24:#include "tlscredspriv.h"
> origin/master:crypto/tlscredsanon.c:23:#include "tlscredspriv.h"
> origin/master:crypto/tlscredspsk.c:23:#include "tlscredspriv.h"
> origin/master:crypto/tlscredsx509.c:23:#include "tlscredspriv.h"
> 
> This is why in this patch I only added it to tls-cipher-suites.c
> and tlssession.c.
> 
> I'll add a comment about it.

No matter, I'm just being dumb and not remembering my own code.
I thought tlscredspriv.h was a new header in your patch, but its
just adding to an existing header.


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 :|




reply via email to

[Prev in Thread] Current Thread [Next in Thread]