From nobody@FreeBSD.org  Sun Jan 21 17:19:42 2001
Return-Path: <nobody@FreeBSD.org>
Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21])
	by hub.freebsd.org (Postfix) with ESMTP id 6D5DF37B400
	for <freebsd-gnats-submit@FreeBSD.org>; Sun, 21 Jan 2001 17:19:42 -0800 (PST)
Received: (from nobody@localhost)
	by freefall.freebsd.org (8.11.1/8.11.1) id f0M1Jgi35504;
	Sun, 21 Jan 2001 17:19:42 -0800 (PST)
	(envelope-from nobody)
Message-Id: <200101220119.f0M1Jgi35504@freefall.freebsd.org>
Date: Sun, 21 Jan 2001 17:19:42 -0800 (PST)
From: t-ogawa@triaez.kaisei.org
To: freebsd-gnats-submit@FreeBSD.org
Subject: ppp(8) fails to negitiate DNS server in IPCP
X-Send-Pr-Version: www-1.0

>Number:         24518
>Category:       bin
>Synopsis:       ppp(8) fails to negitiate DNS server in IPCP
>Confidential:   no
>Severity:       non-critical
>Priority:       low
>Responsible:    brian
>State:          closed
>Quarter:        
>Keywords:       
>Date-Required:  
>Class:          sw-bug
>Submitter-Id:   current-users
>Arrival-Date:   Sun Jan 21 17:20:01 PST 2001
>Closed-Date:    Sun Jan 21 17:44:43 PST 2001
>Last-Modified:  Sun Jan 21 17:45:20 PST 2001
>Originator:     OGAWA Takaya
>Release:        5.0-CURRENT as of Jan 04 2001
>Organization:
>Environment:
FreeBSD aragorn.t-ogawa.trans-nt.co.jp 5.0-CURRENT FreeBSD 5.0-CURRENT #0: Sun Jan 21 17:01:33 JST 2001     root@aragorn.t-ogawa.trans-nt.co.jp:/usr/src/sys/compile/ARAGORN  i386
>Description:
I use two different ISPs for PPP dialup connections. In either ISP,
ppp fails to negitiate DNS server address with following IPCP log
(date, pid and tun device name trimmed):

IPCP: FSM: Using "deflink" as a transport 
IPCP: deflink: State change Initial --> Closed 
IPCP: deflink: LayerStart. 
IPCP: deflink: SendConfigReq(1) state = Closed 
IPCP:  IPADDR[6]  0.0.0.0 
IPCP:  COMPPROTO[6]  16 VJ slots with slot compression 
IPCP:  PRIDNS[6]  0.0.0.0 
IPCP:  SECDNS[6]  0.0.0.0 
IPCP: deflink: State change Closed --> Req-Sent 
IPCP: deflink: RecvConfigReq(151) state = Req-Sent 
IPCP:  IPADDR[6]  210.158.230.5 
IPCP: deflink: SendConfigAck(151) state = Req-Sent 
IPCP:  IPADDR[6]  210.158.230.5 
IPCP: deflink: State change Req-Sent --> Ack-Sent 
IPCP: deflink: RecvConfigRej(1) state = Ack-Sent 
IPCP:  COMPPROTO[6]  16 VJ slots with slot compression 
IPCP:  SECDNS[6]  0.0.0.0 
IPCP: deflink: SendConfigReq(2) state = Ack-Sent 
IPCP:  IPADDR[6]  0.0.0.0 
IPCP: deflink: RecvConfigNak(2) state = Ack-Sent 
IPCP:  IPADDR[6]  210.158.231.184 
IPCP:  IPADDR[6]  changing address: 0.0.0.0  --> 210.158.231.184 
IPCP: deflink: SendConfigReq(3) state = Ack-Sent 
IPCP:  IPADDR[6]  210.158.231.184 
IPCP: deflink: RecvConfigAck(3) state = Ack-Sent 
IPCP: deflink: State change Ack-Sent --> Opened 
IPCP: deflink: LayerUp. 
IPCP: myaddr 210.158.231.184 hisaddr = 210.158.230.5 

i.e. Though only secondary DNS has been rejected, ppp gives up
negotiating primary DNS too.

>How-To-Repeat:
(described above)
>Fix:
By applying following patch, ppp tries to negotiate primary
DNS server if secondary conf-request rejected, or negotiate
secondary if primary rejected:

--- ipcp.c.orig Mon Jan 22 09:39:45 2001
+++ ipcp.c      Mon Jan 22 09:40:27 2001
@@ -871,10 +871,13 @@
   }
 
   if (IsEnabled(ipcp->cfg.ns.dns_neg) &&
-      !REJECTED(ipcp, TY_PRIMARY_DNS - TY_ADJUST_NS) &&
-      !REJECTED(ipcp, TY_SECONDARY_DNS - TY_ADJUST_NS)) {
+      !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);
   }


>Release-Note:
>Audit-Trail:
State-Changed-From-To: open->closed 
State-Changed-By: brian 
State-Changed-When: Sun Jan 21 17:44:43 PST 2001 
State-Changed-Why:  
Now fixed in -current - thanks. 


Responsible-Changed-From-To: freebsd-bugs->brian 
Responsible-Changed-By: brian 
Responsible-Changed-When: Sun Jan 21 17:44:43 PST 2001 
Responsible-Changed-Why:  
ppp's mine 

http://www.freebsd.org/cgi/query-pr.cgi?pr=24518 
>Unformatted:
