ref: 68662bd30bbfdc94c61ab57be945e2ef7518a266
parent: ca6356a55f603d3396532d0ea203c4c7832f5b45
	author: cinap_lenrek <cinap_lenrek@felloff.net>
	date: Tue Sep 25 16:28:19 EDT 2018
	
ip/dhcp6d: handle internationalized domain names
--- a/sys/src/cmd/ip/dhcp6d.c
+++ b/sys/src/cmd/ip/dhcp6d.c
@@ -562,6 +562,7 @@
static int
odomainlist(uchar *w, int n, Otab *o, Req *q)
 {+ char val[256];
Ndbtuple *t;
int l, r;
char *s;
@@ -570,7 +571,9 @@
 	for(t = q->t; t != nil; t = t->entry){if(strcmp(t->attr, o->q[0]) != 0)
continue;
-		for(s = t->val; *s != 0; s++){+ if(utf2idn(t->val, val, sizeof(val)) == nil)
+ continue;
+		for(s = val; *s != 0; s++){for(l = 0; *s != 0 && *s != '.'; l++)
s++;
if(r+1+l > n)
@@ -578,6 +581,8 @@
w[r++] = l;
memmove(w+r, s-l, l);
r += l;
+ if(*s != '.')
+ break;
}
if(r >= n)
return -1;
--
⑨