[libvirt] [PATCH 1/7] util: consolidate duplicated error messages in virnetlink.c

Eric Blake eblake at redhat.com
Thu Mar 8 18:29:34 UTC 2012


On 03/08/2012 02:24 AM, Laine Stump wrote:
> There are special stub versions of all public functions in this file
> that are compiled when either libnl isn't available or the platform
> isn't linux. Each of these functions had two almost identical message,
> differing only in the function name included in the message. Since log
> messages already contain the function name, we can just define a const
> char* with the common part of the string, and use that same string for
> all the log messages.
> 
> Also, rather than doing #if defined ... #else ... #endif *inside the
> error log macro invocation*, this patch does #if defined ... just
> once, using it to decide which single string to define. This turns the
> error log in each function from 6 lines, to 1 line.
> ---
>  src/util/virnetlink.c |   47 ++++++++++++-----------------------------------
>  1 files changed, 12 insertions(+), 35 deletions(-)
> 
> diff --git a/src/util/virnetlink.c b/src/util/virnetlink.c
> index 59f3e39..77dde9f 100644
> --- a/src/util/virnetlink.c
> +++ b/src/util/virnetlink.c
> @@ -525,17 +525,18 @@ cleanup:
>  
>  #else

This else matches up to an earlier:

#if defined(__linux__) && defined(HAVE_LIBNL)

>  
> +# if defined(__linux) && !defined(HAVE_LIBNL)

Which means the && !defined(HAVE_LIBNL) is redundant here; you could
simplify to:

# ifdef __linux

and get the same results.

> +static const char *unsupported = _("libnl was not available at build time");
> +# else
> +static const char *unsupported = _("not supported on non-linux platforms");
> +# endif

GCC correctly complains that the initializer is not a constant.  This
needs to be N_()...

> +    netlinkError(VIR_ERR_INTERNAL_ERROR, "%s", unsupported);

and all of these changed to _(unsupported).

ACK to the idea, once you fix the compilation errors that you get on
non-Linux or with HAVE_LIBNL forcefully undefined in config.h.

-- 
Eric Blake   eblake at redhat.com    +1-919-301-3266
Libvirt virtualization library http://libvirt.org

-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 620 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20120308/a45ff532/attachment-0001.sig>


More information about the libvir-list mailing list