[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