[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