diff options
author | Lubomir Rintel <lkundrak@v3.sk> | 2017-03-20 16:57:58 +0000 |
---|---|---|
committer | Lubomir Rintel <lkundrak@v3.sk> | 2017-03-20 17:12:16 +0000 |
commit | 28fc313a06cf3701e7db2a45ee5c06b24cc53d5f (patch) | |
tree | 43e601a1d0d48804b77c7b4f13f6439552aede00 | |
parent | d20ed3a1f34ca2865ae2e17992772ee43110355a (diff) | |
download | NetworkManager-28fc313a06cf3701e7db2a45ee5c06b24cc53d5f.tar.gz |
dns-manager: use libpsl directly
...instead of via libsoup. This makes it possible to do gTLD suffix checking
even if we're building withoup libsoup support. libsoup uses libpsl anyway.
-rw-r--r-- | Makefile.am | 3 | ||||
-rw-r--r-- | configure.ac | 14 | ||||
-rw-r--r-- | src/dns/nm-dns-manager.c | 15 |
3 files changed, 21 insertions, 11 deletions
diff --git a/Makefile.am b/Makefile.am index 8ee15b5be5..97c9e3ed71 100644 --- a/Makefile.am +++ b/Makefile.am @@ -1034,6 +1034,7 @@ src_cppflags = \ $(GUDEV_CFLAGS) \ $(LIBNL_CFLAGS) \ $(LIBNDP_CFLAGS) \ + $(LIBPSL_CFLAGS) \ $(LIBSOUP_CFLAGS) \ $(SELINUX_CFLAGS) \ $(LIBAUDIT_CFLAGS) \ @@ -1470,7 +1471,9 @@ src_libNetworkManager_la_LIBADD = \ $(LIBM) \ $(SELINUX_LIBS) \ $(LIBAUDIT_LIBS) \ + $(LIBPSL_LIBS) \ $(LIBSOUP_LIBS) + $(LIBCURL_LIBS) ############################################################################### diff --git a/configure.ac b/configure.ac index 3af9c4a22c..92c846c9a6 100644 --- a/configure.ac +++ b/configure.ac @@ -965,6 +965,19 @@ fi AC_DEFINE_UNQUOTED(KERNEL_FIRMWARE_DIR, "$KERNEL_FIRMWARE_DIR", [Define to path of the kernel firmware directory]) AC_SUBST(KERNEL_FIRMWARE_DIR) +PKG_CHECK_MODULES(LIBPSL, [libpsl >= 0.1], [have_libpsl=yes],[have_libpsl=no]) +AC_ARG_WITH(libpsl, AS_HELP_STRING([--with-libpsl=yes|no], [Link against libpsl]), [], [with_libpsl=${have_libpsl}]) +if test "$with_libpsl" != "no"; then + if test "$have_libpsl" != "yes"; then + AC_MSG_ERROR(libpsl library not found) + fi + with_libpsl='yes' + AC_DEFINE(WITH_LIBPSL, 1, [Define if you have libpsl]) +else + AC_DEFINE(WITH_LIBPSL, 0, [Define if you have libpsl]) +fi +AM_CONDITIONAL(WITH_LIBPSL, test "$with_libpsl" != "no") + PKG_CHECK_MODULES(LIBSOUP, [libsoup-2.4 >= 2.40], [have_libsoup=yes],[have_libsoup=no]) AC_ARG_WITH(libsoup, AS_HELP_STRING([--with-libsoup=yes|no], [Link against libsoup]), [], [with_libsoup=${have_libsoup}]) if test "$with_libsoup" != "no"; then @@ -1296,4 +1309,5 @@ echo " LTO: $enable_lto" echo " linker garbage collection: $enable_ld_gc" echo " JSON validation for libnm: $enable_json_validation" echo " sanitizers: $sanitizers" +echo " Mozilla Public Suffic List: $with_libpsl" echo diff --git a/src/dns/nm-dns-manager.c b/src/dns/nm-dns-manager.c index 5b83eeba65..25876e5ef4 100644 --- a/src/dns/nm-dns-manager.c +++ b/src/dns/nm-dns-manager.c @@ -52,17 +52,10 @@ #include "introspection/org.freedesktop.NetworkManager.DnsManager.h" -#if WITH_LIBSOUP -#include <libsoup/soup.h> - -#ifdef SOUP_CHECK_VERSION -#if SOUP_CHECK_VERSION (2, 40, 0) -#define DOMAIN_IS_VALID(domain) (*(domain) && !soup_tld_domain_is_public_suffix (domain)) -#endif -#endif -#endif - -#ifndef DOMAIN_IS_VALID +#if WITH_LIBPSL +#include <libpsl.h> +#define DOMAIN_IS_VALID(domain) (*(domain) && !psl_is_public_suffix (psl_builtin (), domain)) +#else #define DOMAIN_IS_VALID(domain) (*(domain)) #endif |