From 1f6f723ce1de27a7b5065359638d7f543dde34c0 Mon Sep 17 00:00:00 2001 From: Eric Blake Date: Wed, 1 Aug 2012 17:42:51 -0600 Subject: [PATCH] build: add stubs so mdns code can be unconditionally compiled The recent changes to the testsuite to validate exported symbols flushed out a case of unconditionally exporting symbols that were only conditionally compiled under HAVE_AVAHI. * src/Makefile.am (libvirt_net_rpc_server_la_SOURCES): Compile virnetservermdns unconditionally. * configure.ac (HAVE_AVAHI): Drop unused automake conditional. * src/rpc/virnetservermdns.c: Add fallbacks when Avahi is not present. --- configure.ac | 1 - src/Makefile.am | 8 +--- src/rpc/virnetservermdns.c | 98 ++++++++++++++++++++++++++++++++++---- 3 files changed, 91 insertions(+), 16 deletions(-) diff --git a/configure.ac b/configure.ac index 04584998ee..8a04d912c7 100644 --- a/configure.ac +++ b/configure.ac @@ -1305,7 +1305,6 @@ if test "x$with_avahi" = "xyes" || test "x$with_avahi" = "xcheck"; then [whether Avahi is used to broadcast server presense]) fi fi -AM_CONDITIONAL([HAVE_AVAHI], [test "x$with_avahi" = "xyes"]) AC_SUBST([AVAHI_CFLAGS]) AC_SUBST([AVAHI_LIBS]) diff --git a/src/Makefile.am b/src/Makefile.am index 1715f0b47f..d4c198e436 100644 --- a/src/Makefile.am +++ b/src/Makefile.am @@ -1533,14 +1533,8 @@ libvirt_net_rpc_server_la_SOURCES = \ rpc/virnetserverprogram.h rpc/virnetserverprogram.c \ rpc/virnetserverservice.h rpc/virnetserverservice.c \ rpc/virnetserverclient.h rpc/virnetserverclient.c \ + rpc/virnetservermdns.h rpc/virnetservermdns.c \ rpc/virnetserver.h rpc/virnetserver.c -if HAVE_AVAHI -libvirt_net_rpc_server_la_SOURCES += \ - rpc/virnetservermdns.h rpc/virnetservermdns.c -else -EXTRA_DIST += \ - rpc/virnetservermdns.h rpc/virnetservermdns.c -endif libvirt_net_rpc_server_la_CFLAGS = \ $(AVAHI_CFLAGS) \ $(XDR_CFLAGS) \ diff --git a/src/rpc/virnetservermdns.c b/src/rpc/virnetservermdns.c index 274be19b40..7c43c400ed 100644 --- a/src/rpc/virnetservermdns.c +++ b/src/rpc/virnetservermdns.c @@ -1,7 +1,7 @@ /* * virnetservermdns.c: advertise server sockets * - * Copyright (C) 2011 Red Hat, Inc. + * Copyright (C) 2011-2012 Red Hat, Inc. * Copyright (C) 2007 Daniel P. Berrange * * Derived from Avahi example service provider code. @@ -29,14 +29,16 @@ #include #include -#include -#include +#if HAVE_AVAHI +# include +# include -#include -#include -#include -#include -#include +# include +# include +# include +# include +# include +#endif #include "virnetservermdns.h" #include "event.h" @@ -55,18 +57,23 @@ struct _virNetServerMDNSEntry { struct _virNetServerMDNSGroup { virNetServerMDNSPtr mdns; +#if HAVE_AVAHI AvahiEntryGroup *handle; +#endif char *name; virNetServerMDNSEntryPtr entry; virNetServerMDNSGroupPtr next; }; struct _virNetServerMDNS { +#if HAVE_AVAHI AvahiClient *client; AvahiPoll *poller; +#endif virNetServerMDNSGroupPtr group; }; +#if HAVE_AVAHI /* Avahi API requires this struct name in the app :-( */ struct AvahiWatch { int watch; @@ -612,3 +619,78 @@ void virNetServerMDNSEntryFree(virNetServerMDNSEntryPtr entry) VIR_FREE(entry->type); VIR_FREE(entry); } + +#else /* ! HAVE_AVAHI */ + +static const char *unsupported = N_("avahi not available at build time"); + +virNetServerMDNS * +virNetServerMDNSNew(void) +{ + VIR_DEBUG("%s", _(unsupported)); + return NULL; +} + +int +virNetServerMDNSStart(virNetServerMDNS *mdns ATTRIBUTE_UNUSED) +{ + VIR_DEBUG("%s", _(unsupported)); + return -1; +} + +virNetServerMDNSGroupPtr +virNetServerMDNSAddGroup(virNetServerMDNS *mdns ATTRIBUTE_UNUSED, + const char *name ATTRIBUTE_UNUSED) +{ + VIR_DEBUG("%s", _(unsupported)); + return NULL; +} + +void +virNetServerMDNSRemoveGroup(virNetServerMDNSPtr mdns ATTRIBUTE_UNUSED, + virNetServerMDNSGroupPtr group ATTRIBUTE_UNUSED) +{ + VIR_DEBUG("%s", _(unsupported)); +} + +virNetServerMDNSEntryPtr +virNetServerMDNSAddEntry(virNetServerMDNSGroupPtr group ATTRIBUTE_UNUSED, + const char *type ATTRIBUTE_UNUSED, + int port ATTRIBUTE_UNUSED) +{ + VIR_DEBUG("%s", _(unsupported)); + return NULL; +} + +void +virNetServerMDNSRemoveEntry(virNetServerMDNSGroupPtr group ATTRIBUTE_UNUSED, + virNetServerMDNSEntryPtr entry ATTRIBUTE_UNUSED) +{ + VIR_DEBUG("%s", _(unsupported)); +} + +void +virNetServerMDNSStop(virNetServerMDNSPtr mdns ATTRIBUTE_UNUSED) +{ + VIR_DEBUG("%s", _(unsupported)); +} + +void +virNetServerMDNSFree(virNetServerMDNSPtr mdns ATTRIBUTE_UNUSED) +{ + VIR_DEBUG("%s", _(unsupported)); +} + +void +virNetServerMDNSGroupFree(virNetServerMDNSGroupPtr grp ATTRIBUTE_UNUSED) +{ + VIR_DEBUG("%s", _(unsupported)); +} + +void +virNetServerMDNSEntryFree(virNetServerMDNSEntryPtr entry ATTRIBUTE_UNUSED) +{ + VIR_DEBUG("%s", _(unsupported)); +} + +#endif /* ! HAVE_AVAHI */