From owner-freebsd-bugs Sun Jan 21 17:20:20 2001 Delivered-To: freebsd-bugs@hub.freebsd.org Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id ADE3437B404 for ; Sun, 21 Jan 2001 17:20:01 -0800 (PST) Received: (from gnats@localhost) by freefall.freebsd.org (8.11.1/8.11.1) id f0M1K1e35557; Sun, 21 Jan 2001 17:20:01 -0800 (PST) (envelope-from gnats) Received: from freefall.freebsd.org (freefall.FreeBSD.org [216.136.204.21]) by hub.freebsd.org (Postfix) with ESMTP id 6D5DF37B400 for ; 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 X-Send-Pr-Version: www-1.0 Subject: bin/24518: ppp(8) fails to negitiate DNS server in IPCP Sender: owner-freebsd-bugs@FreeBSD.ORG Precedence: bulk X-Loop: FreeBSD.org >Number: 24518 >Category: bin >Synopsis: ppp(8) fails to negitiate DNS server in IPCP >Confidential: no >Severity: non-critical >Priority: low >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Sun Jan 21 17:20:01 PST 2001 >Closed-Date: >Last-Modified: >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: >Unformatted: To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-bugs" in the body of the message