[libvirt] [PATCH] Remove hand-crafted UUID parsers

Daniel P. Berrange berrange at redhat.com
Fri Sep 25 09:41:08 UTC 2009


On Thu, Sep 24, 2009 at 10:13:15PM +0200, Matthias Bolte wrote:
> 2009/9/24 Daniel P. Berrange <berrange at redhat.com>:
> > * src/libvirt.c: Remove hand-crafted UUID parsers in favour of
> >  calling virParseUUID
> 
> s/virParseUUID/virUUIDParse/
> 
> > ---
> >  src/libvirt.c |   56 +++++---------------------------------------------------
> >  1 files changed, 5 insertions(+), 51 deletions(-)
> >
> > diff --git a/src/libvirt.c b/src/libvirt.c
> > index 9fb0617..74d62a4 100644
> > --- a/src/libvirt.c
> > +++ b/src/libvirt.c
> > @@ -1839,26 +1839,11 @@ virDomainLookupByUUIDString(virConnectPtr conn, const char *uuidstr)
> >         virLibConnError(conn, VIR_ERR_INVALID_ARG, __FUNCTION__);
> >         goto error;
> >     }
> > -    /* XXX: sexpr_uuid() also supports 'xxxx-xxxx-xxxx-xxxx' format.
> > -     *      We needn't it here. Right?
> > -     */
> > -    ret = sscanf(uuidstr,
> > -                 "%02x%02x%02x%02x-"
> > -                 "%02x%02x-"
> > -                 "%02x%02x-"
> > -                 "%02x%02x-"
> > -                 "%02x%02x%02x%02x%02x%02x",
> > -                 raw + 0, raw + 1, raw + 2, raw + 3,
> > -                 raw + 4, raw + 5, raw + 6, raw + 7,
> > -                 raw + 8, raw + 9, raw + 10, raw + 11,
> > -                 raw + 12, raw + 13, raw + 14, raw + 15);
> > -
> > -    if (ret!=VIR_UUID_BUFLEN) {
> > +
> > +    if (virUUIDParse(uuidstr, uuid) < 0) {
> >         virLibConnError(conn, VIR_ERR_INVALID_ARG, __FUNCTION__);
> >         goto error;
> >     }
> > -    for (i = 0; i < VIR_UUID_BUFLEN; i++)
> > -        uuid[i] = raw[i] & 0xFF;
> >
> >     return virDomainLookupByUUID(conn, &uuid[0]);
> >
> > @@ -5038,26 +5023,10 @@ virNetworkLookupByUUIDString(virConnectPtr conn, const char *uuidstr)
> >         goto error;
> >     }
> >
> > -    /* XXX: sexpr_uuid() also supports 'xxxx-xxxx-xxxx-xxxx' format.
> > -     *      We needn't it here. Right?
> > -     */
> > -    ret = sscanf(uuidstr,
> > -                 "%02x%02x%02x%02x-"
> > -                 "%02x%02x-"
> > -                 "%02x%02x-"
> > -                 "%02x%02x-"
> > -                 "%02x%02x%02x%02x%02x%02x",
> > -                 raw + 0, raw + 1, raw + 2, raw + 3,
> > -                 raw + 4, raw + 5, raw + 6, raw + 7,
> > -                 raw + 8, raw + 9, raw + 10, raw + 11,
> > -                 raw + 12, raw + 13, raw + 14, raw + 15);
> > -
> > -    if (ret!=VIR_UUID_BUFLEN) {
> > +    if (virUUIDParse(uuidstr, uuid) < 0) {
> >         virLibConnError(conn, VIR_ERR_INVALID_ARG, __FUNCTION__);
> >         goto error;
> >     }
> > -    for (i = 0; i < VIR_UUID_BUFLEN; i++)
> > -        uuid[i] = raw[i] & 0xFF;
> >
> >     return virNetworkLookupByUUID(conn, &uuid[0]);
> >
> > @@ -8887,26 +8856,11 @@ virSecretLookupByUUIDString(virConnectPtr conn, const char *uuidstr)
> >         virLibConnError(conn, VIR_ERR_INVALID_ARG, __FUNCTION__);
> >         goto error;
> >     }
> > -    /* XXX: sexpr_uuid() also supports 'xxxx-xxxx-xxxx-xxxx' format.
> > -     *      We needn't it here. Right?
> > -     */
> > -    ret = sscanf(uuidstr,
> > -                 "%02x%02x%02x%02x-"
> > -                 "%02x%02x-"
> > -                 "%02x%02x-"
> > -                 "%02x%02x-"
> > -                 "%02x%02x%02x%02x%02x%02x",
> > -                 raw + 0, raw + 1, raw + 2, raw + 3,
> > -                 raw + 4, raw + 5, raw + 6, raw + 7,
> > -                 raw + 8, raw + 9, raw + 10, raw + 11,
> > -                 raw + 12, raw + 13, raw + 14, raw + 15);
> > -
> > -    if (ret!=VIR_UUID_BUFLEN) {
> > +
> > +    if (virUUIDParse(uuidstr, uuid) < 0) {
> >         virLibConnError(conn, VIR_ERR_INVALID_ARG, __FUNCTION__);
> >         goto error;
> >     }
> > -    for (i = 0; i < VIR_UUID_BUFLEN; i++)
> > -        uuid[i] = raw[i] & 0xFF;
> >
> >     return virSecretLookupByUUID(conn, &uuid[0]);
> >
> > --
> > 1.6.2.5
> >
> 
> You removed the usage of raw, i and ret in this 3 functions, but
> forgot to remove the variable definitions as well.

That's odd, the compiler didn't complain about those.

Daniel
-- 
|: Red Hat, Engineering, London   -o-   http://people.redhat.com/berrange/ :|
|: http://libvirt.org  -o-  http://virt-manager.org  -o-  http://ovirt.org :|
|: http://autobuild.org       -o-         http://search.cpan.org/~danberr/ :|
|: GnuPG: 7D3B9505  -o-  F3C9 553F A1DA 4AC2 5648 23C1 B3DF F742 7D3B 9505 :|




More information about the libvir-list mailing list