From owner-FreeBSD-users-jp@jp.freebsd.org  Thu May 10 18:37:06 2001
Received: (from daemon@localhost)
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) id SAA17271;
	Thu, 10 May 2001 18:37:06 +0900 (JST)
	(envelope-from owner-FreeBSD-users-jp@jp.FreeBSD.org)
Received: from TYO201.gate.nec.co.jp (TYO201.gate.nec.co.jp [202.32.8.214])
	by castle.jp.freebsd.org (8.9.3+3.2W/8.7.3) with ESMTP id SAA17265
	for <FreeBSD-users-jp@jp.freebsd.org>; Thu, 10 May 2001 18:37:05 +0900 (JST)
	(envelope-from m-kawata@cd.jp.nec.com)
Received: from mailgate4.nec.co.jp ([10.7.69.195])
	by TYO201.gate.nec.co.jp (8.9.3/3.7W01041220) with ESMTP id SAA17931
	for <FreeBSD-users-jp@jp.freebsd.org>; Thu, 10 May 2001 18:36:38 +0900 (JST)
Received: from mailsv4.nec.co.jp (mailgate51.nec.co.jp [10.7.69.190]) by mailgate4.nec.co.jp (8.9.3/3.7W-MAILGATE-NEC) with ESMTP
	id SAA11187 for <FreeBSD-users-jp@jp.freebsd.org>; Thu, 10 May 2001 18:36:33 +0900 (JST)
Received: from shikibu.jp.nec.com (shikibu.jp.nec.com [10.26.220.2]) by mailsv4.nec.co.jp (8.11.3/3.7W-MAILSV-NEC) with ESMTP
	id f4A9aU818489 for <FreeBSD-users-jp@jp.freebsd.org>; Thu, 10 May 2001 18:36:30 +0900 (JST)
Received: from [10.33.116.249] by mail.jp.nec.com with ESMTP; Thu, 10 May 2001 18:36:30 +0900
Date: Thu, 10 May 2001 18:36:32 +0900
From: =?ISO-2022-JP?B?GyRCQG5FRBsoQiAbJEIybUknGyhC?= <m-kawata@cd.jp.nec.com>
To: FreeBSD-users-jp@jp.freebsd.org
In-Reply-To: <010506015658.M0103698@mistral.imasy.or.jp>
References: <010506002957.M0103204@mistral.imasy.or.jp> <010506015658.M0103698@mistral.imasy.or.jp>
X-Face: 3y}9uu'!/huBf$/$!{,:%>rU"Y.XLR*]L!coJ*0MJ8V@|vT>,~P2oaJd6qpYn,:$UG-H%Lj L4Z}XB%D8#BIksDEAEcu-2#YS?>DXZjyZ$;#r6flA_rK}ja0>ah_~q.M=Up5U$L)8=)s#:sBG68MzJ 3@zf=.hDr.TrswfVS-P5f.S+(
Message-Id: <20010510175017.F769.M-KAWATA@cd.jp.nec.com>
MIME-Version: 1.0
Content-Type: text/plain; charset="ISO-2022-JP"
Content-Transfer-Encoding: 7bit
X-Mailer: Becky! ver. 2.00
Reply-To: FreeBSD-users-jp@jp.freebsd.org
Precedence: list
X-Distribute: distribute version 2.1 (Alpha) patchlevel 24e+010328
X-Sequence: FreeBSD-users-jp 61349
Subject: [FreeBSD-users-jp 61349] Re: Can't rewrite resolv.conf on ppp
Errors-To: owner-FreeBSD-users-jp@jp.freebsd.org
Sender: owner-FreeBSD-users-jp@jp.freebsd.org
X-Originator: m-kawata@cd.jp.nec.com

$B$I$&$b@nED$G$9!%(B

On 2001/05/06 1:56:58, Yoshihiko SARUMARU wrote:
> >   IPCP $B$N(B MS$B3HD%$K$J$C$F$k$d$D$N>uBVA+0\?^$C$F$I$3$+$K:\$C$F$J$$(B
> > $B$G$9$+$M$'!#(B
> 
> RFC 1877 $B$K$O(B
>       on the local end of the link.  If local peer requests an invalid
>       server address (which it will typically do intentionally) the
>       remote peer specifies the address by NAKing this option, and
>       returning the IP address of a valid DNS server.
> $B$H$"$j$^$9$7!"(Bppp $B%3%^%s%I$O%5!<%P$+$i(B Rej $B$G$J$/(B Nak $B$r<u$1<h$k(B
> $B$3$H$r4|BT$7$F$$$k$s$8$c$J$$$+$J$!!"$H$$$&5$$,$7$^$9!#(B
> 
>   $B;EMME*$K$O(B Reject $B$5$l$?$i(B $B$b$&(B DNS negotiation $B$O;_$a$k$N$,@5(B
> $B$7$$$h$&$J5$$,$7$^$9$,!"5$$N$;$$$+$b$7$l$^$;$s!#(B

$B;d$bCY$l$P$;$J$,$i(B ipcp.c, fsm.c $B$5$i$K$O(B RFC 1661 (PPP) $B$bFI$s$G$_(B
$B$^$7$?!%(B($B@5$7$/M}2r$G$-$F$$$k$+$I$&$+<+?.$O$"$^$j$J$$$1$I(B...)
RFC 1661 $B$N>uBVA+0\?^$G$O(B RecvConfigRej $B$r<u$1$F(B $B:FEY(B SendConfigReq
$B$rEj$2$k$h$&$KM}2r$G$-$^$9$,!$$3$3$G$I$s$JFbMF$N(B Req $B$r:F$SEj$2$k$+(B
$B$O5,Dj$7$F$J$$$G$9$M!%$D$^$j:FMW5a$NCf?H$O8D!9$N<BAu$K0M$k$H;d$OM}2r(B
$B$7$^$7$?!%(B

# $B$3$l$O(B RFC 1877 $B$N$$$o$f$k(BMS$B3HD%$K8B$i$:DL?.@_DjA4HL$KDL$8$k$G$7$g(B
# $B$&!)(B

$B$=$3$G(B ipcp.c $B$r$_$k$HDL?.@_DjMW5a$rAH$_N)$F$F$$$k(B IpcpSendConfigReq()
$B$N(B 870$B9T$"$?$j$+$i$r(B

--- ipcp.c.orig Sat Feb 24 10:26:07 2001
+++ ipcp.c Thu May 10 00:42:46 2001
@@ -870,16 +870,25 @@
     }
   }
 
-  if (IsEnabled(ipcp->cfg.ns.dns_neg) &&
-      !REJECTED(ipcp, TY_PRIMARY_DNS - TY_ADJUST_NS)) {
-    memcpy(o->data, &ipcp->dns[0].s_addr, 4);
-    INC_LCP_OPT(TY_PRIMARY_DNS, 6, o);
-  }
-
-  if (IsEnabled(ipcp->cfg.ns.dns_neg) &&
-      !REJECTED(ipcp, TY_SECONDARY_DNS - TY_ADJUST_NS)) {
-    memcpy(o->data, &ipcp->dns[1].s_addr, 4);
-    INC_LCP_OPT(TY_SECONDARY_DNS, 6, o);
+  if (IsEnabled(ipcp->cfg.ns.dns_neg)) {
+    if (REJECTED(ipcp, TY_PRIMARY_DNS - TY_ADJUST_NS) &&
+        (ipcp->dns[0].s_addr != INADDR_ANY)) {
+      ipcp->dns[0].s_addr = INADDR_ANY;
+      ipcp->peer_reject ^= (1 << (TY_PRIMARY_DNS - TY_ADJUST_NS));
+    }
+    if (!REJECTED(ipcp, TY_PRIMARY_DNS - TY_ADJUST_NS)) {
+      memcpy(o->data, &ipcp->dns[0].s_addr, 4);
+      INC_LCP_OPT(TY_PRIMARY_DNS, 6, o);
+    }
+    if (REJECTED(ipcp, TY_SECONDARY_DNS - TY_ADJUST_NS) &&
+        (ipcp->dns[1].s_addr != INADDR_ANY)) {
+      ipcp->dns[1].s_addr = INADDR_ANY;
+      ipcp->peer_reject ^= (1 << (TY_SECONDARY_DNS - TY_ADJUST_NS));
+    }
+    if (!REJECTED(ipcp, TY_SECONDARY_DNS - TY_ADJUST_NS)) {
+      memcpy(o->data, &ipcp->dns[1].s_addr, 4);
+      INC_LCP_OPT(TY_SECONDARY_DNS, 6, o);
+    }
   }
 
   fsm_Output(fp, CODE_CONFIGREQ, fp->reqid, buff, (u_char *)o - buff,

$B$H$3$s$J$U$&$K$9$k$N$b$$$$$s$8$c$J$$$+$J$H;W$$$^$9$,$$$+$,$G$7$g$&$+!)(B
($B$;$C$+$/1n4]$5$s$K$O%Q%C%A$r:n$C$F$b$i$C$?$s$G$9$,(B...)

$B$H$3$3$^$G=q$$$F$*$$$F2?$J$s$G$9$,!$:G=i!$1n4]$5$s$K<($7$F$$$?$@$$$?(B
$B$H$*$j(B INADDR_ANY $B$H$$$&$3$H$G(B ppp.conf $B$K(B

   biglobe:
     enable dns
     set dns 0.0.0.0

$B$H$9$k$N$,@\B3@h(B($B$3$N>l9g!$FCDj$N(BIP$B%"%I%l%9$r(B DNS $B$N%"%I%l%9$H$7$FDs(B
$B<($9$k$H(B Rej $B$rJV$7$F$/$k$h$&$J(B)$B$K$h$C$F5sF0$r@)8f$G$-$k$H$$$&0UL#$+(B
$B$i$b0F30@5$7$$$s$8$c$J$$$+$H$b;W$$$^$9!%(B(man $B$N(B set dns $B$N@bL@$H$OMQ(B
$BK!$,0c$$$^$9$,(B) $B$3$N$"$?$j$I$A$i$NJ}$,M}$K$+$J$$$^$9$+$M$'!%(B

