On Tue, Mar 19, 2013 at 10:18:04AM +0000, Daniel P. Berrange wrote: > On Tue, Mar 19, 2013 at 11:05:21AM +0100, Christophe Fergeau wrote: > > osinfo_loader_process_default_path() currently returns an error if > > there was a problem when parsing the user database. This leads > > application to error out when an invalid XML file is dropped in > > ~/.config/libosinfo/db/ > > As the stricter behaviour can be achieved using public libosinfo API, > > we can change osinfo_loader_process_default_path() to be less strict > > and more useful to applications. > > --- > > osinfo/osinfo_loader.c | 6 ++++-- > > 1 file changed, 4 insertions(+), 2 deletions(-) > > > > diff --git a/osinfo/osinfo_loader.c b/osinfo/osinfo_loader.c > > index 467af3f..bc17a2e 100644 > > --- a/osinfo/osinfo_loader.c > > +++ b/osinfo/osinfo_loader.c > > @@ -1892,8 +1892,10 @@ void osinfo_loader_process_default_path(OsinfoLoader *loader, GError **err) > > goto error; > > > > osinfo_loader_process_user_path(loader, &error); > > - if (error) > > - goto error; > > + if (error) { > > + g_warning("Error loading libosinfo user data: %s", error->message); > > + g_clear_error(&error); > > + } > > It would be nice if we defined an error code for the "Directory does not exist" > error scenario, so we can skip that gracefully, but still report an fatal error > for parser problems. This still means applications need to be aware that they need to check _process_default_path() error and ignore some errors (which imho is what you want to do most of the time), so this patch makes things better for this use case. However I agree that silently ignoring errors (+ an ugly g_warning()) is not great, so I'm fine with going with the approach you suggest. Christophe
Attachment:
pgpGeUBQOeWlD.pgp
Description: PGP signature
_______________________________________________ Libosinfo mailing list Libosinfo@xxxxxxxxxx https://www.redhat.com/mailman/listinfo/libosinfo