[libvirt] [PATCH] build: drop conditional use of mdns code

Eric Blake eblake at redhat.com
Fri Aug 3 22:33:17 UTC 2012


Commit 1f6f723 missed a step.  At first I was worried that scrubbing
the conditionals would lead to a runtime failure when compiled without
avahi, but my testing makes it appear that the runtime error will only
occur if the .conf files in /etc request mdns advertisement; and the
old behavior was to silently ignore the request, so this is actually
a better behavior of explicitly failing only when the config requests
the impossible.

* src/rpc/virnetserver.c: Drop HAVE_AVAHI conditionals; all
callers already passed NULL if mdns_adv was not configured.
---

In response to: https://www.redhat.com/archives/libvir-list/2012-August/msg00130.html
I originally thought it would be harder than this, but my testing
seems to show that this works.  Caveat: my testing without avahi was
done in a VM and not on bare metal, and since nested virt is slower,
I may have inadvertently cut an important corner and missed a flaw
in my above reasoning about why this is safe.  So a close review,
including checking all call sites, would be appreciated.

 src/rpc/virnetserver.c | 18 ++----------------
 1 file changed, 2 insertions(+), 16 deletions(-)

diff --git a/src/rpc/virnetserver.c b/src/rpc/virnetserver.c
index 248ad9f..295e8fd 100644
--- a/src/rpc/virnetserver.c
+++ b/src/rpc/virnetserver.c
@@ -36,9 +36,7 @@
 #include "util.h"
 #include "virfile.h"
 #include "event.h"
-#if HAVE_AVAHI
-# include "virnetservermdns.h"
-#endif
+#include "virnetservermdns.h"

 #ifndef SA_SIGINFO
 # define SA_SIGINFO 0
@@ -81,10 +79,8 @@ struct _virNetServer {
     int sigwatch;

     char *mdnsGroupName;
-#if HAVE_AVAHI
     virNetServerMDNSPtr mdns;
     virNetServerMDNSGroupPtr mdnsGroup;
-#endif

     size_t nservices;
     virNetServerServicePtr *services;
@@ -364,7 +360,6 @@ virNetServerPtr virNetServerNew(size_t min_workers,
         virReportOOMError();
         goto error;
     }
-#if HAVE_AVAHI
     if (srv->mdnsGroupName) {
         if (!(srv->mdns = virNetServerMDNSNew()))
             goto error;
@@ -372,7 +367,6 @@ virNetServerPtr virNetServerNew(size_t min_workers,
                                                         srv->mdnsGroupName)))
             goto error;
     }
-#endif

     if (virMutexInit(&srv->lock) < 0) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
@@ -592,14 +586,13 @@ error:

 int virNetServerAddService(virNetServerPtr srv,
                            virNetServerServicePtr svc,
-                           const char *mdnsEntryName ATTRIBUTE_UNUSED)
+                           const char *mdnsEntryName)
 {
     virNetServerLock(srv);

     if (VIR_EXPAND_N(srv->services, srv->nservices, 1) < 0)
         goto no_memory;

-#if HAVE_AVAHI
     if (mdnsEntryName) {
         int port = virNetServerServiceGetPort(svc);

@@ -608,7 +601,6 @@ int virNetServerAddService(virNetServerPtr srv,
                                       port))
             goto error;
     }
-#endif

     srv->services[srv->nservices-1] = svc;
     virNetServerServiceRef(svc);
@@ -622,9 +614,7 @@ int virNetServerAddService(virNetServerPtr srv,

 no_memory:
     virReportOOMError();
-#if HAVE_AVAHI
 error:
-#endif
     virNetServerUnlock(srv);
     return -1;
 }
@@ -694,11 +684,9 @@ void virNetServerRun(virNetServerPtr srv)

     virNetServerLock(srv);

-#if HAVE_AVAHI
     if (srv->mdns &&
         virNetServerMDNSStart(srv->mdns) < 0)
         goto cleanup;
-#endif

     srv->quit = 0;

@@ -826,9 +814,7 @@ void virNetServerFree(virNetServerPtr srv)
     VIR_FREE(srv->clients);

     VIR_FREE(srv->mdnsGroupName);
-#if HAVE_AVAHI
     virNetServerMDNSFree(srv->mdns);
-#endif

     virMutexDestroy(&srv->lock);
     VIR_FREE(srv);
-- 
1.7.11.2




More information about the libvir-list mailing list