
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).