[Libvir] UUID buffer lengths [was Re: Virtual networking]
Daniel Veillard
veillard at redhat.com
Tue Jan 23 13:02:23 UTC 2007
On Tue, Jan 23, 2007 at 12:59:49PM +0000, Daniel P. Berrange wrote:
> On Tue, Jan 23, 2007 at 12:37:50PM +0000, Mark McLoughlin wrote:
> > On Tue, 2007-01-23 at 11:20 +0100, Karel Zak wrote:
> >
> > > + char uuid[37];
> > >
> > > Magic number? :-)
> > >
> > > #define UUID_STRLEN 36
> > >
> > > char uuid[UUID_STRLEN+1];
> >
> > Good point. Here's a proposed API addition to put the buffer lengths as
> > macros in libvirt.h.
> >
> > Anyone got objections to that?
>
> No objections, but I think if we're going to do this, we should take it
> one step further and provide APIs for converting between RAW & Printable
> versions of UUID in both directions. Currently we're just duping this
> conversion code all over the place - with inconsistent use of '-' in
> the printable versions.
>
>
> /*
> * uuidstr: the printable UUID string
> * uuid: pre-allocated buffer of length VIR_UUID_BUFLEN
> */
> int virUUIDParseString(const char *uuidstr, unsigned char *uuid)
>
> /*
> * uuid: the raw UUID valu exactly VIR_UUID_BUFLEN bytes long
> * uuidstr: pre-allocated buffer of length VIR_UUID_STRING_BUFLEN
> * to be filled in printable UUID
> */
> int virUUIDFormatString(const unsigned char *uuid, char *uuidstr)
>
> Oh and a thing to generate a random UUID too is needed by both the xm_internal
> and qemu & test backends
>
> int virUUIDGenerate(unsigned char *uuid);
>
> Probably we only need any of this stuff in the internal headers though, rather
> than public facing
Mark's patch extend the public API, that's fine, but I think the conversion
internally should be private. IMHO that's part of the many think we identified
to go in /lib/ shared code.
Daniel
--
Red Hat Virtualization group http://redhat.com/virtualization/
Daniel Veillard | virtualization library http://libvirt.org/
veillard at redhat.com | libxml GNOME XML XSLT toolkit http://xmlsoft.org/
http://veillard.com/ | Rpmfind RPM search engine http://rpmfind.net/
More information about the libvir-list
mailing list