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

Daniel P. Berrange berrange at redhat.com
Mon Nov 7 09:15:32 UTC 2016


On Mon, Nov 07, 2016 at 01:52:05AM -0500, Laine Stump wrote:
> 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).

Any idea how far back wildcards work.  If they still work on the RHEL-6
vintage dnsmasq, then I'd agree with you and it'll make the test case
fix easier to avoid the conditional.


Regards,
Daniel
-- 
|: http://berrange.com      -o-    http://www.flickr.com/photos/dberrange/ :|
|: http://libvirt.org              -o-             http://virt-manager.org :|
|: http://entangle-photo.org       -o-    http://search.cpan.org/~danberr/ :|




More information about the libvir-list mailing list