More recent libnl versions can be installed in parallel. Therefore it is
possible for more than one libnl check to pass successful. The way
the #ifdefs are done this results in code for multiple libnl versions
to be included.
Signed-off-by: Thomas Graf <tgraf@redhat.com>
Use one global PolkitAuthority object; we only really need to use it
in one place anyway. So consolidate the code that uses polkit into
nm-manager-auth.c.
For VPN connections, the interface name would be that of the VPN's
IP interface, but the script environment would be the that of the
VPN's parent device. Enhance the environment by adding any VPN
specific details as additional environment variables prefixed by
"VPN_". Leave the existing environment setup intact for backwards
compatiblity.
Additionally, the dispatcher never got updated for IPv6 support,
so push IPv6 configuration and DHCPv6 configuration into the
environment too.
Even better, push everything the dispatcher needs to it instead
of making the dispatcher make D-Bus requests back to NM, which
sometimes fails if NM has already torn down the device or the
connection which the device was using.
And add some testcases to ensure that we don't break backwards compat,
the testcases here were grabbed from a 0.8.4 machine with a hacked up
dispatcher to dump everything it was given from NM.
AC_PROG_CXX should be unconditionally run, as it doesn't fail out
if a C++ compiler is not found, which is fine. It'll check for
one, but we only use it if --enable-qt=yes is given at configure
time. If --enable-qt=no is set, we do not want to do anything
C++ related, which is why it was conditionalized (incorrectly)
the first time around.
Due to an error in the loop logic, if there were no connections yet (like
a fresh install or a livecd or whatever) no default name would be returned
and thus ethernet devices wouldn't come up automatically. Fix that loop
error and add testcases for it.
We only need newer glib for G_DEFINE_BOXED_TYPE, which is only
required for introspection. If you don't want introspection, you
don't need that, so allow building on glib 2.24 without.
We may be compatible with even earlier glib versions too, if so
let me know and I'll downgrade the requirement further.
Add the necessary annotations (the mininum required, that is those
on return values. NULL parameters or container types may require
more), and the Autotools stuff to get a NetworkManager GIR for
libnm-util and a NMClient for libnm-glib.