mirror of
https://git.savannah.nongnu.org/git/lwip.git
synced 2025-08-13 18:04:40 +08:00

pppd: Accept IPCP ConfAck packets containing MS-WINS options Since last week I'm seeing IPCP negotiations going like this (and eventually failing) when connecting to my ISP: Jul 11 20:03:25 * pppd[4833]: sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>] Jul 11 20:03:26 * pppd[4833]: sent [IPCP ConfReq id=0x2 <addr 0.0.0.0> <ms-dns1 0.0.0.0> <ms-dns2 0.0.0.0>] Jul 11 20:03:26 * pppd[4833]: rcvd [IPCP ConfNak id=0x2 <addr 10.167.246.198> <ms-dns1 213.162.69.1> <ms-dns2 213.162.69.169> <ms-wins 124.6.168.55> <ms-wins 17.17.17.17>] Jul 11 20:03:26 * pppd[4833]: sent [IPCP ConfReq id=0x3 <addr 10.167.246.198> <ms-dns1 213.162.69.1> <ms-dns2 213.162.69.169> <ms-wins 124.6.168.55> <ms-wins 17.17.17.17>] Jul 11 20:03:26 * pppd[4833]: rcvd [IPCP ConfAck id=0x3 <addr 10.167.246.198> <ms-dns1 213.162.69.1> <ms-dns2 213.162.69.169> <ms-wins 124.6.168.55> <ms-wins 17.17.17.17>] Jul 11 20:03:27 * pppd[4833]: sent [IPCP ConfReq id=0x3 <addr 10.167.246.198> <ms-dns1 213.162.69.1> <ms-dns2 213.162.69.169> <ms-wins 124.6.168.55> <ms-wins 17.17.17.17>] ... with the last two lines repeating until the IPCP error limit is reached. As you can see, the peer added two extra fields in the ConfNak reply. This is allowed, and indeed the following sent ConfReq packet reflects this. However, when the ConfAck packet is received, pppd discards it as invalid, because of the ms-wins fields. This fixes it.