From owner-IPv6-jp@jp.FreeBSD.org Mon Apr  7 18:16:39 2003
Received: (from daemon@localhost)
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) id h379Gdd32088;
	Mon, 7 Apr 2003 18:16:39 +0900 (JST)
	(envelope-from owner-IPv6-jp@jp.FreeBSD.org)
Received: from cheer.mahoroba.org (IDENT:K+n4i43lz+renEoXD+XvOS9wbQ5ozXhqmVqpS4YjJtNq9mpussQy99jY96QEZpop@fbsdjp.mahoroba.org [3ffe:501:185b:801f:240:c7ff:fe99:81eb])
	by castle.jp.FreeBSD.org (8.11.6p2+3.4W/8.11.3) with ESMTP/inet6 id h379GdY32083
	for <IPv6-jp@jp.FreeBSD.org>; Mon, 7 Apr 2003 18:16:39 +0900 (JST)
	(envelope-from ume@mahoroba.org)
Received: from localhost (IDENT:fz6osYrNc3be9gcePai4j0wq25aJhbjACM4goRXHRlMWgh3tJMzRy+zBf6QdcYU8@localhost [IPv6:::1])
	(user=ume mech=CRAM-MD5 bits=0)
	by cheer.mahoroba.org (8.12.9/8.12.9) with ESMTP/inet6 id h379FEVA082773
	(version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=NO)
	for <IPv6-jp@jp.FreeBSD.org>; Mon, 7 Apr 2003 18:15:14 +0900 (JST)
	(envelope-from ume@mahoroba.org)
Message-ID: <yger88ey8gt.wl%ume@mahoroba.org>
From: Hajimu UMEMOTO <ume@mahoroba.org>
To: IPv6-jp@jp.FreeBSD.org
In-Reply-To: <20030407.174115.20531037.keiichi@iij.ad.jp>
References: <F19HHDcKRNWgBWThizU0002bbae@hotmail.com>
	<ygesmsuyc3l.wl%ume@mahoroba.org>
	<20030407.174115.20531037.keiichi@iij.ad.jp>
User-Agent: xcite1.38> Wanderlust/2.10.0 (Venus) SEMI/1.14.5 (Awara-Onsen)
 FLIM/1.14.5 (Demachiyanagi) APEL/10.4 Emacs/21.2 (i386--freebsd) MULE/5.0
 (=?ISO-2022-JP?B?GyRCOC1MWhsoQg==?=)
X-Operating-System: FreeBSD 4.8-STABLE
MIME-Version: 1.0 (generated by SEMI 1.14.5 - "Awara-Onsen")
Content-Type: multipart/mixed;
 boundary="Multipart_Mon_Apr__7_18:15:14_2003-1"
X-Virus-Scanned: by AMaViS-perl11-milter (http://amavis.org/)
X-Spam-Status: No, hits=-19.6 required=5.0
	tests=IN_REP_TO,QUOTED_EMAIL_TEXT,REFERENCES,REPLY_WITH_QUOTES,
	      USER_AGENT
	version=2.50
X-Spam-Checker-Version: SpamAssassin 2.50 (1.173-2003-02-20-exp)
Reply-To: IPv6-jp@jp.FreeBSD.org
Precedence: list
Date: Mon, 07 Apr 2003 18:15:14 +0900
X-Sequence: IPv6-jp 1092
Subject: [IPv6-jp 1092] Re: IPv6 =?ISO-2022-JP?B?GyRCJE4bKEI=?= DNS
 =?ISO-2022-JP?B?GyRCJE5AX0RqJEs0WCQ3JEYbKEI=?= 
Sender: owner-IPv6-jp@jp.FreeBSD.org
X-Originator: ume@mahoroba.org
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+030405

--Multipart_Mon_Apr__7_18:15:14_2003-1
Content-Type: text/plain; charset=ISO-2022-JP

  $BG_K\!w(BIMASY$B$G$9!#(B

>>> Mon, 07 Apr 2003 17:41:15 +0900 $B$N9o$K!V(Bkeiichi$B!W!"$9$J$o$A(B
>>> Keiichi SHIMA / $BEg7D0l(B <keiichi@iij.ad.jp> $B;a[)$/(B

> 	draft-ietf-ipv6-dns-discovery-07.txt

keiichi> site-local $B$,$J$/$J$i$J$1$l$P!"$G$9$M!<!#(B:-)

  $B$"$!!"$?$7$+$K!#(B:)
  $B$J$/$J$C$?$i$I$&$9$k$s$@$m$&!)(B

  $B$H$j$"$($:!"(Bad-hoc $B$G$9$1$I!"(B/etc/resolv.conf $B$K=q$-=P$9$h$&$K$9$k%Q%C(B
$B%A$G$9!#(B/usr/local/etc/dhcp6c_dns.script $B$r8F$S=P$7$^$9!#>uBVEy$O8+$F(B
$B$$$^$;$s!#(B


--Multipart_Mon_Apr__7_18:15:14_2003-1
Content-Type: application/octet-stream; type=patch
Content-Disposition: attachment; filename="dhcp6.diff"
Content-Transfer-Encoding: 7bit

Index: dhcp6/Makefile.in
diff -u dhcp6/Makefile.in.orig dhcp6/Makefile.in
--- dhcp6/Makefile.in.orig	Fri Jan 24 03:27:35 2003
+++ dhcp6/Makefile.in	Fri Mar 28 11:16:55 2003
@@ -25,7 +25,8 @@
 	-DCONF_DH6OPT_PREFIX_REQUEST=@dhcpopt_preq@ \
 	-DCONF_DH6OPT_IA_PD=@dhcpopt_ia_pd@ \
 	-DCONF_DH6OPT_IA_PD_PREFIX=@dhcpopt_ia_pd_prefix@ \
-	-DCONF_DH6OPT_STCODE_NOPREFIXAVAIL=@dhcpstcode_no_prefix@
+	-DCONF_DH6OPT_STCODE_NOPREFIXAVAIL=@dhcpstcode_no_prefix@ \
+	-DINSTALL_PREFIX=\"${prefix}\"
 
 GENSRCS=cfparse.c cftoken.c
 CLIENTOBJS=	dhcp6c.o common.o config.o prefixconf.o dhcp6c_ia.o timer.o \
Index: dhcp6/common.c
diff -u dhcp6/common.c.orig dhcp6/common.c
--- dhcp6/common.c.orig	Sat Mar 15 01:01:00 2003
+++ dhcp6/common.c	Mon Apr  7 17:42:31 2003
@@ -63,6 +63,9 @@
 #include <string.h>
 #include <err.h>
 #include <netdb.h>
+#include <fcntl.h>
+#include <paths.h>
+#include <sysexits.h>
 
 #ifdef HAVE_GETIFADDRS 
 # ifdef HAVE_IFADDRS_H
@@ -1940,4 +1943,34 @@
 		    logbuf);
 	} else
 		syslog(level, "%s%s%s", fname, printfname ? ": " : "", logbuf);
+}
+
+int
+execute(path, argv)
+	char *path;
+	char **argv;
+{
+	int fd, status;
+	pid_t pid;
+
+	switch (pid = fork()) {
+	case -1:
+		dprintf(LOG_ERR, FNAME, "cannot fork: %s", strerror(errno));
+		break;
+	case 0:
+		if (debug_thresh < LOG_DEBUG) {
+			if ((fd = open(_PATH_DEVNULL, O_RDWR, 0)) != -1) {
+				(void)dup2(fd, STDIN_FILENO);
+				(void)dup2(fd, STDOUT_FILENO);
+				(void)dup2(fd, STDERR_FILENO);
+				if (fd > 2)
+					(void)close(fd);
+			}
+		}
+		(void)execv(path, argv);
+		exit(EX_UNAVAILABLE);
+	default:
+		(void)waitpid(pid, &status, 0);
+	}
+	return status;
 }
Index: dhcp6/common.h
diff -u dhcp6/common.h.orig dhcp6/common.h
--- dhcp6/common.h.orig	Sat Mar 15 01:01:00 2003
+++ dhcp6/common.h	Mon Apr  7 17:36:21 2003
@@ -90,6 +90,7 @@
 extern int duidcpy __P((struct duid *, struct duid *));
 extern int duidcmp __P((struct duid *, struct duid *));
 extern void duidfree __P((struct duid *));
+extern int execute __P((char *, char **));
 
 /* missing */
 #ifndef HAVE_STRLCAT
Index: dhcp6/dhcp6c.c
diff -u dhcp6/dhcp6c.c.orig dhcp6/dhcp6c.c
--- dhcp6/dhcp6c.c.orig	Sat Mar 15 01:01:01 2003
+++ dhcp6/dhcp6c.c	Mon Apr  7 17:36:44 2003
@@ -121,9 +122,10 @@
 struct dhcp6_timer *client6_timo __P((void *));
 int client6_ifinit __P((struct dhcp6_if *));
 
-#define DHCP6C_CONF "/usr/local/v6/etc/dhcp6c.conf"
+#define DHCP6C_CONF INSTALL_PREFIX "/etc/dhcp6c.conf"
 #define DHCP6C_PIDFILE "/var/run/dhcp6c.pid"
-#define DUID_FILE "/etc/dhcp6c_duid"
+#define DUID_FILE INSTALL_PREFIX "/etc/dhcp6c_duid"
+#define DNS_SCRIPT INSTALL_PREFIX "/etc/dhcp6c_dns.script"
 
 #define MAX_ELAPSED_TIME 0xffff
 
@@ -1420,13 +1427,19 @@
 
 	if (!TAILQ_EMPTY(&optinfo->dns_list)) {
 		struct dhcp6_listval *d;
-		int i = 0;
+		int i = 0, argc = 0;
+		char *s, *argv[8];
 
+		argv[argc++] = DNS_SCRIPT;
 		for (d = TAILQ_FIRST(&optinfo->dns_list); d;
 		     d = TAILQ_NEXT(d, link), i++) {
-			dprintf(LOG_DEBUG, FNAME, "nameserver[%d] %s",
-			    i, in6addr2str(&d->val_addr6, 0));
+			s = in6addr2str(&d->val_addr6, 0);
+			dprintf(LOG_DEBUG, FNAME, "nameserver[%d] %s", i, s);
+			if (i < 7)
+				argv[argc++] = s;
 		}
+		argv[argc++] = NULL;
+		execute(DNS_SCRIPT, argv);
 	}
 
 	/* update stateful configuration information */

--Multipart_Mon_Apr__7_18:15:14_2003-1
Content-Type: application/octet-stream
Content-Disposition: attachment; filename="dhcp6c_dns.script"
Content-Transfer-Encoding: 7bit

#!/bin/sh

resolv_conf='/etc/resolv.conf'

cat /dev/null > ${resolv_conf}
for dns in $*; do
	echo nameserver ${dns} >> ${resolv_conf}
done

--Multipart_Mon_Apr__7_18:15:14_2003-1
Content-Type: text/plain; charset=ISO-2022-JP

-- 
$BG_K\(B $BH%(B $B!w(B $B%$%s%?!<%M%C%H8_=u2q2#IM(B  http://www.imasy.org/~ume/
ume@mahoroba.org  ume@bisd.hitachi.co.jp  ume@{,jp.}FreeBSD.org
$B%W%m%0%i%`$O=q$$$??M$N0U?^$G$O$J$/=q$+$l$?DL$jF0$/(B  I hate Modula-3 :-)

--Multipart_Mon_Apr__7_18:15:14_2003-1--
