On Wed, Dec 12, 2012 at 04:04:04PM +0200, Zeeshan Ali (Khattak) wrote: > On Wed, Dec 12, 2012 at 11:13 AM, Christophe Fergeau > <cfergeau@xxxxxxxxxx> wrote: > > On Wed, Dec 12, 2012 at 03:21:30AM +0200, Zeeshan Ali (Khattak) wrote: > >> From: "Zeeshan Ali (Khattak)" <zeeshanak@xxxxxxxxx> > >> > >> Keeping this API agnostic of MD5 so that we can later switch to another > >> hashing alogirthm without breaking the API. > > > > algorithm > > > >> /** > >> + * osinfo_device_driver_get_file_checksum: > >> + * @driver: a #OsinfoDeviceDriver instance > >> + * @file: The name of the driver file for which checksum is requested > >> + * @checksum_type: (out) (allow-none): place-holder to return type of the > >> + * checksum into, or NULL > >> + * > >> + * Retrieves the expected checksum for the given driver file @file. > >> + * > >> + * Returns: The file checksum > >> + */ > >> +const gchar *osinfo_device_driver_get_file_checksum(OsinfoDeviceDriver *driver, > >> + const gchar *file, > >> + GChecksumType *checksum_type) > > > > I'd prefer a > > gboolean osinfo_device_driver_check_file(OsinfoDeviceDriver *driver, const char *file, GError **error); > > rather than forcing every app to do md5/sha1/... checks by hands while we > > can easily do it for them. > > Thats the idea I started with but then I thought checksum might have > some other uses. s/uses/abuses? ;) Apps who want to get to the checksum can always use raw osinfo_entity calls, so I'm not sure we need to promote this use in the API. > Also what if app wants/needs to check data before > pushing it into a file (this is what I'm doing in Boxes). Since glib > doesn't provide simple API for computing checksum for a file (only for > a buffer in memory), perhaps its a good idea to provide this > _check_file() API in addition to exposing checksum to app. Keep in > mind that _check_file() does I/O and therefore we must provide async > variant too then. Ah, good points. gboolean osinfo_device_driver_check_file_data(OsinfoDeviceDriver *driver, const guint8 *data, gsize len, GError **error) would work for me to, and would avoid the need for async variants. Christophe
Attachment:
pgpZh84f2VHOD.pgp
Description: PGP signature
_______________________________________________ virt-tools-list mailing list virt-tools-list@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/virt-tools-list