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
 
+# if defined(__linux) && !defined(HAVE_LIBNL)
+static const char *unsupported = _("libnl was not available at build time");
+# else
+static const char *unsupported = _("not supported on non-linux platforms");
+# endif
+
 int virNetlinkCommand(struct nl_msg *nl_msg ATTRIBUTE_UNUSED,
            unsigned char **respbuf ATTRIBUTE_UNUSED,
            unsigned int *respbuflen ATTRIBUTE_UNUSED,
            int nl_pid ATTRIBUTE_UNUSED)
 {
-    netlinkError(VIR_ERR_INTERNAL_ERROR, "%s",
-# if defined(__linux__) && !defined(HAVE_LIBNL)
-                 _("virNetlinkCommand is not supported since libnl was not 
available"));
-# else
-                 _("virNetlinkCommand is not supported on non-linux 
platforms"));
-# endif
+    netlinkError(VIR_ERR_INTERNAL_ERROR, "%s", unsupported);
     return -1;
 }
 
@@ -545,11 +546,7 @@ int virNetlinkCommand(struct nl_msg *nl_msg 
ATTRIBUTE_UNUSED,
  */
 int virNetlinkEventServiceStop(void)
 {
-# if defined(__linux__) && !defined(HAVE_LIBNL)
-    netlinkError(VIR_ERR_INTERNAL_ERROR,
-                "%s",
-                _("virNetlinkEventServiceStop is not supported since libnl was 
not available"));
-# endif
+    netlinkError(VIR_ERR_INTERNAL_ERROR, "%s", unsupported);
     return 0;
 }
 
@@ -559,11 +556,7 @@ int virNetlinkEventServiceStop(void)
  */
 int virNetlinkEventServiceStart(void)
 {
-# if defined(__linux__) && !defined(HAVE_LIBNL)
-    netlinkError(VIR_ERR_INTERNAL_ERROR,
-                "%s",
-                _("virNetlinkEventServiceStart is not supported since libnl 
was not available"));
-# endif
+    netlinkError(VIR_ERR_INTERNAL_ERROR, "%s", unsupported);
     return 0;
 }
 
@@ -573,11 +566,7 @@ int virNetlinkEventServiceStart(void)
  */
 bool virNetlinkEventServiceIsRunning(void)
 {
-# if defined(__linux__) && !defined(HAVE_LIBNL)
-    netlinkError(VIR_ERR_INTERNAL_ERROR,
-                "%s",
-                _("virNetlinkEventServiceIsRunning is not supported since 
libnl was not available"));
-# endif
+    netlinkError(VIR_ERR_INTERNAL_ERROR, "%s", unsupported);
     return 0;
 }
 
@@ -590,13 +579,7 @@ int virNetlinkEventAddClient(virNetlinkEventHandleCallback 
handleCB ATTRIBUTE_UN
                              void *opaque ATTRIBUTE_UNUSED,
                              const unsigned char *macaddr ATTRIBUTE_UNUSED)
 {
-    netlinkError(VIR_ERR_INTERNAL_ERROR,
-                "%s",
-# if defined(__linux__) && !defined(HAVE_LIBNL)
-                _("virNetlinkEventServiceAddClient is not supported since 
libnl was not available"));
-# else
-                _("virNetlinkEventServiceAddClient is not supported on 
non-linux platforms"));
-# endif
+    netlinkError(VIR_ERR_INTERNAL_ERROR, "%s", unsupported);
     return -1;
 }
 
@@ -606,13 +589,7 @@ int virNetlinkEventAddClient(virNetlinkEventHandleCallback 
handleCB ATTRIBUTE_UN
 int virNetlinkEventRemoveClient(int watch ATTRIBUTE_UNUSED,
                                 const unsigned char *macaddr ATTRIBUTE_UNUSED)
 {
-    netlinkError(VIR_ERR_INTERNAL_ERROR,
-                "%s",
-# if defined(__linux__) && !defined(HAVE_LIBNL)
-                _("virNetlinkEventRemoveClient is not supported since libnl 
was not available"));
-# else
-                _("virNetlinkEventRemoveClient is not supported on non-linux 
platforms"));
-# endif
+    netlinkError(VIR_ERR_INTERNAL_ERROR, "%s", unsupported);
     return -1;
 }
 
-- 
1.7.7.6

--
libvir-list mailing list
[email protected]
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to