diff --git a/cfg.mk b/cfg.mk index f59cfd6e29799be5bd38dc8c0be41d4d3eda5741..694ce2076f9164b2fb09e04f3479b6800add29d6 100644 --- a/cfg.mk +++ b/cfg.mk @@ -146,9 +146,6 @@ useless_free_options = \ --name=virJSONValueFree \ --name=virLastErrFreeData \ --name=virNetMessageFree \ - --name=virNetServerMDNSFree \ - --name=virNetServerMDNSEntryFree \ - --name=virNetServerMDNSGroupFree \ --name=virNWFilterDefFree \ --name=virNWFilterEntryFree \ --name=virNWFilterHashTableFree \ diff --git a/configure.ac b/configure.ac index 1f05055d6f440c6e64293a3540d2fbefc8557add..3489a5725e33f1831daa46cba7eb882950894fa5 100644 --- a/configure.ac +++ b/configure.ac @@ -245,7 +245,6 @@ LIBVIRT_LINKER_NO_UNDEFINED LIBVIRT_ARG_APPARMOR LIBVIRT_ARG_ATTR LIBVIRT_ARG_AUDIT -LIBVIRT_ARG_AVAHI LIBVIRT_ARG_BASH_COMPLETION LIBVIRT_ARG_BLKID LIBVIRT_ARG_CAPNG @@ -284,7 +283,6 @@ LIBVIRT_CHECK_APPARMOR LIBVIRT_CHECK_ATOMIC LIBVIRT_CHECK_ATTR LIBVIRT_CHECK_AUDIT -LIBVIRT_CHECK_AVAHI LIBVIRT_CHECK_BASH_COMPLETION LIBVIRT_CHECK_BLKID LIBVIRT_CHECK_CAPNG @@ -970,7 +968,6 @@ LIBVIRT_RESULT_ACL LIBVIRT_RESULT_APPARMOR LIBVIRT_RESULT_ATTR LIBVIRT_RESULT_AUDIT -LIBVIRT_RESULT_AVAHI LIBVIRT_RESULT_BASH_COMPLETION LIBVIRT_RESULT_BLKID LIBVIRT_RESULT_CAPNG diff --git a/docs/internals/rpc.html.in b/docs/internals/rpc.html.in index 048192f818ab12f743851c3d8405597a0807b3e9..40d844f31cb027f8bc46916729d5baf44ae988cd 100644 --- a/docs/internals/rpc.html.in +++ b/docs/internals/rpc.html.in @@ -539,13 +539,6 @@ C <-- |32| 8 | 1 | 3 | 1 | 1 | 0 | .o.oOo | <-- S (reply) be part of the underlying server. -
virNetServerMDNSPtr (virnetservermdns.h)
-
The virNetServerMDNS APIs are used to advertise a server - across the local network, enabling clients to automatically - detect the existence of remote services. This is done by - interfacing with the Avahi mDNS advertisement service. -
-
virNetServerClientPtr (virnetserverclient.h)
The virNetServerClient APIs are used to manage I/O related to a single client network connection. It handles initial diff --git a/docs/remote.html.in b/docs/remote.html.in index de09975039da25b37ef5f78628902e9f9070333d..fbcc8bf01c847ba596d481ada195330ee7412280 100644 --- a/docs/remote.html.in +++ b/docs/remote.html.in @@ -821,23 +821,6 @@ Blank lines and comments beginning with # are ignored. "16509" The port number or service name to listen on for unencrypted TCP connections. - - - - mdns_adv [0|1] - 0 (advertise with mDNS) - - If set to 1 then the virtualization service will be advertised over - mDNS to hosts on the local LAN segment. - - - - mdns_name "name" - "Virtualization Host HOSTNAME" - - The name to advertise for this host with Avahi mDNS. The default - includes the machine's short hostname. This must be unique to the - local LAN segment. diff --git a/docs/windows.html.in b/docs/windows.html.in index 57abf8fde524334302bd79419bef141bb63720d8..096d118bf74501952ed6a6f2903771b703d65d73 100644 --- a/docs/windows.html.in +++ b/docs/windows.html.in @@ -182,7 +182,6 @@
 ./configure \
   --without-sasl \
-  --without-avahi \
   --without-polkit \
   --without-python \
   --without-libxl \
diff --git a/libvirt.spec.in b/libvirt.spec.in
index 3b5b4925fdf6bf99b502171dc85a2d43177bb1fe..d54f58f1d4eb15b85ef3f99808ad13cde3c05b24 100644
--- a/libvirt.spec.in
+++ b/libvirt.spec.in
@@ -297,7 +297,6 @@ BuildRequires: sanlock-devel >= 2.4
 %endif
 BuildRequires: libpcap-devel
 BuildRequires: libnl3-devel
-BuildRequires: avahi-devel
 BuildRequires: libselinux-devel
 BuildRequires: dnsmasq >= 2.41
 BuildRequires: iptables
@@ -436,7 +435,6 @@ Requires: iproute
 Requires: iproute-tc
 %endif
 
-Requires: avahi-libs
 Requires: polkit >= 0.112
 %ifarch %{ix86} x86_64 ia64
 # For virConnectGetSysinfo
@@ -1163,7 +1161,6 @@ rm -f po/stamp-po
            %{?arg_vbox} \
            %{?arg_libxl} \
            --with-sasl \
-           --with-avahi \
            --with-polkit \
            --with-libvirtd \
            %{?arg_phyp} \
diff --git a/m4/virt-avahi.m4 b/m4/virt-avahi.m4
deleted file mode 100644
index d4b3fc6131817d772eaaa0c78f10b48ea945f4cd..0000000000000000000000000000000000000000
--- a/m4/virt-avahi.m4
+++ /dev/null
@@ -1,30 +0,0 @@
-dnl The libavahi.so library
-dnl
-dnl Copyright (C) 2012-2013 Red Hat, Inc.
-dnl
-dnl This library is free software; you can redistribute it and/or
-dnl modify it under the terms of the GNU Lesser General Public
-dnl License as published by the Free Software Foundation; either
-dnl version 2.1 of the License, or (at your option) any later version.
-dnl
-dnl This library is distributed in the hope that it will be useful,
-dnl but WITHOUT ANY WARRANTY; without even the implied warranty of
-dnl MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-dnl Lesser General Public License for more details.
-dnl
-dnl You should have received a copy of the GNU Lesser General Public
-dnl License along with this library.  If not, see
-dnl .
-dnl
-
-AC_DEFUN([LIBVIRT_ARG_AVAHI],[
-  LIBVIRT_ARG_WITH_FEATURE([AVAHI], [avahi-client], [check], [0.6.0])
-])
-
-AC_DEFUN([LIBVIRT_CHECK_AVAHI],[
-  LIBVIRT_CHECK_PKG([AVAHI], [avahi-client], [0.6.0])
-])
-
-AC_DEFUN([LIBVIRT_RESULT_AVAHI],[
-  LIBVIRT_RESULT_LIB([AVAHI])
-])
diff --git a/mingw-libvirt.spec.in b/mingw-libvirt.spec.in
index 9add033669a16a46966c8816b1b5f23005264295..280db4d1aa09437b5c5b1f1ee3462c699dd2df37 100644
--- a/mingw-libvirt.spec.in
+++ b/mingw-libvirt.spec.in
@@ -167,7 +167,6 @@ autoreconf -if
   --without-vbox \
   %{?_without_xenapi} \
   --without-sasl \
-  --without-avahi \
   --without-polkit \
   --without-libvirtd \
   %{?_without_phyp} \
diff --git a/po/POTFILES b/po/POTFILES
index ccfc873a89f4bfa9e1e37fd5b9197f3d356e052b..8017712ff4e648ce60ed5cb202b0686b88618703 100644
--- a/po/POTFILES
+++ b/po/POTFILES
@@ -160,7 +160,6 @@ src/rpc/virnetmessage.c
 src/rpc/virnetsaslcontext.c
 src/rpc/virnetserver.c
 src/rpc/virnetserverclient.c
-src/rpc/virnetservermdns.c
 src/rpc/virnetserverprogram.c
 src/rpc/virnetserverservice.c
 src/rpc/virnetsocket.c
diff --git a/src/libvirt_remote.syms b/src/libvirt_remote.syms
index 3d68f6ce0a716266a3400cbd93c01a9aaff2c321..b63eac123f8bfd3b2e949b8a76773dfba092645c 100644
--- a/src/libvirt_remote.syms
+++ b/src/libvirt_remote.syms
@@ -133,7 +133,6 @@ virNetServerSetClientAuthenticated;
 virNetServerSetClientLimits;
 virNetServerSetThreadPoolParameters;
 virNetServerSetTLSContext;
-virNetServerStart;
 virNetServerUpdateServices;
 
 
@@ -182,19 +181,6 @@ virNetServerClientStartKeepAlive;
 virNetServerClientWantCloseLocked;
 
 
-# rpc/virnetservermdns.h
-virNetServerMDNSAddEntry;
-virNetServerMDNSAddGroup;
-virNetServerMDNSEntryFree;
-virNetServerMDNSFree;
-virNetServerMDNSGroupFree;
-virNetServerMDNSNew;
-virNetServerMDNSRemoveEntry;
-virNetServerMDNSRemoveGroup;
-virNetServerMDNSStart;
-virNetServerMDNSStop;
-
-
 # rpc/virnetserverprogram.h
 virNetServerProgramDispatch;
 virNetServerProgramGetID;
diff --git a/src/locking/lock_daemon.c b/src/locking/lock_daemon.c
index d714ddd2dd249f0b5454d8142e7fb57314bfba5a..bc2fb4a7fb1510bb96db11e2e42f7f7266adbc61 100644
--- a/src/locking/lock_daemon.c
+++ b/src/locking/lock_daemon.c
@@ -167,7 +167,6 @@ virLockDaemonNew(virLockDaemonConfigPtr config, bool privileged)
     if (!(srv = virNetServerNew("virtlockd", 1,
                                 0, 0, 0, config->max_clients,
                                 config->max_clients, -1, 0,
-                                NULL,
                                 virLockDaemonClientNew,
                                 virLockDaemonClientPreExecRestart,
                                 virLockDaemonClientFree,
@@ -182,7 +181,6 @@ virLockDaemonNew(virLockDaemonConfigPtr config, bool privileged)
     if (!(srv = virNetServerNew("admin", 1,
                                 0, 0, 0, config->admin_max_clients,
                                 config->admin_max_clients, -1, 0,
-                                NULL,
                                 remoteAdmClientNew,
                                 remoteAdmClientPreExecRestart,
                                 remoteAdmClientFree,
@@ -623,7 +621,7 @@ virLockDaemonSetupNetworkingSystemD(virNetServerPtr lockSrv, virNetServerPtr adm
                                              false, 0, 1)))
             return -1;
 
-        if (virNetServerAddService(srv, svc, NULL) < 0) {
+        if (virNetServerAddService(srv, svc) < 0) {
             virObjectUnref(svc);
             return -1;
         }
@@ -644,7 +642,7 @@ virLockDaemonSetupNetworkingNative(virNetServerPtr srv, const char *sock_path)
                                            false, 0, 1)))
         return -1;
 
-    if (virNetServerAddService(srv, svc, NULL) < 0) {
+    if (virNetServerAddService(srv, svc) < 0) {
         virObjectUnref(svc);
         return -1;
     }
diff --git a/src/logging/log_daemon.c b/src/logging/log_daemon.c
index 3469d87caaed9afae54bc5f344897bd180eb7a16..014596b280c92195045a3bb7a1b0c842033d9403 100644
--- a/src/logging/log_daemon.c
+++ b/src/logging/log_daemon.c
@@ -162,7 +162,6 @@ virLogDaemonNew(virLogDaemonConfigPtr config, bool privileged)
     if (!(srv = virNetServerNew("virtlogd", 1,
                                 0, 0, 0, config->max_clients,
                                 config->max_clients, -1, 0,
-                                NULL,
                                 virLogDaemonClientNew,
                                 virLogDaemonClientPreExecRestart,
                                 virLogDaemonClientFree,
@@ -177,7 +176,6 @@ virLogDaemonNew(virLogDaemonConfigPtr config, bool privileged)
     if (!(srv = virNetServerNew("admin", 1,
                                 0, 0, 0, config->admin_max_clients,
                                 config->admin_max_clients, -1, 0,
-                                NULL,
                                 remoteAdmClientNew,
                                 remoteAdmClientPreExecRestart,
                                 remoteAdmClientFree,
@@ -558,7 +556,7 @@ virLogDaemonSetupNetworkingSystemD(virNetServerPtr logSrv, virNetServerPtr admin
                                              false, 0, 1)))
             return -1;
 
-        if (virNetServerAddService(srv, svc, NULL) < 0) {
+        if (virNetServerAddService(srv, svc) < 0) {
             virObjectUnref(svc);
             return -1;
         }
@@ -579,7 +577,7 @@ virLogDaemonSetupNetworkingNative(virNetServerPtr srv, const char *sock_path)
                                            false, 0, 1)))
         return -1;
 
-    if (virNetServerAddService(srv, svc, NULL) < 0) {
+    if (virNetServerAddService(srv, svc) < 0) {
         virObjectUnref(svc);
         return -1;
     }
diff --git a/src/lxc/lxc_controller.c b/src/lxc/lxc_controller.c
index cd842f29808ed66f4c5ca4113aa68ca1dd7586c6..c677eb8f6db8071f90486ac1512cc93a8ed609ee 100644
--- a/src/lxc/lxc_controller.c
+++ b/src/lxc/lxc_controller.c
@@ -953,7 +953,6 @@ static int virLXCControllerSetupServer(virLXCControllerPtr ctrl)
     if (!(srv = virNetServerNew("LXC", 1,
                                 0, 0, 0, 1,
                                 0, -1, 0,
-                                NULL,
                                 virLXCControllerClientPrivateNew,
                                 NULL,
                                 virLXCControllerClientPrivateFree,
@@ -976,7 +975,7 @@ static int virLXCControllerSetupServer(virLXCControllerPtr ctrl)
     if (virSecurityManagerClearSocketLabel(ctrl->securityManager, ctrl->def) < 0)
         goto error;
 
-    if (virNetServerAddService(srv, svc, NULL) < 0)
+    if (virNetServerAddService(srv, svc) < 0)
         goto error;
     virObjectUnref(svc);
     svc = NULL;
diff --git a/src/remote/libvirtd.aug b/src/remote/libvirtd.aug
index 13333448a45f18410429f77b05333256e7a62264..0188c23dd767fc14ed5964ad146463db1d64868f 100644
--- a/src/remote/libvirtd.aug
+++ b/src/remote/libvirtd.aug
@@ -29,8 +29,6 @@ module Libvirtd =
                      | str_entry "tls_port"
                      | str_entry "tcp_port"
                      | str_entry "listen_addr"
-                     | bool_entry "mdns_adv"
-                     | str_entry "mdns_name"
 
    let sock_acl_entry = str_entry "unix_sock_group"
                       | str_entry "unix_sock_ro_perms"
diff --git a/src/remote/libvirtd.conf b/src/remote/libvirtd.conf
index 233c127156d1966066085574df10232a0ccccfe3..bbeb05349520041a071e1d83f68f3126b0f52367 100644
--- a/src/remote/libvirtd.conf
+++ b/src/remote/libvirtd.conf
@@ -50,23 +50,6 @@
 #listen_addr = "192.168.0.1"
 
 
-# Flag toggling mDNS advertizement of the libvirt service.
-#
-# Alternatively can disable for all services on a host by
-# stopping the Avahi daemon
-#
-# This is disabled by default, uncomment this to enable it
-#mdns_adv = 1
-
-# Override the default mDNS advertizement name. This must be
-# unique on the immediate broadcast network.
-#
-# The default is "Virtualization Host HOSTNAME", where HOSTNAME
-# is substituted for the short hostname of the machine (without domain)
-#
-#mdns_name = "Virtualization Host Joe Demo"
-
-
 #################################################################
 #
 # UNIX socket access controls
diff --git a/src/remote/remote_daemon.c b/src/remote/remote_daemon.c
index c1544ba914ef008cf2e9f21ab51867e9c8473df9..fdc9e4333aec0c7e48bc31fde24d0a4ab76b8d42 100644
--- a/src/remote/remote_daemon.c
+++ b/src/remote/remote_daemon.c
@@ -429,14 +429,11 @@ daemonSetupNetworking(virNetServerPtr srv,
             goto cleanup;
     }
 
-    if (virNetServerAddService(srv, svc,
-                               config->mdns_adv && !ipsock ?
-                               "_libvirt._tcp" :
-                               NULL) < 0)
+    if (virNetServerAddService(srv, svc) < 0)
         goto cleanup;
 
     if (svcRO &&
-        virNetServerAddService(srv, svcRO, NULL) < 0)
+        virNetServerAddService(srv, svcRO) < 0)
         goto cleanup;
 
     if (sock_path_adm) {
@@ -451,7 +448,7 @@ daemonSetupNetworking(virNetServerPtr srv,
                                                   config->admin_max_client_requests)))
             goto cleanup;
 
-        if (virNetServerAddService(srvAdm, svcAdm, NULL) < 0)
+        if (virNetServerAddService(srvAdm, svcAdm) < 0)
             goto cleanup;
     }
 
@@ -469,8 +466,7 @@ daemonSetupNetworking(virNetServerPtr srv,
                                                      config->max_client_requests)))
                 goto cleanup;
 
-            if (virNetServerAddService(srv, svcTCP,
-                                       config->mdns_adv ? "_libvirt._tcp" : NULL) < 0)
+            if (virNetServerAddService(srv, svcTCP) < 0)
                 goto cleanup;
         }
 
@@ -530,9 +526,7 @@ daemonSetupNetworking(virNetServerPtr srv,
                 virObjectUnref(ctxt);
                 goto cleanup;
             }
-            if (virNetServerAddService(srv, svcTLS,
-                                       config->mdns_adv &&
-                                       !config->listen_tcp ? "_libvirt._tcp" : NULL) < 0)
+            if (virNetServerAddService(srv, svcTLS) < 0)
                 goto cleanup;
 
             virObjectUnref(ctxt);
@@ -1197,7 +1191,6 @@ int main(int argc, char **argv) {
                                 config->max_anonymous_clients,
                                 config->keepalive_interval,
                                 config->keepalive_count,
-                                config->mdns_adv ? config->mdns_name : NULL,
                                 remoteClientNew,
                                 NULL,
                                 remoteClientFree,
@@ -1265,7 +1258,6 @@ int main(int argc, char **argv) {
                                    0,
                                    config->admin_keepalive_interval,
                                    config->admin_keepalive_count,
-                                   NULL,
                                    remoteAdmClientNew,
                                    NULL,
                                    remoteAdmClientFree,
diff --git a/src/remote/remote_daemon_config.c b/src/remote/remote_daemon_config.c
index a56aa9065afd92ff1048c1c369ca593dcc1ea196..537b90a855511aea127ecb27d495ed96db99ee15 100644
--- a/src/remote/remote_daemon_config.c
+++ b/src/remote/remote_daemon_config.c
@@ -102,8 +102,6 @@ struct daemonConfig*
 daemonConfigNew(bool privileged ATTRIBUTE_UNUSED)
 {
     struct daemonConfig *data;
-    char *localhost;
-    int ret;
 
     if (VIR_ALLOC(data) < 0)
         return NULL;
@@ -141,8 +139,6 @@ daemonConfigNew(bool privileged ATTRIBUTE_UNUSED)
 #endif
     data->auth_tls = REMOTE_AUTH_NONE;
 
-    data->mdns_adv = 0;
-
     data->min_workers = 5;
     data->max_workers = 20;
     data->max_clients = 5000;
@@ -170,25 +166,6 @@ daemonConfigNew(bool privileged ATTRIBUTE_UNUSED)
 
     data->ovs_timeout = VIR_NETDEV_OVS_DEFAULT_TIMEOUT;
 
-    localhost = virGetHostname();
-    if (localhost == NULL) {
-        /* we couldn't resolve the hostname; assume that we are
-         * running in disconnected operation, and report a less
-         * useful Avahi string
-         */
-        ret = VIR_STRDUP(data->mdns_name, "Virtualization Host");
-    } else {
-        char *tmp;
-        /* Extract the host part of the potentially FQDN */
-        if ((tmp = strchr(localhost, '.')))
-            *tmp = '\0';
-        ret = virAsprintf(&data->mdns_name, "Virtualization Host %s",
-                          localhost);
-    }
-    VIR_FREE(localhost);
-    if (ret < 0)
-        goto error;
-
     return data;
 
  error:
@@ -219,7 +196,6 @@ daemonConfigFree(struct daemonConfig *data)
     VIR_FREE(data->unix_sock_rw_perms);
     VIR_FREE(data->unix_sock_group);
     VIR_FREE(data->unix_sock_dir);
-    VIR_FREE(data->mdns_name);
 
     tmp = data->tls_allowed_dn_list;
     while (tmp && *tmp) {
@@ -300,11 +276,6 @@ daemonConfigLoadOptions(struct daemonConfig *data,
     if (virConfGetValueString(conf, "unix_sock_dir", &data->unix_sock_dir) < 0)
         goto error;
 
-    if (virConfGetValueBool(conf, "mdns_adv", &data->mdns_adv) < 0)
-        goto error;
-    if (virConfGetValueString(conf, "mdns_name", &data->mdns_name) < 0)
-        goto error;
-
     if (virConfGetValueBool(conf, "tls_no_sanity_certificate", &data->tls_no_sanity_certificate) < 0)
         goto error;
     if (virConfGetValueBool(conf, "tls_no_verify_certificate", &data->tls_no_verify_certificate) < 0)
diff --git a/src/remote/remote_daemon_config.h b/src/remote/remote_daemon_config.h
index 533fc7bbd3f0f40eb3d42c1000c00de30480e638..d580e7d49c526b1e414aa4920712c24bd77a7239 100644
--- a/src/remote/remote_daemon_config.h
+++ b/src/remote/remote_daemon_config.h
@@ -46,9 +46,6 @@ struct daemonConfig {
 
     char **access_drivers;
 
-    bool mdns_adv;
-    char *mdns_name;
-
     bool tls_no_verify_certificate;
     bool tls_no_sanity_certificate;
     char **tls_allowed_dn_list;
diff --git a/src/remote/test_libvirtd.aug.in b/src/remote/test_libvirtd.aug.in
index 527e3d7d0de4c58ba2e0bcbb55e65a75be18b2e8..ad6450a569d30878122fe43698d013de8629ce03 100644
--- a/src/remote/test_libvirtd.aug.in
+++ b/src/remote/test_libvirtd.aug.in
@@ -7,8 +7,6 @@ module Test_libvirtd =
         { "tls_port" = "16514" }
         { "tcp_port" = "16509" }
         { "listen_addr" = "192.168.0.1" }
-        { "mdns_adv" = "1" }
-        { "mdns_name" = "Virtualization Host Joe Demo" }
         { "unix_sock_group" = "libvirt" }
         { "unix_sock_ro_perms" = "0777" }
         { "unix_sock_rw_perms" = "0770" }
diff --git a/src/rpc/Makefile.inc.am b/src/rpc/Makefile.inc.am
index 68a4945198bdf50259042ef6f64c10ba191e5c5d..e5b830605a43d69c406d9462e6f7db020c291a7a 100644
--- a/src/rpc/Makefile.inc.am
+++ b/src/rpc/Makefile.inc.am
@@ -103,22 +103,18 @@ libvirt_net_rpc_server_la_SOURCES = \
 	rpc/virnetserverservice.c \
 	rpc/virnetserverclient.h \
 	rpc/virnetserverclient.c \
-	rpc/virnetservermdns.h \
-	rpc/virnetservermdns.c \
 	rpc/virnetdaemon.h \
 	rpc/virnetdaemon.c \
 	rpc/virnetserver.h \
 	rpc/virnetserver.c \
 	$(NULL)
 libvirt_net_rpc_server_la_CFLAGS = \
-	$(AVAHI_CFLAGS) \
 	$(DBUS_CFLAGS) \
 	$(XDR_CFLAGS) \
 	$(AM_CFLAGS) \
 	$(NULL)
 libvirt_net_rpc_server_la_LDFLAGS = \
 	$(AM_LDFLAGS) \
-	$(AVAHI_LIBS) \
 	$(DBUS_LIBS) \
 	$(NULL)
 libvirt_net_rpc_server_la_LIBADD = $(CYGWIN_EXTRA_LIBADD)
diff --git a/src/rpc/virnetdaemon.c b/src/rpc/virnetdaemon.c
index 0ca61c5a9a7157fa366a3d90fb30b29026762cfd..d098cf4ae92113c8c603f9d9bf916015e6c97188 100644
--- a/src/rpc/virnetdaemon.c
+++ b/src/rpc/virnetdaemon.c
@@ -32,7 +32,6 @@
 #include "virutil.h"
 #include "virfile.h"
 #include "virnetserver.h"
-#include "virnetservermdns.h"
 #include "virdbus.h"
 #include "virhash.h"
 #include "virstring.h"
@@ -767,16 +766,6 @@ virNetDaemonUpdateServices(virNetDaemonPtr dmn,
     virObjectUnlock(dmn);
 }
 
-static int
-daemonServerRun(void *payload,
-                const void *key ATTRIBUTE_UNUSED,
-                void *opaque ATTRIBUTE_UNUSED)
-{
-    virNetServerPtr srv = payload;
-
-    return virNetServerStart(srv);
-};
-
 static int
 daemonServerProcessClients(void *payload,
                            const void *key ATTRIBUTE_UNUSED,
@@ -802,9 +791,6 @@ virNetDaemonRun(virNetDaemonPtr dmn)
         goto cleanup;
     }
 
-    if (virHashForEach(dmn->servers, daemonServerRun, NULL) < 0)
-        goto cleanup;
-
     dmn->quit = false;
 
     if (dmn->autoShutdownTimeout &&
diff --git a/src/rpc/virnetserver.c b/src/rpc/virnetserver.c
index 4934dba967108896b174806befbbc26f9edf0add..0f3fa63fbb2eb08303118e7ca5eb37dab1cdecbc 100644
--- a/src/rpc/virnetserver.c
+++ b/src/rpc/virnetserver.c
@@ -27,7 +27,6 @@
 #include "virerror.h"
 #include "virthread.h"
 #include "virthreadpool.h"
-#include "virnetservermdns.h"
 #include "virstring.h"
 
 #define VIR_FROM_THIS VIR_FROM_RPC
@@ -52,10 +51,6 @@ struct _virNetServer {
     /* Immutable pointer, self-locking APIs */
     virThreadPoolPtr workers;
 
-    char *mdnsGroupName;
-    virNetServerMDNSPtr mdns;
-    virNetServerMDNSGroupPtr mdnsGroup;
-
     size_t nservices;
     virNetServerServicePtr *services;
 
@@ -351,7 +346,6 @@ virNetServerPtr virNetServerNew(const char *name,
                                 size_t max_anonymous_clients,
                                 int keepaliveInterval,
                                 unsigned int keepaliveCount,
-                                const char *mdnsGroupName,
                                 virNetServerClientPrivNew clientPrivNew,
                                 virNetServerClientPrivPreExecRestart clientPrivPreExecRestart,
                                 virFreeCallback clientPrivFree,
@@ -384,16 +378,6 @@ virNetServerPtr virNetServerNew(const char *name,
     srv->clientPrivFree = clientPrivFree;
     srv->clientPrivOpaque = clientPrivOpaque;
 
-    if (VIR_STRDUP(srv->mdnsGroupName, mdnsGroupName) < 0)
-        goto error;
-    if (srv->mdnsGroupName) {
-        if (!(srv->mdns = virNetServerMDNSNew()))
-            goto error;
-        if (!(srv->mdnsGroup = virNetServerMDNSAddGroup(srv->mdns,
-                                                        srv->mdnsGroupName)))
-            goto error;
-    }
-
     return srv;
  error:
     virObjectUnref(srv);
@@ -421,7 +405,6 @@ virNetServerPtr virNetServerNewPostExecRestart(virJSONValuePtr object,
     unsigned int keepaliveInterval;
     unsigned int keepaliveCount;
     unsigned long long next_client_id;
-    const char *mdnsGroupName = NULL;
 
     if (virJSONValueObjectGetNumberUint(object, "min_workers", &min_workers) < 0) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
@@ -464,13 +447,6 @@ virNetServerPtr virNetServerNewPostExecRestart(virJSONValuePtr object,
         goto error;
     }
 
-    if (virJSONValueObjectHasKey(object, "mdnsGroupName") &&
-        (!(mdnsGroupName = virJSONValueObjectGetString(object, "mdnsGroupName")))) {
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("Malformed mdnsGroupName data in JSON document"));
-        goto error;
-    }
-
     if (virJSONValueObjectGetNumberUlong(object, "next_client_id",
                                          &next_client_id) < 0) {
         VIR_WARN("Missing next_client_id data in JSON document");
@@ -482,7 +458,6 @@ virNetServerPtr virNetServerNewPostExecRestart(virJSONValuePtr object,
                                 priority_workers, max_clients,
                                 max_anonymous_clients,
                                 keepaliveInterval, keepaliveCount,
-                                mdnsGroupName,
                                 clientPrivNew, clientPrivPreExecRestart,
                                 clientPrivFree, clientPrivOpaque)))
         goto error;
@@ -511,8 +486,7 @@ virNetServerPtr virNetServerNewPostExecRestart(virJSONValuePtr object,
         if (!(service = virNetServerServiceNewPostExecRestart(child)))
             goto error;
 
-        /* XXX mdns entry names ? */
-        if (virNetServerAddService(srv, service, NULL) < 0) {
+        if (virNetServerAddService(srv, service) < 0) {
             virObjectUnref(service);
             goto error;
         }
@@ -622,13 +596,6 @@ virJSONValuePtr virNetServerPreExecRestart(virNetServerPtr srv)
         goto error;
     }
 
-    if (srv->mdnsGroupName &&
-        virJSONValueObjectAppendString(object, "mdnsGroupName", srv->mdnsGroupName) < 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                       _("Cannot set mdnsGroupName data in JSON document"));
-        goto error;
-    }
-
     if (!(services = virJSONValueNewArray()))
         goto error;
 
@@ -680,25 +647,13 @@ virJSONValuePtr virNetServerPreExecRestart(virNetServerPtr srv)
 
 
 int virNetServerAddService(virNetServerPtr srv,
-                           virNetServerServicePtr svc,
-                           const char *mdnsEntryName)
+                           virNetServerServicePtr svc)
 {
     virObjectLock(srv);
 
     if (VIR_EXPAND_N(srv->services, srv->nservices, 1) < 0)
         goto error;
 
-    if (mdnsEntryName) {
-        int port = virNetServerServiceGetPort(svc);
-
-        if (!virNetServerMDNSAddEntry(srv->mdnsGroup,
-                                      mdnsEntryName,
-                                      port)) {
-            srv->nservices--;
-            goto error;
-        }
-    }
-
     srv->services[srv->nservices-1] = virObjectRef(svc);
 
     virNetServerServiceSetDispatcher(svc,
@@ -820,9 +775,6 @@ void virNetServerDispose(void *obj)
     for (i = 0; i < srv->nclients; i++)
         virObjectUnref(srv->clients[i]);
     VIR_FREE(srv->clients);
-
-    VIR_FREE(srv->mdnsGroupName);
-    virNetServerMDNSFree(srv->mdns);
 }
 
 void virNetServerClose(virNetServerPtr srv)
@@ -909,18 +861,6 @@ virNetServerProcessClients(virNetServerPtr srv)
     virObjectUnlock(srv);
 }
 
-int
-virNetServerStart(virNetServerPtr srv)
-{
-    /*
-     * Do whatever needs to be done before starting.
-     */
-    if (!srv->mdns)
-        return 0;
-
-    return virNetServerMDNSStart(srv->mdns);
-}
-
 const char *
 virNetServerGetName(virNetServerPtr srv)
 {
diff --git a/src/rpc/virnetserver.h b/src/rpc/virnetserver.h
index e46a717c15c4de571cb3c8e59cc03fffff9cb5c1..b47b71b4b22d972a62f93934f746a6051b6ad891 100644
--- a/src/rpc/virnetserver.h
+++ b/src/rpc/virnetserver.h
@@ -38,7 +38,6 @@ virNetServerPtr virNetServerNew(const char *name,
                                 size_t max_anonymous_clients,
                                 int keepaliveInterval,
                                 unsigned int keepaliveCount,
-                                const char *mdnsGroupName,
                                 virNetServerClientPrivNew clientPrivNew,
                                 virNetServerClientPrivPreExecRestart clientPrivPreExecRestart,
                                 virFreeCallback clientPrivFree,
@@ -60,8 +59,7 @@ void virNetServerClose(virNetServerPtr srv);
 virJSONValuePtr virNetServerPreExecRestart(virNetServerPtr srv);
 
 int virNetServerAddService(virNetServerPtr srv,
-                           virNetServerServicePtr svc,
-                           const char *mdnsEntryName);
+                           virNetServerServicePtr svc);
 
 int virNetServerAddProgram(virNetServerPtr srv,
                            virNetServerProgramPtr prog);
@@ -78,8 +76,6 @@ void virNetServerSetClientAuthenticated(virNetServerPtr srv, virNetServerClientP
 
 void virNetServerUpdateServices(virNetServerPtr srv, bool enabled);
 
-int virNetServerStart(virNetServerPtr srv);
-
 const char *virNetServerGetName(virNetServerPtr srv);
 
 int virNetServerGetThreadPoolParameters(virNetServerPtr srv,
diff --git a/src/rpc/virnetservermdns.c b/src/rpc/virnetservermdns.c
deleted file mode 100644
index 4c10749364837f1afb93e6abab37e0a1668e3de5..0000000000000000000000000000000000000000
--- a/src/rpc/virnetservermdns.c
+++ /dev/null
@@ -1,682 +0,0 @@
-/*
- * virnetservermdns.c: advertise server sockets
- *
- * Copyright (C) 2011-2012 Red Hat, Inc.
- * Copyright (C) 2007 Daniel P. Berrange
- *
- * Derived from Avahi example service provider code.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library.  If not, see
- * .
- */
-
-#include 
-
-#include 
-
-#if WITH_AVAHI
-# include 
-# include 
-
-# include 
-# include 
-# include 
-# include 
-# include 
-#endif
-
-#include "virnetservermdns.h"
-#include "vireventpoll.h"
-#include "viralloc.h"
-#include "virerror.h"
-#include "virlog.h"
-#include "virstring.h"
-
-#define VIR_FROM_THIS VIR_FROM_RPC
-
-VIR_LOG_INIT("rpc.netservermdns");
-
-struct _virNetServerMDNSEntry {
-    char *type;
-    int port;
-    virNetServerMDNSEntryPtr next;
-};
-
-struct _virNetServerMDNSGroup {
-    virNetServerMDNSPtr mdns;
-#if WITH_AVAHI
-    AvahiEntryGroup *handle;
-#endif
-    char *name;
-    virNetServerMDNSEntryPtr entry;
-    virNetServerMDNSGroupPtr next;
-};
-
-struct _virNetServerMDNS {
-#if WITH_AVAHI
-    AvahiClient *client;
-    AvahiPoll *poller;
-#endif
-    virNetServerMDNSGroupPtr group;
-};
-
-#if WITH_AVAHI
-/* Avahi API requires this struct name in the app :-( */
-struct AvahiWatch {
-    int watch;
-    int fd;
-    int revents;
-    AvahiWatchCallback callback;
-    void *userdata;
-};
-
-/* Avahi API requires this struct name in the app :-( */
-struct AvahiTimeout {
-    int timer;
-    AvahiTimeoutCallback callback;
-    void  *userdata;
-};
-
-static void virNetServerMDNSCreateServices(virNetServerMDNSGroupPtr group);
-
-/* Called whenever the entry group state changes */
-static void virNetServerMDNSGroupCallback(AvahiEntryGroup *g ATTRIBUTE_UNUSED,
-                                          AvahiEntryGroupState state,
-                                          void *data)
-{
-    virNetServerMDNSGroupPtr group = data;
-
-    switch (state) {
-    case AVAHI_ENTRY_GROUP_ESTABLISHED:
-        /* The entry group has been established successfully */
-        VIR_DEBUG("Group '%s' established", group->name);
-        break;
-
-    case AVAHI_ENTRY_GROUP_COLLISION:
-        {
-            char *n;
-
-            /* A service name collision happened. Let's pick a new name */
-            n = avahi_alternative_service_name(group->name);
-            VIR_FREE(group->name);
-            group->name = n;
-
-            VIR_DEBUG("Group name collision, renaming service to '%s'", group->name);
-
-            /* And recreate the services */
-            virNetServerMDNSCreateServices(group);
-        }
-        break;
-
-    case AVAHI_ENTRY_GROUP_FAILURE :
-        VIR_DEBUG("Group failure: %s",
-                  avahi_strerror(avahi_client_errno(group->mdns->client)));
-
-        /* Some kind of failure happened while we were registering our services */
-        /* avahi_simple_poll_quit(simple_poll); */
-        break;
-
-    case AVAHI_ENTRY_GROUP_UNCOMMITED:
-    case AVAHI_ENTRY_GROUP_REGISTERING:
-        ;
-    }
-}
-
-static void virNetServerMDNSCreateServices(virNetServerMDNSGroupPtr group)
-{
-    virNetServerMDNSPtr mdns = group->mdns;
-    virNetServerMDNSEntryPtr entry;
-    int ret;
-    VIR_DEBUG("Adding services to '%s'", group->name);
-
-    /* If we've no services to advertise, just reset the group to make
-     * sure it is emptied of any previously advertised services */
-    if (!group->entry) {
-        if (group->handle)
-            avahi_entry_group_reset(group->handle);
-        return;
-    }
-
-    /* If this is the first time we're called, let's create a new entry group */
-    if (!group->handle) {
-        VIR_DEBUG("Creating initial group %s", group->name);
-        if (!(group->handle =
-              avahi_entry_group_new(mdns->client,
-                                    virNetServerMDNSGroupCallback,
-                                    group))) {
-            VIR_DEBUG("avahi_entry_group_new() failed: %s",
-                      avahi_strerror(avahi_client_errno(mdns->client)));
-            return;
-        }
-    }
-
-    entry = group->entry;
-    while (entry) {
-        if ((ret = avahi_entry_group_add_service(group->handle,
-                                                 AVAHI_IF_UNSPEC,
-                                                 AVAHI_PROTO_UNSPEC,
-                                                 0,
-                                                 group->name,
-                                                 entry->type,
-                                                 NULL,
-                                                 NULL,
-                                                 entry->port,
-                                                 NULL)) < 0) {
-            VIR_DEBUG("Failed to add %s service on port %d: %s",
-                      entry->type, entry->port, avahi_strerror(ret));
-            avahi_entry_group_reset(group->handle);
-            return;
-        }
-        entry = entry->next;
-    }
-
-    /* Tell the server to register the service */
-    if ((ret = avahi_entry_group_commit(group->handle)) < 0) {
-        avahi_entry_group_reset(group->handle);
-        VIR_DEBUG("Failed to commit entry_group: %s",
-                  avahi_strerror(ret));
-        return;
-    }
-}
-
-
-static void virNetServerMDNSClientCallback(AvahiClient *c,
-                                           AvahiClientState state,
-                                           void *data)
-{
-    virNetServerMDNSPtr mdns = data;
-    virNetServerMDNSGroupPtr group;
-    if (!mdns->client)
-        mdns->client = c;
-
-    VIR_DEBUG("Callback state=%d", state);
-
-    /* Called whenever the client or server state changes */
-    switch (state) {
-        case AVAHI_CLIENT_S_RUNNING:
-            /* The server has startup successfully and registered its host
-             * name on the network, so it's time to create our services */
-            VIR_DEBUG("Client running %p", mdns->client);
-            group = mdns->group;
-            while (group) {
-                virNetServerMDNSCreateServices(group);
-                group = group->next;
-            }
-            break;
-
-        case AVAHI_CLIENT_FAILURE:
-            VIR_DEBUG("Client failure: %s",
-                      avahi_strerror(avahi_client_errno(c)));
-            virNetServerMDNSStop(mdns);
-            virNetServerMDNSStart(mdns);
-            break;
-
-        case AVAHI_CLIENT_S_COLLISION:
-            /* Let's drop our registered services. When the server is back
-             * in AVAHI_SERVER_RUNNING state we will register them
-             * again with the new host name. */
-
-            ATTRIBUTE_FALLTHROUGH;
-
-        case AVAHI_CLIENT_S_REGISTERING:
-            /* The server records are now being established. This
-             * might be caused by a host name change. We need to wait
-             * for our own records to register until the host name is
-             * properly established. */
-            VIR_DEBUG("Client collision/connecting %p", mdns->client);
-            group = mdns->group;
-            while (group) {
-                if (group->handle)
-                    avahi_entry_group_reset(group->handle);
-                group = group->next;
-            }
-            break;
-
-        case AVAHI_CLIENT_CONNECTING:
-            VIR_DEBUG("Client connecting.... %p", mdns->client);
-            ;
-    }
-}
-
-
-static void virNetServerMDNSWatchDispatch(int watch, int fd, int events, void *opaque)
-{
-    AvahiWatch *w = opaque;
-    int fd_events = virEventPollToNativeEvents(events);
-    VIR_DEBUG("Dispatch watch %d FD %d Event %d", watch, fd, fd_events);
-    w->revents = fd_events;
-    w->callback(w, fd, fd_events, w->userdata);
-}
-
-static void virNetServerMDNSWatchDofree(void *w)
-{
-    VIR_FREE(w);
-}
-
-
-static AvahiWatch *virNetServerMDNSWatchNew(const AvahiPoll *api ATTRIBUTE_UNUSED,
-                                            int fd, AvahiWatchEvent event,
-                                            AvahiWatchCallback cb, void *userdata)
-{
-    AvahiWatch *w;
-    virEventHandleType hEvents;
-    if (VIR_ALLOC(w) < 0)
-        return NULL;
-
-    w->fd = fd;
-    w->revents = 0;
-    w->callback = cb;
-    w->userdata = userdata;
-
-    VIR_DEBUG("New handle %p FD %d Event %d", w, w->fd, event);
-    hEvents = virEventPollFromNativeEvents(event);
-    if ((w->watch = virEventAddHandle(fd, hEvents,
-                                      virNetServerMDNSWatchDispatch,
-                                      w,
-                                      virNetServerMDNSWatchDofree)) < 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("Failed to add watch for fd %d events %d"), fd, hEvents);
-        VIR_FREE(w);
-        return NULL;
-    }
-
-    return w;
-}
-
-static void virNetServerMDNSWatchUpdate(AvahiWatch *w, AvahiWatchEvent event)
-{
-    VIR_DEBUG("Update handle %p FD %d Event %d", w, w->fd, event);
-    virEventUpdateHandle(w->watch, event);
-}
-
-static AvahiWatchEvent virNetServerMDNSWatchGetEvents(AvahiWatch *w)
-{
-    VIR_DEBUG("Get handle events %p %d", w, w->fd);
-    return w->revents;
-}
-
-static void virNetServerMDNSWatchFree(AvahiWatch *w)
-{
-    VIR_DEBUG("Free handle %p %d", w, w->fd);
-    virEventRemoveHandle(w->watch);
-}
-
-static void virNetServerMDNSTimeoutDispatch(int timer ATTRIBUTE_UNUSED, void *opaque)
-{
-    AvahiTimeout *t = (AvahiTimeout*)opaque;
-    VIR_DEBUG("Dispatch timeout %p %d", t, timer);
-    virEventUpdateTimeout(t->timer, -1);
-    t->callback(t, t->userdata);
-}
-
-static void virNetServerMDNSTimeoutDofree(void *t)
-{
-    VIR_FREE(t);
-}
-
-static AvahiTimeout *virNetServerMDNSTimeoutNew(const AvahiPoll *api ATTRIBUTE_UNUSED,
-                                                const struct timeval *tv,
-                                                AvahiTimeoutCallback cb,
-                                                void *userdata)
-{
-    AvahiTimeout *t;
-    struct timeval now;
-    long long nowms, thenms, timeout;
-    VIR_DEBUG("Add timeout TV %p", tv);
-    if (VIR_ALLOC(t) < 0)
-        return NULL;
-
-    if (gettimeofday(&now, NULL) < 0) {
-        virReportSystemError(errno, "%s",
-                             _("Unable to get current time"));
-        VIR_FREE(t);
-        return NULL;
-    }
-
-    VIR_DEBUG("Trigger timed for %d %d      %d %d",
-               (int)now.tv_sec, (int)now.tv_usec,
-               (int)(tv ? tv->tv_sec : 0), (int)(tv ? tv->tv_usec : 0));
-    nowms = (now.tv_sec * 1000ll) + (now.tv_usec / 1000ll);
-    if (tv) {
-        thenms = (tv->tv_sec * 1000ll) + (tv->tv_usec/1000ll);
-        timeout = thenms > nowms ? nowms - thenms : 0;
-        if (timeout < 0)
-            timeout = 0;
-    } else {
-        timeout = -1;
-    }
-
-    t->timer = virEventAddTimeout(timeout,
-                                  virNetServerMDNSTimeoutDispatch,
-                                  t,
-                                  virNetServerMDNSTimeoutDofree);
-    t->callback = cb;
-    t->userdata = userdata;
-
-    if (t->timer < 0) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("Failed to add timer with timeout %lld"), timeout);
-        VIR_FREE(t);
-        return NULL;
-    }
-
-    return t;
-}
-
-static void virNetServerMDNSTimeoutUpdate(AvahiTimeout *t, const struct timeval *tv)
-{
-    struct timeval now;
-    long long nowms, thenms, timeout;
-    VIR_DEBUG("Update timeout %p TV %p", t, tv);
-    if (gettimeofday(&now, NULL) < 0) {
-        VIR_FREE(t);
-        return;
-    }
-
-    nowms = (now.tv_sec * 1000ll) + (now.tv_usec / 1000ll);
-    if (tv) {
-        thenms = ((tv->tv_sec * 1000ll) + (tv->tv_usec/1000ll));
-        timeout = thenms > nowms ? nowms - thenms : 0;
-        if (timeout < 0)
-            timeout = 0;
-    } else {
-        timeout = -1;
-    }
-
-    virEventUpdateTimeout(t->timer, timeout);
-}
-
-static void virNetServerMDNSTimeoutFree(AvahiTimeout *t)
-{
-    VIR_DEBUG("Free timeout %p", t);
-    virEventRemoveTimeout(t->timer);
-}
-
-
-static AvahiPoll *virNetServerMDNSCreatePoll(void)
-{
-    AvahiPoll *p;
-    if (VIR_ALLOC(p) < 0)
-        return NULL;
-
-    p->userdata = NULL;
-
-    p->watch_new = virNetServerMDNSWatchNew;
-    p->watch_update = virNetServerMDNSWatchUpdate;
-    p->watch_get_events = virNetServerMDNSWatchGetEvents;
-    p->watch_free = virNetServerMDNSWatchFree;
-
-    p->timeout_new = virNetServerMDNSTimeoutNew;
-    p->timeout_update = virNetServerMDNSTimeoutUpdate;
-    p->timeout_free = virNetServerMDNSTimeoutFree;
-
-    return p;
-}
-
-
-virNetServerMDNS *virNetServerMDNSNew(void)
-{
-    virNetServerMDNS *mdns;
-    if (VIR_ALLOC(mdns) < 0)
-        return NULL;
-
-    /* Allocate main loop object */
-    if (!(mdns->poller = virNetServerMDNSCreatePoll())) {
-        VIR_FREE(mdns);
-        return NULL;
-    }
-
-    return mdns;
-}
-
-
-int virNetServerMDNSStart(virNetServerMDNS *mdns)
-{
-    int error;
-    VIR_DEBUG("Starting client %p", mdns);
-    mdns->client = avahi_client_new(mdns->poller,
-                                    AVAHI_CLIENT_NO_FAIL,
-                                    virNetServerMDNSClientCallback,
-                                    mdns, &error);
-
-    if (!mdns->client) {
-        virReportError(VIR_ERR_INTERNAL_ERROR,
-                       _("Failed to create mDNS client: %s"),
-                       avahi_strerror(error));
-        return -1;
-    }
-
-    return 0;
-}
-
-
-virNetServerMDNSGroupPtr virNetServerMDNSAddGroup(virNetServerMDNS *mdns,
-                                                  const char *name)
-{
-    virNetServerMDNSGroupPtr group;
-
-    VIR_DEBUG("Adding group '%s'", name);
-    if (VIR_ALLOC(group) < 0)
-        return NULL;
-
-    if (VIR_STRDUP(group->name, name) < 0) {
-        VIR_FREE(group);
-        return NULL;
-    }
-    group->mdns = mdns;
-    group->next = mdns->group;
-    mdns->group = group;
-    return group;
-}
-
-
-void virNetServerMDNSRemoveGroup(virNetServerMDNSPtr mdns,
-                                 virNetServerMDNSGroupPtr group)
-{
-    virNetServerMDNSGroupPtr tmp = mdns->group, prev = NULL;
-
-    while (tmp) {
-        if (tmp == group) {
-            VIR_FREE(group->name);
-            if (prev)
-                prev->next = group->next;
-            else
-                group->mdns->group = group->next;
-            VIR_FREE(group);
-            return;
-        }
-        prev = tmp;
-        tmp = tmp->next;
-    }
-}
-
-
-virNetServerMDNSEntryPtr virNetServerMDNSAddEntry(virNetServerMDNSGroupPtr group,
-                                                  const char *type,
-                                                  int port)
-{
-    virNetServerMDNSEntryPtr entry;
-
-    VIR_DEBUG("Adding entry %s %d to group %s", type, port, group->name);
-    if (VIR_ALLOC(entry) < 0)
-        return NULL;
-
-    entry->port = port;
-    if (VIR_STRDUP(entry->type, type) < 0) {
-        VIR_FREE(entry);
-        return NULL;
-    }
-    entry->next = group->entry;
-    group->entry = entry;
-    return entry;
-}
-
-
-void virNetServerMDNSRemoveEntry(virNetServerMDNSGroupPtr group,
-                                 virNetServerMDNSEntryPtr entry)
-{
-    virNetServerMDNSEntryPtr tmp = group->entry, prev = NULL;
-
-    while (tmp) {
-        if (tmp == entry) {
-            VIR_FREE(entry->type);
-            if (prev)
-                prev->next = entry->next;
-            else
-                group->entry = entry->next;
-            return;
-        }
-        prev = tmp;
-        tmp = tmp->next;
-    }
-}
-
-
-void virNetServerMDNSStop(virNetServerMDNSPtr mdns)
-{
-    virNetServerMDNSGroupPtr group = mdns->group;
-    while (group) {
-        if (group->handle) {
-            avahi_entry_group_free(group->handle);
-            group->handle = NULL;
-        }
-        group = group->next;
-    }
-    if (mdns->client)
-        avahi_client_free(mdns->client);
-    mdns->client = NULL;
-}
-
-
-void virNetServerMDNSFree(virNetServerMDNSPtr mdns)
-{
-    virNetServerMDNSGroupPtr group, tmp;
-
-    if (!mdns)
-        return;
-
-    group = mdns->group;
-    while (group) {
-        tmp = group->next;
-        virNetServerMDNSGroupFree(group);
-        group = tmp;
-    }
-
-    VIR_FREE(mdns->poller);
-    VIR_FREE(mdns);
-}
-
-
-void virNetServerMDNSGroupFree(virNetServerMDNSGroupPtr grp)
-{
-    virNetServerMDNSEntryPtr entry, tmp;
-
-    if (!grp)
-        return;
-
-    entry = grp->entry;
-    while (entry) {
-        tmp = entry->next;
-        virNetServerMDNSEntryFree(entry);
-        entry = tmp;
-    }
-
-    VIR_FREE(grp->name);
-    VIR_FREE(grp);
-}
-
-
-void virNetServerMDNSEntryFree(virNetServerMDNSEntryPtr entry)
-{
-    if (!entry)
-        return;
-
-    VIR_FREE(entry->type);
-    VIR_FREE(entry);
-}
-
-#else /* ! WITH_AVAHI */
-
-static const char *unsupported = N_("avahi not available at build time");
-
-virNetServerMDNS *
-virNetServerMDNSNew(void)
-{
-    virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _(unsupported));
-    return NULL;
-}
-
-int
-virNetServerMDNSStart(virNetServerMDNS *mdns ATTRIBUTE_UNUSED)
-{
-    virReportError(VIR_ERR_INTERNAL_ERROR, "%s", _(unsupported));
-    return -1;
-}
-
-virNetServerMDNSGroupPtr
-virNetServerMDNSAddGroup(virNetServerMDNS *mdns ATTRIBUTE_UNUSED,
-                         const char *name ATTRIBUTE_UNUSED)
-{
-    virReportError(VIR_ERR_INTERNAL_ERROR, "%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)
-{
-    virReportError(VIR_ERR_INTERNAL_ERROR, "%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 /* ! WITH_AVAHI */
diff --git a/src/rpc/virnetservermdns.h b/src/rpc/virnetservermdns.h
deleted file mode 100644
index 5f8e4da581557beb78af88a9c93f658884121d50..0000000000000000000000000000000000000000
--- a/src/rpc/virnetservermdns.h
+++ /dev/null
@@ -1,104 +0,0 @@
-/*
- * virnetservermdns.h: advertise server sockets
- *
- * Copyright (C) 2011 Red Hat, Inc.
- * Copyright (C) 2007 Daniel P. Berrange
- *
- * Derived from Avahi example service provider code.
- *
- * This library is free software; you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 2.1 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library.  If not, see
- * .
- */
-
-#pragma once
-
-#include "internal.h"
-
-typedef struct _virNetServerMDNS virNetServerMDNS;
-typedef virNetServerMDNS *virNetServerMDNSPtr;
-typedef struct _virNetServerMDNSGroup virNetServerMDNSGroup;
-typedef virNetServerMDNSGroup *virNetServerMDNSGroupPtr;
-typedef struct _virNetServerMDNSEntry virNetServerMDNSEntry;
-typedef virNetServerMDNSEntry *virNetServerMDNSEntryPtr;
-
-
-/**
- * Prepares a new mdns manager object for use
- */
-virNetServerMDNSPtr virNetServerMDNSNew(void);
-
-/**
- * Starts the mdns client, advertising any groups/entries currently registered
- *
- * @mdns: manager to start advertising
- *
- * Starts the mdns client. Services may not be immediately visible, since
- * it may asynchronously wait for the mdns service to startup
- *
- * returns -1 upon failure, 0 upon success.
- */
-int virNetServerMDNSStart(virNetServerMDNSPtr mdns);
-
-/**
- * Stops the mdns client, removing any advertisements
- *
- * @mdns: manager to start advertising
- *
- */
-void virNetServerMDNSStop(virNetServerMDNSPtr mdns);
-
-/**
- * Adds a group container for advertisement
- *
- * @mdns manager to attach the group to
- * @name unique human readable service name
- *
- * returns the group record, or NULL upon failure
- */
-virNetServerMDNSGroupPtr virNetServerMDNSAddGroup(virNetServerMDNSPtr mdns,
-                                                  const char *name);
-
-/**
- * Removes a group container from advertisement
- *
- * @mdns amanger to detach group from
- * @group group to remove
- */
-void virNetServerMDNSRemoveGroup(virNetServerMDNSPtr mdns,
-                                 virNetServerMDNSGroupPtr group);
-
-/**
- * Adds a service entry in a group
- *
- * @group group to attach the entry to
- * @type service type string
- * @port tcp port number
- *
- * returns the service record, or NULL upon failure
- */
-virNetServerMDNSEntryPtr virNetServerMDNSAddEntry(virNetServerMDNSGroupPtr group,
-                                                  const char *type, int port);
-
-/**
- * Removes a service entry from a group
- *
- * @group group to detach service entry from
- * @entry service entry to remove
- */
-void virNetServerMDNSRemoveEntry(virNetServerMDNSGroupPtr group,
-                                 virNetServerMDNSEntryPtr entry);
-
-void virNetServerMDNSFree(virNetServerMDNSPtr ptr);
-void virNetServerMDNSGroupFree(virNetServerMDNSGroupPtr ptr);
-void virNetServerMDNSEntryFree(virNetServerMDNSEntryPtr ptr);
diff --git a/tests/virconfdata/libvirtd.conf b/tests/virconfdata/libvirtd.conf
index ee575931097357408a91015476effe2d428d8be6..602aa08d927abcf0dc1b665fb375dc1598ef2607 100644
--- a/tests/virconfdata/libvirtd.conf
+++ b/tests/virconfdata/libvirtd.conf
@@ -43,23 +43,6 @@ tcp_port = "16509"
 
 
 
-# Flag toggling mDNS advertizement of the libvirt service.
-#
-# Alternatively can disable for all services on a host by
-# stopping the Avahi daemon
-#
-# This is disabled by default, uncomment this to enable it
-mdns_adv = 1
-
-# Override the default mDNS advertizement name. This must be
-# unique on the immediate broadcast network.
-#
-# The default is "Virtualization Host HOSTNAME", where HOSTNAME
-# is subsituted for the short hostname of the machine (without domain)
-#
-mdns_name = "Virtualization Host Joe Demo"
-
-
 #################################################################
 #
 # UNIX socket access controls
diff --git a/tests/virconfdata/libvirtd.out b/tests/virconfdata/libvirtd.out
index e0b6f0a606533701b30cd3a0b94521d35eb79895..d3f2bd20a7bf385273423259d43decf20ad930c0 100644
--- a/tests/virconfdata/libvirtd.out
+++ b/tests/virconfdata/libvirtd.out
@@ -32,20 +32,6 @@ tls_port = "16514"
 # This can be a port number, or service name
 #
 tcp_port = "16509"
-# Flag toggling mDNS advertizement of the libvirt service.
-#
-# Alternatively can disable for all services on a host by
-# stopping the Avahi daemon
-#
-# This is disabled by default, uncomment this to enable it
-mdns_adv = 1
-# Override the default mDNS advertizement name. This must be
-# unique on the immediate broadcast network.
-#
-# The default is "Virtualization Host HOSTNAME", where HOSTNAME
-# is subsituted for the short hostname of the machine (without domain)
-#
-mdns_name = "Virtualization Host Joe Demo"
 #################################################################
 #
 # UNIX socket access controls
diff --git a/tests/virnetdaemondata/input-data-admin-nomdns.json b/tests/virnetdaemondata/input-data-admin.json
similarity index 100%
rename from tests/virnetdaemondata/input-data-admin-nomdns.json
rename to tests/virnetdaemondata/input-data-admin.json
diff --git a/tests/virnetdaemondata/input-data-initial-nomdns.json b/tests/virnetdaemondata/input-data-initial-nomdns.json
deleted file mode 100644
index 6cf70d96e8de592f91a8b165398d20c56af0cedf..0000000000000000000000000000000000000000
--- a/tests/virnetdaemondata/input-data-initial-nomdns.json
+++ /dev/null
@@ -1,63 +0,0 @@
-{
-    "min_workers": 10,
-    "max_workers": 50,
-    "priority_workers": 5,
-    "max_clients": 100,
-    "keepaliveInterval": 120,
-    "keepaliveCount": 5,
-    "keepaliveRequired": true,
-    "services": [
-        {
-            "auth": 0,
-            "readonly": true,
-            "nrequests_client_max": 2,
-            "socks": [
-                {
-                    "fd": 100,
-                    "errfd": -1,
-                    "pid": 0,
-                    "isClient": false
-                }
-            ]
-        },
-        {
-            "auth": 2,
-            "readonly": false,
-            "nrequests_client_max": 5,
-            "socks": [
-                {
-                    "fd": 101,
-                    "errfd": -1,
-                    "pid": 0,
-                    "isClient": false
-                }
-            ]
-        }
-    ],
-    "clients": [
-        {
-            "auth": 1,
-            "readonly": true,
-            "nrequests_max": 15,
-            "sock": {
-                "fd": 102,
-                "errfd": -1,
-                "pid": -1,
-                "isClient": true
-            },
-	    "privateData": 1729
-        },
-        {
-            "auth": 2,
-            "readonly": true,
-            "nrequests_max": 66,
-            "sock": {
-                "fd": 103,
-                "errfd": -1,
-                "pid": -1,
-                "isClient": true
-            },
-	    "privateData": 1729
-        }
-    ]
-}
diff --git a/tests/virnetdaemondata/input-data-initial.json b/tests/virnetdaemondata/input-data-initial.json
index 5bb09ed36b31bc9fac43524f2e4a0efee7157899..6cf70d96e8de592f91a8b165398d20c56af0cedf 100644
--- a/tests/virnetdaemondata/input-data-initial.json
+++ b/tests/virnetdaemondata/input-data-initial.json
@@ -6,7 +6,6 @@
     "keepaliveInterval": 120,
     "keepaliveCount": 5,
     "keepaliveRequired": true,
-    "mdnsGroupName": "libvirtTest",
     "services": [
         {
             "auth": 0,
diff --git a/tests/virnetdaemondata/output-data-admin-nomdns.json b/tests/virnetdaemondata/output-data-admin.json
similarity index 100%
rename from tests/virnetdaemondata/output-data-admin-nomdns.json
rename to tests/virnetdaemondata/output-data-admin.json
diff --git a/tests/virnetdaemondata/output-data-initial-nomdns.json b/tests/virnetdaemondata/output-data-initial-nomdns.json
deleted file mode 100644
index 916297c59dd33754df01cf3166ce2c06a22cb79d..0000000000000000000000000000000000000000
--- a/tests/virnetdaemondata/output-data-initial-nomdns.json
+++ /dev/null
@@ -1,72 +0,0 @@
-{
-  "servers": {
-    "testServer0": {
-      "min_workers": 10,
-      "max_workers": 50,
-      "priority_workers": 5,
-      "max_clients": 100,
-      "max_anonymous_clients": 100,
-      "keepaliveInterval": 120,
-      "keepaliveCount": 5,
-      "next_client_id": 3,
-      "services": [
-        {
-          "auth": 0,
-          "readonly": true,
-          "nrequests_client_max": 2,
-          "socks": [
-            {
-              "fd": 100,
-              "errfd": -1,
-              "pid": 0,
-              "isClient": false
-            }
-          ]
-        },
-        {
-          "auth": 2,
-          "readonly": false,
-          "nrequests_client_max": 5,
-          "socks": [
-            {
-              "fd": 101,
-              "errfd": -1,
-              "pid": 0,
-              "isClient": false
-            }
-          ]
-        }
-      ],
-      "clients": [
-        {
-          "id": 1,
-          "auth": 1,
-          "auth_pending": true,
-          "readonly": true,
-          "nrequests_max": 15,
-          "sock": {
-            "fd": 102,
-            "errfd": -1,
-            "pid": -1,
-            "isClient": true
-          },
-          "privateData": 1729
-        },
-        {
-          "id": 2,
-          "auth": 2,
-          "auth_pending": true,
-          "readonly": true,
-          "nrequests_max": 66,
-          "sock": {
-            "fd": 103,
-            "errfd": -1,
-            "pid": -1,
-            "isClient": true
-          },
-          "privateData": 1729
-        }
-      ]
-    }
-  }
-}
diff --git a/tests/virnetdaemondata/output-data-initial.json b/tests/virnetdaemondata/output-data-initial.json
index 5ed03472d6c05b4120200df85964516cd037bd92..916297c59dd33754df01cf3166ce2c06a22cb79d 100644
--- a/tests/virnetdaemondata/output-data-initial.json
+++ b/tests/virnetdaemondata/output-data-initial.json
@@ -9,7 +9,6 @@
       "keepaliveInterval": 120,
       "keepaliveCount": 5,
       "next_client_id": 3,
-      "mdnsGroupName": "libvirtTest",
       "services": [
         {
           "auth": 0,
diff --git a/tests/virnetdaemontest.c b/tests/virnetdaemontest.c
index 3e9b007d9bf441c3e1b9e6c4dbaa67501a409404..eae630a8f1368e9df361d0956dd89668208f9ad5 100644
--- a/tests/virnetdaemontest.c
+++ b/tests/virnetdaemontest.c
@@ -87,13 +87,6 @@ testCreateServer(const char *server_name, const char *host, int family)
     virNetServerClientPtr cln1 = NULL, cln2 = NULL;
     virNetSocketPtr sk1 = NULL, sk2 = NULL;
     int fdclient[2];
-    const char *mdns_entry = NULL;
-    const char *mdns_group = NULL;
-
-# ifdef WITH_AVAHI
-    mdns_entry = "libvirt-ro";
-    mdns_group = "libvirtTest";
-# endif
 
     if (socketpair(PF_UNIX, SOCK_STREAM, 0, fdclient) < 0) {
         virReportSystemError(errno, "%s",
@@ -104,7 +97,6 @@ testCreateServer(const char *server_name, const char *host, int family)
     if (!(srv = virNetServerNew(server_name, 1,
                                 10, 50, 5, 100, 10,
                                 120, 5,
-                                mdns_group,
                                 testClientNew,
                                 testClientPreExec,
                                 testClientFree,
@@ -131,9 +123,9 @@ testCreateServer(const char *server_name, const char *host, int family)
                                            5)))
         goto error;
 
-    if (virNetServerAddService(srv, svc1, mdns_entry) < 0)
+    if (virNetServerAddService(srv, svc1) < 0)
         goto error;
-    if (virNetServerAddService(srv, svc2, mdns_entry) < 0)
+    if (virNetServerAddService(srv, svc2) < 0)
         goto error;
 
     if (virNetSocketNewConnectSockFD(fdclient[0], &sk1) < 0)
@@ -408,12 +400,9 @@ mymain(void)
 # define EXEC_RESTART_TEST_FAIL(file, N) EXEC_RESTART_TEST_FULL(file, N, false)
 
 
-# ifdef WITH_AVAHI
     EXEC_RESTART_TEST("initial", 1);
-# endif
-    EXEC_RESTART_TEST("initial-nomdns", 1);
     EXEC_RESTART_TEST("anon-clients", 1);
-    EXEC_RESTART_TEST("admin-nomdns", 2);
+    EXEC_RESTART_TEST("admin", 2);
     EXEC_RESTART_TEST("admin-server-names", 2);
     EXEC_RESTART_TEST("no-keepalive-required", 2);
     EXEC_RESTART_TEST("client-ids", 1);