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