[libvirt] [PATCH 07/14] driver: use normal error reporting APIs when loading modules

Michal Privoznik mprivozn at redhat.com
Tue Apr 24 12:16:53 UTC 2018


On 04/19/2018 07:09 PM, Daniel P. Berrangé wrote:
> The driver module loading code is one of the few places that still uses
> VIR_ERROR for reporting failures. Convert it to normal error reporting
> APIs.
> 
> Signed-off-by: Daniel P. Berrangé <berrange at redhat.com>
> ---
>  src/driver.c | 34 +++++++++++++++++++++++++++-------
>  1 file changed, 27 insertions(+), 7 deletions(-)
> 
> diff --git a/src/driver.c b/src/driver.c
> index e02efe2615..9b137c39e4 100644
> --- a/src/driver.c
> +++ b/src/driver.c
> @@ -33,6 +33,7 @@
>  
>  VIR_LOG_INIT("driver");
>  
> +#define VIR_FROM_THIS VIR_FROM_NONE
>  
>  /* XXX re-implement this for other OS, or use libtools helper lib ? */
>  #define DEFAULT_DRIVER_DIR LIBDIR "/libvirt/connection-driver"
> @@ -55,8 +56,11 @@ virDriverLoadModuleFile(const char *file)
>  
>      virUpdateSelfLastChanged(file);
>  
> -    if (!(handle = dlopen(file, flags)))
> -        VIR_ERROR(_("failed to load module %s %s"), file, dlerror());
> +    if (!(handle = dlopen(file, flags))) {
> +        virReportError(VIR_ERR_INTERNAL_ERROR,
> +                       _("Failed to load module '%s': %s"), file, dlerror());

Sweet. dlerror() returns 'char *' instead of 'const char *' even though
it's returning a pointer to statically allocated buffer.

> +        return NULL;
> +    }
>  
>      return handle;
>  }

ACK

Michal




More information about the libvir-list mailing list