summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDan Williams <dcbw@redhat.com>2013-12-20 12:22:14 -0600
committerDan Williams <dcbw@redhat.com>2014-01-24 09:42:51 -0600
commit78d6008239de9d0dcb2023933da472658a51e921 (patch)
tree477bf26c024b60412f13f04548e9ff7142a80042 /src
parentd96d242bc67153673223717e10d84ca1fda11bdf (diff)
dns-manager: allow NULL interface name for IP configs
VPN services that use the kernel's IPSec stack (like OpenSwan/LibreSWAN) obviously don't have a tunnel interface, so don't require one. If those services provide Link-Local IPv6 DNS servers they simply won't work, but perhaps we can filter those out later or warn about them.
Diffstat (limited to 'src')
-rw-r--r--src/dns-manager/nm-dns-manager.c5
1 files changed, 1 insertions, 4 deletions
diff --git a/src/dns-manager/nm-dns-manager.c b/src/dns-manager/nm-dns-manager.c
index 44c6f11158..659fbec6a8 100644
--- a/src/dns-manager/nm-dns-manager.c
+++ b/src/dns-manager/nm-dns-manager.c
@@ -185,7 +185,6 @@ merge_one_ip6_config (NMResolvConfData *rc, NMIP6Config *src)
const char *iface;
iface = g_object_get_data (G_OBJECT (src), IP_CONFIG_IFACE_TAG);
- g_assert (iface);
num = nm_ip6_config_get_num_nameservers (src);
for (i = 0; i < num; i++) {
@@ -201,7 +200,7 @@ merge_one_ip6_config (NMResolvConfData *rc, NMIP6Config *src)
add_string_item (rc->nameservers, buf);
} else {
if (inet_ntop (AF_INET6, addr, buf, INET6_ADDRSTRLEN) > 0) {
- if (IN6_IS_ADDR_LINKLOCAL (addr)) {
+ if (iface && IN6_IS_ADDR_LINKLOCAL (addr)) {
tmp = g_strdup_printf ("%s%%%s", buf, iface);
add_string_item (rc->nameservers, tmp);
g_free (tmp);
@@ -828,7 +827,6 @@ nm_dns_manager_add_ip4_config (NMDnsManager *mgr,
GError *error = NULL;
g_return_val_if_fail (mgr != NULL, FALSE);
- g_return_val_if_fail (iface != NULL, FALSE);
g_return_val_if_fail (config != NULL, FALSE);
priv = NM_DNS_MANAGER_GET_PRIVATE (mgr);
@@ -906,7 +904,6 @@ nm_dns_manager_add_ip6_config (NMDnsManager *mgr,
GError *error = NULL;
g_return_val_if_fail (mgr != NULL, FALSE);
- g_return_val_if_fail (iface != NULL, FALSE);
g_return_val_if_fail (config != NULL, FALSE);
priv = NM_DNS_MANAGER_GET_PRIVATE (mgr);