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(a)redhat.com +1-919-301-3266
Libvirt virtualization library
http://libvirt.org