summaryrefslogtreecommitdiff
path: root/src/rtnl.c
diff options
context:
space:
mode:
authorSamuel Ortiz <sameo@linux.intel.com>2010-12-21 16:57:14 +0100
committerSamuel Ortiz <sameo@linux.intel.com>2010-12-21 16:57:14 +0100
commit512c962495fb4d0ecefec5589ff97a6464067c3b (patch)
tree972dd97f7703e7ac87ed9209dc6cf5e5e79860b5 /src/rtnl.c
parentdffdeabeee46318da8d1e976add0bc7dcc8f54d7 (diff)
downloadconnman-512c962495fb4d0ecefec5589ff97a6464067c3b.tar.gz
connman-512c962495fb4d0ecefec5589ff97a6464067c3b.tar.bz2
connman-512c962495fb4d0ecefec5589ff97a6464067c3b.zip
rtnl: Register all RDNSS search domains
Diffstat (limited to 'src/rtnl.c')
-rw-r--r--src/rtnl.c16
1 files changed, 13 insertions, 3 deletions
diff --git a/src/rtnl.c b/src/rtnl.c
index 96f80610..9441c9a3 100644
--- a/src/rtnl.c
+++ b/src/rtnl.c
@@ -1140,13 +1140,23 @@ static void rtnl_newnduseropt(struct nlmsghdr *hdr)
}
if (nr_servers) {
- int i;
+ int i, j;
char buf[40];
for (i = 0; i < nr_servers; i++) {
- if (inet_ntop(AF_INET6, servers + i, buf, sizeof(buf)))
+ if (!inet_ntop(AF_INET6, servers + i, buf, sizeof(buf)))
+ continue;
+
+ if (domains == NULL || domains[0] == NULL) {
+ connman_resolver_append_lifetime(interface,
+ NULL, buf, lifetime);
+ continue;
+ }
+
+ for (j = 0; domains[j]; j++)
connman_resolver_append_lifetime(interface,
- domains?domains[0]:NULL, buf, lifetime);
+ domains[j],
+ buf, lifetime);
}
}
g_free(domains);