On 11/06/2016 01:54 AM, Roman Bogorodskiy wrote:
   Daniel P. Berrange wrote:

On Tue, Nov 01, 2016 at 06:15:59PM +0300, Pavel Timofeev wrote:
  On BSD family OSes (Free/Net/Open/DragonFlyBSD, Mac OS) and
  Solaris loopback interface is called 'lo0' instead of just 'lo'.

---
  src/network/bridge_driver.c | 5 +++++
  1 file changed, 5 insertions(+)

diff --git a/src/network/bridge_driver.c b/src/network/bridge_driver.c
index a3ee3f3..9d94d65 100644
--- a/src/network/bridge_driver.c
+++ b/src/network/bridge_driver.c
@@ -1002,7 +1002,12 @@ networkDnsmasqConfContents(virNetworkObjPtr network,
          virBufferAsprintf(&configbuf, "pid-file=%s\n", pidfile);
/* dnsmasq will *always* listen on localhost unless told otherwise */
+#ifdef __linux__
      virBufferAddLit(&configbuf, "except-interface=lo\n");
+#else
+    /* BSD family OSes and Solaris call loopback interface as lo0 */
+    virBufferAddLit(&configbuf, "except-interface=lo0\n");
+#endif
if (dnsmasqCapsGet(caps, DNSMASQ_CAPS_BIND_DYNAMIC)) {
          /* using --bind-dynamic with only --interface (no
ACK will push shortly.
This breaks all the networkxml2conftest tests, for example:

$ VIR_TEST_DEBUG=1 VIR_TEST_RANGE=1 ./tests/networkxml2conftest
TEST: networkxml2conftest
  1) Network XML-2-Conf isolated-network                               ...
In '/home/novel/code/libvirt/tests/networkxml2confdata/isolated-network.conf':
Offset 303
Expect [
]
Actual [0
]
$

On IRC the other day Roman mentioned the idea of just replacing "lo" with "lo*" on all platforms. I checked the dnsmasq documentation and this simple wildcarding is supported for the except-interface option, so I tried out such a patch on my system and it seems to work properly. Maybe we should do that instead of having yet another chunk of #ifdef __linux__ code (the test case datafiles will still need to be changed, but at least they'll be identical for all platforms).

--
libvir-list mailing list
libvir-list@redhat.com
https://www.redhat.com/mailman/listinfo/libvir-list

Reply via email to