Re: [OpenWrt-Devel] [PATCH] netifd: fix IPv6 Link-local DNS server

2014-04-24 Thread Steven Barth

Applied, thanks. Will get into OpenWrt with next netifd-bump.
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel


[OpenWrt-Devel] [PATCH] netifd: fix IPv6 Link-local DNS server

2014-04-23 Thread Ulrich Weber
interface name must be added to Link-local IPv6
DNS servers, otherwise they are unusable.

Signed-off-by: Ulrich Weber u...@ocedo.com
---
 interface-ip.c | 12 
 1 file changed, 8 insertions(+), 4 deletions(-)

diff --git a/interface-ip.c b/interface-ip.c
index d5a3832..6f42015 100644
--- a/interface-ip.c
+++ b/interface-ip.c
@@ -18,6 +18,7 @@
 
 #include limits.h
 #include arpa/inet.h
+#include netinet/in.h
 
 #include netifd.h
 #include device.h
@@ -1027,7 +1028,7 @@ interface_add_dns_search_list(struct 
interface_ip_settings *ip, struct blob_attr
 }
 
 static void
-write_resolv_conf_entries(FILE *f, struct interface_ip_settings *ip)
+write_resolv_conf_entries(FILE *f, struct interface_ip_settings *ip, const 
char *dev)
 {
struct dns_server *s;
struct dns_search_domain *d;
@@ -1039,7 +1040,10 @@ write_resolv_conf_entries(FILE *f, struct 
interface_ip_settings *ip)
if (!str)
continue;
 
-   fprintf(f, nameserver %s\n, str);
+   if (s-af == AF_INET6  IN6_IS_ADDR_LINKLOCAL(s-addr))
+   fprintf(f, nameserver %s%%%s\n, str, dev);
+   else
+   fprintf(f, nameserver %s\n, str);
}
 
vlist_simple_for_each_element(ip-dns_search, d, node) {
@@ -1074,9 +1078,9 @@ interface_write_resolv_conf(void)
continue;
 
fprintf(f, # Interface %s\n, iface-name);
-   write_resolv_conf_entries(f, iface-config_ip);
+   write_resolv_conf_entries(f, iface-config_ip, iface-ifname);
if (!iface-proto_ip.no_dns)
-   write_resolv_conf_entries(f, iface-proto_ip);
+   write_resolv_conf_entries(f, iface-proto_ip, 
iface-ifname);
}
fflush(f);
rewind(f);
-- 
1.8.3.2
___
openwrt-devel mailing list
openwrt-devel@lists.openwrt.org
https://lists.openwrt.org/cgi-bin/mailman/listinfo/openwrt-devel