On Fri, Sep 11, 2009 at 06:00:07PM +0200, Daniel Veillard wrote: > On Fri, Sep 11, 2009 at 03:19:17PM +0100, Daniel P. Berrange wrote: > > Convert all the secret/storage encryption APIs / wire format to > > handle UUIDs in raw format instead of non-canonical printable > > format. Guarentees data format correctness. > > > + * > > + * Returns a new secret object or NULL in case of failure. If the > > + * secret cannot be found, then VIR_ERR_NO_SECRET error is raised. > > + */ > > +virSecretPtr > > +virSecretLookupByUUIDString(virConnectPtr conn, const char *uuidstr) > > +{ > > + int raw[VIR_UUID_BUFLEN], i; > > + unsigned char uuid[VIR_UUID_BUFLEN]; > > + int ret; > > + > > + DEBUG("conn=%p, uuidstr=%s", conn, uuidstr); > > + > > + virResetLastError(); > > + > > + if (!VIR_IS_CONNECT(conn)) { > > + virLibConnError(NULL, VIR_ERR_INVALID_CONN, __FUNCTION__); > > + return (NULL); > > + } > > + if (uuidstr == NULL) { > > + 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? > > + */ > > Hum, I would rather use virUUIDParse() to make sure there is no > confusion, a public API should be tolerant about this I think > and it's cleaner to reuse it ! This was in fact just cut+paste from the existing APIs of similar name in libvirt.c. I'll send another patch which fixes them all to use virUUIDParse. > > + 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) { > > + virLibConnError(conn, VIR_ERR_INVALID_ARG, __FUNCTION__); > > + goto error; > > + } > > + for (i = 0; i < VIR_UUID_BUFLEN; i++) > > + uuid[i] = raw[i] & 0xFF; > > > ACK, overall an important cleanup, as it affects the API and the > network format ! 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 :| -- Libvir-list mailing list Libvir-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libvir-list