[libvirt] [PATCH] loopback is not always just lo

Laine Stump laine at laine.org
Mon Nov 7 06:52:05 UTC 2016


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




More information about the libvir-list mailing list