ppp.git
5 years agoUpdate README and patchlevel for 2.4.7 release ppp-2.4.7
Paul Mackerras [Sat, 9 Aug 2014 12:31:39 +0000 (22:31 +1000)]
Update README and patchlevel for 2.4.7 release

Signed-off-by: Paul Mackerras <paulus@samba.org>
5 years agoMerge branch 'master' of git://github.com/cmcqueen/ppp
Paul Mackerras [Fri, 1 Aug 2014 11:41:27 +0000 (21:41 +1000)]
Merge branch 'master' of git://github.com/cmcqueen/ppp

This merges in one commit, which adds the new "stop-bits" option.

Signed-off-by: Paul Mackerras <paulus@samba.org>
5 years agowinbind plugin: Add -DMPPE=1 to eliminate compiler warnings
Paul Mackerras [Fri, 1 Aug 2014 11:40:18 +0000 (21:40 +1000)]
winbind plugin: Add -DMPPE=1 to eliminate compiler warnings

When compiling the winbind plugin, we need an equivalent definition
of the MPPE symbol to that which applied when the main pppd was
compiled.  This adds that to Makefile.linux.

Reported-by: Mike Gilbert <floppym@gentoo.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
5 years agopppd: Fix a stack variable overflow in MSCHAP-v2
John Crispin [Fri, 1 Aug 2014 08:12:36 +0000 (18:12 +1000)]
pppd: Fix a stack variable overflow in MSCHAP-v2

This fixes a bug introduced in 08ef47ca ("pppd: Make MSCHAP-v2 cope
better with packet loss").

Signed-off-by: Paul Mackerras <paulus@samba.org>
5 years agopppd: Eliminate memory leak with multiple instances of a string option
Paul Mackerras [Fri, 1 Aug 2014 07:32:15 +0000 (17:32 +1000)]
pppd: Eliminate memory leak with multiple instances of a string option

This eliminates the memory leak which occurs when a user gives the
same string option multiple times.  Although the leak is trivial under
normal conditions, the fact that it can be triggered by the user
means that it may be of interest to attackers, so let's plug the leak.

This also means that any o_string option without OPT_STATIC set needs
to have opt->addr pointing to a pointer which starts out NULL.  That
is the case for all current uses of o_string.

Signed-off-by: Paul Mackerras <paulus@samba.org>
5 years agopppd: Eliminate potential integer overflow in option parsing
Paul Mackerras [Fri, 1 Aug 2014 06:05:42 +0000 (16:05 +1000)]
pppd: Eliminate potential integer overflow in option parsing

When we are reading in a word from an options file, we maintain a count
of the length we have seen so far in 'len', which is an int.  When len
exceeds MAXWORDLEN - 1 (i.e. 1023) we cease storing characters in the
buffer but we continue to increment len.  Since len is an int, it will
wrap around to -2147483648 after it reaches 2147483647.  At that point
our test of (len < MAXWORDLEN-1) will succeed and we will start writing
characters to memory again.

This may enable an attacker to overwrite the heap and thereby corrupt
security-relevant variables.  For this reason it has been assigned a
CVE identifier, CVE-2014-3158.

This fixes the bug by ceasing to increment len once it reaches MAXWORDLEN.

Reported-by: Lee Campbell <leecam@google.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
5 years agoradius: Fix realms-config-file option
Paul Mackerras [Sat, 12 Jul 2014 00:41:20 +0000 (10:41 +1000)]
radius: Fix realms-config-file option

Since radrealms_config is an array of char not a pointer to char, we
need OPT_STATIC in the configuration option that points to it.

Signed-off-by: Paul Mackerras <paulus@samba.org>
5 years agopppd: Eliminate some unnecessary ifdefs
Paul Mackerras [Sun, 9 Mar 2014 06:48:07 +0000 (17:48 +1100)]
pppd: Eliminate some unnecessary ifdefs

Since we only support Linux and Solaris these days, statements like:

#if defined(SOL2) || defined(__linux__)

are always true and can be removed, along with anything in the #else
branch of such a #if, and anything within a #if with the inverse
condition.  Furthermore, inside a #if !defined(__linux__) we know
that SOL2 must be defined.

This simplifies the code along these lines.

Signed-off-by: Paul Mackerras <paulus@samba.org>
5 years agopppd: Add declarations to eliminate compile warnings
Paul Mackerras [Sun, 9 Mar 2014 06:43:11 +0000 (17:43 +1100)]
pppd: Add declarations to eliminate compile warnings

This adds declarations for sif6up, sif6down and setifstate in order
to eliminate warnings about implicit function declarations.

Signed-off-by: Paul Mackerras <paulus@samba.org>
5 years agopppol2tp: Connect up/down events to notifiers and add IPv6 ones
Benjamin Cama [Wed, 26 Feb 2014 18:13:40 +0000 (19:13 +0100)]
pppol2tp: Connect up/down events to notifiers and add IPv6 ones

Connect ip up/down events instead of using hooks, and add IPv6 up/down
events notifications too, so that we signal IPv6-only sessions
correctly; otherwise, they may get taken down because the L2TP daemon
has not received any notification.

Signed-off-by: Benjamin Cama <benjamin.cama@telecom-bretagne.eu>
Signed-off-by: Paul Mackerras <paulus@samba.org>
5 years agopppd: Separate IPv6 handling for sifup/sifdown
Benjamin Cama [Wed, 26 Feb 2014 18:13:39 +0000 (19:13 +0100)]
pppd: Separate IPv6 handling for sifup/sifdown

The current code is buggy regarding handling of link state when using
both IPCP and IPv6CP: if IPv6CP has been set up and if during IPCP
negociation, ipcp_up() fails, it will incorrectly take the interface
down. The simple solution here is to change the platform code to do the
same as on Solaris: separate IPv6CP up/down state handling with sif6up()
and sif6down(), so that we really know when the interface is allowed to
go down.

Signed-off-by: Benjamin Cama <benjamin.cama@telecom-bretagne.eu>
Signed-off-by: Paul Mackerras <paulus@samba.org>
5 years agopppd: Add option "stop-bits" to set number of serial port stop bits.
Craig McQueen [Mon, 30 Sep 2013 05:01:20 +0000 (15:01 +1000)]
pppd: Add option "stop-bits" to set number of serial port stop bits.

This allows for configuring the serial device for 2 stop bits (default is 1 stop bit).

Signed-off-by: Craig McQueen <craig.mcqueen@beamcommunications.com>
5 years agoUpdate README and patchlevel for 2.4.6 release
Paul Mackerras [Thu, 2 Jan 2014 04:42:08 +0000 (15:42 +1100)]
Update README and patchlevel for 2.4.6 release

Signed-off-by: Paul Mackerras <paulus@samba.org>
5 years agoconfig: Update Solaris compiler options and enable CHAPMS and IPV6
Paul Mackerras [Thu, 2 Jan 2014 04:29:15 +0000 (15:29 +1100)]
config: Update Solaris compiler options and enable CHAPMS and IPV6

As suggested by James Carlson.

Signed-off-by: Paul Mackerras <paulus@samba.org>
5 years agopppd: Accept IPCP ConfAck packets containing MS-WINS options
Bertram Felgenhauer [Thu, 2 Jan 2014 04:20:35 +0000 (15:20 +1100)]
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.

Signed-off-by: Paul Mackerras <paulus@samba.org>
5 years agopppd: Don't crash if NULL pointer passed to vslprintf for %q or %v
Paul Mackerras [Thu, 2 Jan 2014 04:00:12 +0000 (15:00 +1100)]
pppd: Don't crash if NULL pointer passed to vslprintf for %q or %v

This is to avoid crashes like that reported in
https://bugs.launchpad.net/ubuntu/+source/ppp/+bug/1244714

Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agochat, pppd: Use \e instead of \\ in man pages
Paul Mackerras [Mon, 10 Jun 2013 02:59:34 +0000 (12:59 +1000)]
chat, pppd: Use \e instead of \\ in man pages

This avoids the need to double up the backslashes in some places, and
eliminates some errors reported by doclifter.

Reported-by: Eric S. Raymond <esr@thyrsus.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agoradius: Handle additional attributes
Vadim Zotov [Fri, 11 Aug 2006 08:06:24 +0000 (08:06 +0000)]
radius: Handle additional attributes

This allows radius plugin to handle additional radius attributes:

- Filter-ID (sets RADIUS_FILTER_ID env. var.)
- Framed-Route (sets RADIUS_FRAMED_ROUTE env. var.)
- Idle-Timeout
- NAS-IP-Address
- MS-Primary-DNS-Server
- MS-Secondary-DNS-Server
- MS-Primary-NBNS-Server
- MS-Secondary-NBNS-Server

[paulus@samba.org: Fixed formatting and simplified code making
 dns-1 and dns-2 default to each other, similarly wins-1 and wins-2]

Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agoREADME.pppoe: Minor semantic fix
Paul Mackerras [Sun, 9 Jun 2013 12:11:32 +0000 (22:11 +1000)]
README.pppoe: Minor semantic fix

From Debian ppp patch set.

Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agochat: Fix some text that was intended to be literal
Paul Mackerras [Sun, 9 Jun 2013 12:10:47 +0000 (22:10 +1000)]
chat: Fix some text that was intended to be literal

This escapes a \c and adds a .br so that the "$ \c" comes out in the
nroff output, instead of the \c being interpreted as a line continuation.
This seems to be what was intended and makes sense as part of the chat
script fragment.

Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agopppd: Fix segfault in update_db_entry()
Martin.Lottermoser@t-online.de [Sun, 9 Jun 2013 12:04:25 +0000 (22:04 +1000)]
pppd: Fix segfault in update_db_entry()

The function update_db_entry() may only be called if pppdb is not NULL;
unfortunately in one situation it is.  Other calls to update_db_entry()
are protected against this, see, e.g., the end of script_setenv().

This is from the Debian pppd patches, and fixes Debian bug 308136
(SEGV in pppd).

Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agopppoatm: Remove explicit loading of pppoatm kernel module
Paul Mackerras [Sun, 9 Jun 2013 02:20:34 +0000 (12:20 +1000)]
pppoatm: Remove explicit loading of pppoatm kernel module

The kernel does this automatically itself.  Patch from debian package.

Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agoplugins/radius: Handle bindaddr keyword in radiusclient.conf
Adrian Ban [Wed, 3 Apr 2013 20:19:52 +0000 (23:19 +0300)]
plugins/radius: Handle bindaddr keyword in radiusclient.conf

This adds code to the radius plugin to handle the bindaddr keyword in
/etc/radiusclient/radiusclient.conf, thus allowing the administrator
to specify which local IP address to use when sending packets to the
radius server.

This is very common for setups where the router has multiple
interfaces for upstream and you don't know which connection is active.
In this case sometimes the packet uses the IP of interface 1 and
sometimes uses the IP of interface 2.  With this patch (adapted from
radiusclient-ng) you can specify the IP of the loopback address, and
the plugin will bind to that IP and send the packet with a fixed IP
every time.

Slimmed a little bit at James Carlson's suggestion.

Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agopppstats: Fix undefined macro in man page
Paul Mackerras [Mon, 11 Mar 2013 08:40:59 +0000 (19:40 +1100)]
pppstats: Fix undefined macro in man page

This resulted in the word "pppstats" missing at one point.  Fix from
Debian package.

Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agopppd: Default exit status to EXIT_CONNECT_FAILED during connection phase
Paul Mackerras [Mon, 11 Mar 2013 08:30:21 +0000 (19:30 +1100)]
pppd: Default exit status to EXIT_CONNECT_FAILED during connection phase

The rp-pppoe plugin doesn't set the exit status in its connect
function, resulting in pppd exiting with a status of EXIT_OK (0)
if rp-pppoe fails to connect.  This fixes the problem for rp-pppoe
and any other plugins that don't set the exit status explicitly
by making the status default to EXIT_CONNECT_FAILED if the channel's
connect function fails.

Reported-by: Peter Warasin <peter@endian.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agopppd: Add master_detach option
Paul Mackerras [Sat, 2 Mar 2013 09:25:28 +0000 (20:25 +1100)]
pppd: Add master_detach option

This adds a new option, master_detach, to allow pppd to detach from
the controlling terminal when it is the multilink bundle master but
its own link has terminated, even if the nodetach option has been
given.

Requested-by: Stephen Marron <sfm@boxfusion.net>
Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agopppd: Fix man page description of case when remote IP address isn't known
Paul Mackerras [Sat, 2 Mar 2013 06:30:25 +0000 (17:30 +1100)]
pppd: Fix man page description of case when remote IP address isn't known

We use a made-up address in the 10.x.x.x range, rather than refusing
to bring up the link.

Reported-by: Matthijs Kooijman
Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agochat: Fix *roff errors in the man page
Paul Mackerras [Sun, 3 Feb 2013 10:53:28 +0000 (21:53 +1100)]
chat: Fix *roff errors in the man page

Fixes these errors:

$ nroff -man -ww chat/chat.8
chat/chat.8:227: warning: number register `"' not defined
chat/chat.8:291: warning: macro `'' not defined
chat/chat.8:368: warning: macro `PR' not defined

Patch partly from Debian BTS by Bjarni Ingi Gislason.

Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agoplugins/passprompt: Fix potential out-of-bounds array reference
Paul Mackerras [Sun, 3 Feb 2013 10:44:11 +0000 (21:44 +1100)]
plugins/passprompt: Fix potential out-of-bounds array reference

From Debian BTS, fix suggested by Timo Weingärtner.

Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agopppd: Fix spelling errors in man page
Paul Mackerras [Sun, 3 Feb 2013 10:37:50 +0000 (21:37 +1100)]
pppd: Fix spelling errors in man page

From Fedora patch.

Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agochat: Correct spelling errors in the man page
Paul Mackerras [Sun, 3 Feb 2013 10:35:00 +0000 (21:35 +1100)]
chat: Correct spelling errors in the man page

From Fedora patch.

Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agopppdump: Eliminate some compiler warnings
Paul Mackerras [Sun, 3 Feb 2013 06:51:12 +0000 (17:51 +1100)]
pppdump: Eliminate some compiler warnings

gcc lacks the -fyes-actually-I-do-know-the-C-operator-precedence-rules
option, so add some parentheses to shut it up.  Also remove some unused
variables.

Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agopppd: Arrange to use logwtmp from libutil on Linux
Paul Mackerras [Sun, 3 Feb 2013 06:35:43 +0000 (17:35 +1100)]
pppd: Arrange to use logwtmp from libutil on Linux

Idea stolen from Fedora ppp patches.

Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agopppd: Take out unused %r conversion completely
Paul Mackerras [Sun, 3 Feb 2013 03:56:18 +0000 (14:56 +1100)]
pppd: Take out unused %r conversion completely

This just removes some code surrounded by #if 0/#endif, which Fedora
apparently feels the need to patch...

Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agoppp: ignore unrecognised radiusclient configuration directives
Charlie Brady [Thu, 30 Aug 2012 23:24:00 +0000 (19:24 -0400)]
ppp: ignore unrecognised radiusclient configuration directives

New versions of freeradius occasionally add configuration keywords.
There's no reason that the pppd plugin should fail when that occurs.

Signed-off-by: Charlie Brady <charlieb@budge.apana.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
6 years agopppd: Clarify circumstances where DNS1/DNS2 environment variables are set
Paul Mackerras [Wed, 23 Jan 2013 11:59:45 +0000 (22:59 +1100)]
pppd: Clarify circumstances where DNS1/DNS2 environment variables are set

Make it clear that the DNS1 and DNS2 environment variables being set
for scripts doesn't depend on whether the usepeerdns option was given,
only on whether the peer provided DNS server addresses.

Reported-by: William McCall
Signed-off-by: Paul Mackerras <paulus@samba.org>
7 years agorp-pppoe plugin: Import some fixes from rp-pppoe-3.10
Paul Mackerras [Sun, 20 May 2012 09:36:23 +0000 (19:36 +1000)]
rp-pppoe plugin: Import some fixes from rp-pppoe-3.10

* Make timeout for PADO/PADS be the total time we wait for, not the
  time that each individual select call waits for.

* Open the discovery socket in PPPOEConnectDevice() rather than
  discovery().

* Open the session socket earlier in PPPOEConnectDevice() to avoid
  missing session packets sent by the server just after the PADS
  packet.

Signed-off-by: Paul Mackerras <paulus@samba.org>
7 years agopppd: Eliminate some warnings
Paul Mackerras [Sun, 20 May 2012 07:09:16 +0000 (17:09 +1000)]
pppd: Eliminate some warnings

auth.c: In function ‘start_link’:
auth.c:556:11: warning: variable ‘msg’ set but not used [-Wunused-but-set-variable]
utils.c: In function ‘logit’:
utils.c:655:9: warning: variable ‘n’ set but not used [-Wunused-but-set-variable]
sys-linux.c: In function ‘ether_to_eui64’:
sys-linux.c:2881:9: warning: pointer targets in assignment differ in signedness [-Wpointer-sign]

Signed-off-by: Paul Mackerras <paulus@samba.org>
7 years agopppd: Don't crash if crypt() returns NULL
Paul Mackerras [Sun, 20 May 2012 04:14:55 +0000 (14:14 +1000)]
pppd: Don't crash if crypt() returns NULL

It is possible for crypt() to return NULL under some circumstances,
so we need to check the return value before passing it to strcmp().
If we do get NULL from crypt(), treat it as an authentication failure.

Reported-by: Paul Wouters <pwouters@redhat.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
7 years agocontrib: Fix pppgetpass.gtk compilation
Peter Meiser [Tue, 24 Apr 2012 09:27:33 +0000 (03:27 -0600)]
contrib: Fix pppgetpass.gtk compilation

We need to use pkg-config not gtk-config these days.

Signed-off-by: Paul Mackerras <paulus@samba.org>
7 years agopppd: Enable IPV6 by default and fix some warnings
Paul Mackerras [Sun, 20 May 2012 02:01:48 +0000 (12:01 +1000)]
pppd: Enable IPV6 by default and fix some warnings

Fixes these warnings:

ipv6cp.c: In function ‘ipv6_check_options’:
ipv6cp.c:1106:2: warning: implicit declaration of function ‘ether_to_eui64’ [-Wimplicit-function-declaration]
ipv6cp.c:1133:2: warning: implicit declaration of function ‘exit’ [-Wimplicit-function-declaration]
ipv6cp.c:1133:2: warning: incompatible implicit declaration of built-in function ‘exit’ [enabled by default]

Signed-off-by: Paul Mackerras <paulus@samba.org>
7 years agopppd: Notify IPv6 up/down as we do for IPv4
Markus Becker [Wed, 14 Mar 2012 15:48:44 +0000 (16:48 +0100)]
pppd: Notify IPv6 up/down as we do for IPv4

This adds support for notification of IPv6 up/down, mainly for the sake of
NetworkManager.

Signed-off-by: Paul Mackerras <paulus@samba.org>
7 years agorp-pppoe plugin: Print leading zeros in MAC address
Benjamin LaHaise [Wed, 7 Dec 2011 19:44:21 +0000 (14:44 -0500)]
rp-pppoe plugin: Print leading zeros in MAC address

The rp-pppoe pppd plugin prints MAC addresses without the leading 0.
That looks odd, so this adds the leading 0.

Signed-off-by: Benjamin LaHaise <bcrl@kvack.org>
Signed-off-by: Paul Mackerras <paulus@samba.org>
7 years agoscripts: Make poff ignore extra arguments to pppd
Jason St. John [Fri, 14 Oct 2011 04:08:14 +0000 (00:08 -0400)]
scripts: Make poff ignore extra arguments to pppd

This allows /usr/bin/poff to properly end a /usr/sbin/pppd process
that was started with additional arguments.

The problem with the current poff script is on line 93 where the
output of `ps axw` is piped into grep. The current regular expression
that grep searches for prevents the PID of the specified pppd process
from being found, which results in the script failing to terminate the
pppd process. The output of poff in that case would be the following:

/usr/bin/poff: I could not find a pppd process for provider 'cit-vpn'.
None stopped.

The reason for this is that the " *\$" at the end of the regular
expression does not match the output of the following example from `ps
axw`:

11846 ?        Ss     0:00 /usr/sbin/pppd call cit-vpn updetach persist

To resolve this issue, I removed the troublesome part of the regular
expression (" *\$") and now grep can properly match the example output
provided above.

I have tested this using ppp 2.4.5-2 in conjunction with
pptpclient-1.7.2-3 on Arch Linux x86_64.

Signed-off-by: Paul Mackerras <paulus@samba.org>
7 years agopppd: Make MSCHAP-v2 cope better with packet loss
Deomid Ryabkov [Sat, 31 Mar 2012 04:14:23 +0000 (05:14 +0100)]
pppd: Make MSCHAP-v2 cope better with packet loss

This implements response caching for MSCHAP-v2.  It caches our
responses and the responses we expect from the peer.  MSCHAP-v2 is
unusual in that the authenticatee's CHAP-Response contains what is
effectively a challenge to the authenticator, and the authenticator's
CHAP-Success packet contains a response to that challenge.  Having
the response cache lets us (a) answer challenges consistently and
(b) cope with a CHAP-Success packet that corresponds to one of our
CHAP-Responses that wasn't the last one we sent.

This solves a problem where MSCHAP-v2 does not handle replay/retry
properly.  Here's what a typical normal session looks like:

Mar 31 02:47:40 nbm pppd[12895]: rcvd [CHAP Challenge id=0x37 <7ac9de47e66fc440e4b142e28c1a2064>, name = "jeeves"]
Mar 31 02:47:40 nbm pppd[12895]: sent [CHAP Response id=0x37 <12986c68266e0d60e7e0de9c8326073200000000000000005da37272ed71b6743f65bc00f7ae2ca148db9210627b646500>, name = "murka"]
Mar 31 02:47:40 nbm pppd[12895]: rcvd [CHAP Success id=0x37 "S=ED8FB5829C8049C331AAE0C570F63F8B558DEA2C M=Access granted"]
Mar 31 02:47:40 nbm pppd[12895]: CHAP authentication succeeded

however, this breaks down if, for whatever reason - packet loss,
reordering or whatnot - server sends a second challenge that arrives
before the response - it changes client's expectation and the
authentication fails.  Here's how it looks in the logs:

Mar 31 02:47:47 nbm pppd[13014]: rcvd [CHAP Challenge id=0x8a <5070251e94455e2155d2cf4d698d23c9>, name = "jeeves"]
Mar 31 02:47:47 nbm pppd[13014]: sent [CHAP Response id=0x8a <14d788f835add58b60d2aff362c183160000000000000000d780f3849076e9e013272f67bcb8c8cfa0e9b51c0fe3ee2100>, name = "murka"]
Mar 31 02:47:48 nbm pppd[13014]: rcvd [CHAP Challenge id=0x8a <5070251e94455e2155d2cf4d698d23c9>, name = "jeeves"]
Mar 31 02:47:48 nbm pppd[13014]: sent [CHAP Response id=0x8a <df950da43b90e235048810469d3283dd0000000000000000ace042b145f5eb9f118349b5672d4829eb5038192050a90b00>, name = "murka"]
Mar 31 02:47:48 nbm pppd[13014]: rcvd [CHAP Success id=0x8a "S=ABAEA4DF5601FADF25F8729455D39BF6D971D501 M=Access granted"]
Mar 31 02:47:48 nbm pppd[13014]: MS-CHAPv2 mutual authentication failed.

Signed-off-by: Paul Mackerras <paulus@samba.org>
7 years agoRemove old version of Linux if_pppol2tp.h
Paul Mackerras [Sun, 20 May 2012 06:48:17 +0000 (16:48 +1000)]
Remove old version of Linux if_pppol2tp.h

This has been in the Linux kernel source now for long enough that we
can rely on getting a usable version from /usr/include on all
distributions that we care about.  The version we have here had started
to lag behind what is in the Linux kernel, causing compilation errors
due to struct pppol2tpv3_addr being undefined.  Removing our local
version means we will use what is in /usr/include instead.

Signed-off-by: Paul Mackerras <paulus@samba.org>
7 years agopppd: Don't unconditionally disable VJ compression under Linux
Paul Mackerras [Sun, 6 May 2012 07:32:26 +0000 (17:32 +1000)]
pppd: Don't unconditionally disable VJ compression under Linux

We were always clearing vjcomp if it was set, so VJ header compression
was never getting enabled.  This adds a pair of braces so it only gets
disabled if there was an error.

Reported by Stanislav Litvinenko.

Signed-off-by: Paul Mackerras <paulus@samba.org>
8 years agopppdump: Fix printfs with insufficient arguments
Paul Mackerras [Sat, 5 Mar 2011 04:10:57 +0000 (15:10 +1100)]
pppdump: Fix printfs with insufficient arguments

Reported-by: Dan Wallis <mrdanwallis@gmail.com>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agochat: Allow TIMEOUT value to come from environment variable
Ashok Rao [Sat, 11 Sep 2010 12:14:48 +0000 (22:14 +1000)]
chat: Allow TIMEOUT value to come from environment variable

This allows the TIMEOUT value to be obtained from the environment
using the $ENVVAR syntax.

Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agorp-pppoe: allow MTU to be increased up to 1500
Simon Arlott [Tue, 4 May 2010 19:06:06 +0000 (20:06 +0100)]
rp-pppoe: allow MTU to be increased up to 1500

The ethernet data limit on rp-pppoe has been increased to 1508 to
allow an MTU of 1500 to be used. To prevent problems the interface
MTU is checked and used to lower the configured MTU/MRU.

If MIN(MTU/MRU) is > 1492, PPP-Max-Payload is added to PADI and
PADR. If PPP-Max-Payload is received in PADO or PADS, it will be
used to lower the configured MTU/MRU as required.

The MTU/MRU settings are stored and reloaded whenever a connection
is made, to allow for the peer or interface MTU/MRU to increase if
used with persist option.

Conforming to RFC4638, if no PPP-Max-Payload is received, the
negotiated MRU will be limited to 1492.

9 years agoFix quote handling in configuration files to be more like shell quoting.
James Carlson [Mon, 23 Aug 2010 14:03:07 +0000 (10:03 -0400)]
Fix quote handling in configuration files to be more like shell quoting.

The specific case that confused a user was:
ROUTES="216.220.192.0/20 10.0.100.0/24"
which was interpreted as two separate words, merely because the first quote
mark was in the middle of a word.

9 years agoNit: use _exit when exec fails and restrict values to 0-255 per POSIX.
James Carlson [Mon, 23 Aug 2010 14:01:48 +0000 (10:01 -0400)]
Nit: use _exit when exec fails and restrict values to 0-255 per POSIX.

9 years agoAdd set and reset options to control environment variables for scripts.
James Carlson [Mon, 23 Aug 2010 13:59:56 +0000 (09:59 -0400)]
Add set and reset options to control environment variables for scripts.

9 years agorp_pppoe: Copy acName and pppd_pppoe_service after option parsing
Paul Mackerras [Sun, 7 Mar 2010 05:54:00 +0000 (16:54 +1100)]
rp_pppoe: Copy acName and pppd_pppoe_service after option parsing

At present, the access concentrator name (acName) and service name
(pppd_pppoe_service) are set by option parsing, but are used at the
point of PPPOEInitDevice(), which gets called when the ethernet
device name is seen.  So if the rp_pppoe_service or rp_pppoe_ac
options appear after the device name, they are ignored.

This fixes it by using acName and pppd_pppoe_service in
PPPOEConnectDevice, which gets called after all options have been
parsed.

Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agopppd: Terminate correctly if lcp_lowerup delayed calling fsm_lowerup
Paul Mackerras [Sun, 7 Mar 2010 04:21:38 +0000 (15:21 +1100)]
pppd: Terminate correctly if lcp_lowerup delayed calling fsm_lowerup

Cameron Hutchison noticed that if pppd gets asked to terminate the
link in the period between when lcp_lowerup() is called and when
fsm_lowerup() is called from lcp_delayed_up() (i.e. when listen_time
is non-zero), pppd never exits.

The reason is that lcp_close() doesn't handle the delayed-up case
properly.  Since the FSM is still in STOPPED state, we don't call
lcp_finished() and therefore never exit the main event loop.

This fixes it by handling the delayed-up case in lcp_close() as if
we had done the lowerup but the OPT_SILENT bit was set.  We use the
silent case because we don't want to actually send a configure-request
at this point.

Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agoInstall pppol2tp plugins with sane permissions
Ludwig Nussel [Tue, 9 Feb 2010 16:32:16 +0000 (17:32 +0100)]
Install pppol2tp plugins with sane permissions

Signed-off-by: Ludwig Nussel <ludwig.nussel@suse.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agoDocument +ipv6 and ipv6cp-accept-local
Ludwig Nussel [Tue, 9 Feb 2010 16:32:15 +0000 (17:32 +0100)]
Document +ipv6 and ipv6cp-accept-local

Signed-off-by: Ludwig Nussel <ludwig.nussel@suse.de>
Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agoUpdate README and patchlevel date for 2.4.5 release
Paul Mackerras [Mon, 16 Nov 2009 22:26:07 +0000 (09:26 +1100)]
Update README and patchlevel date for 2.4.5 release

Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agoSpecify the device name on the default route deletion
Paul Mackerras [Sun, 15 Nov 2009 06:08:20 +0000 (17:08 +1100)]
Specify the device name on the default route deletion

Some users have reported that pppd will delete a default route
through another device, for example if they bring up a ppp connection
with default route, then bring up an ethernet interface and set a
default route through that, then take down the ppp connection.

This fixes it, for Linux at least, by specifying the device name on
the default route deletion ioctl, which means that the kernel will
only delete default routes through that device.

Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agoIncrease default IPCP Conf-Nak limit
Paul Mackerras [Fri, 23 Oct 2009 01:17:11 +0000 (12:17 +1100)]
Increase default IPCP Conf-Nak limit

Some 3G modems use IPCP Conf-Naks with the same values as we requested
as a way to delay the negotiation until they have contacted a server
over their radio network.  This increases the default value for the
ipcp-max-failure option from 5 to 100 so that we don't give up too
easily when this is happening.

Signed-off-by: Paul Mackerras <paulus@samba.org>
9 years agoAccept ms-wins settings provided by server
Marcus Better [Wed, 21 Oct 2009 01:52:59 +0000 (12:52 +1100)]
Accept ms-wins settings provided by server

The PPP servers of some UMTS/HSPA modems, including the Huawei E220
and E620, will send WINS server settings and insist that the client
accepts these. If the client does not do so, the modem will sometimes
provide bogus DNS server addresses like 10.11.12.13 and 10.11.12.14.

If we receive ms-wins settings from the server, save and include them
in our ConfReqs.

See also discussions at

  http://thread.gmane.org/gmane.linux.ppp/2721
  http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=445711

[paulus@samba.org: In fact what seems to happen is that the modem naks
IPCP conf-reqs with bogus values until it manages to communicate on the
network.  It's not clear that asking for the ms-wins stuff is essential
but it seems that sometimes it helps.]

Signed-off-by: Marcus Better <marcus@better.se>
Signed-off-by: Paul Mackerras <paulus@samba.org>
10 years agoFix spelling of "Protocol"
Simon Arlott [Wed, 26 Aug 2009 11:59:28 +0000 (21:59 +1000)]
Fix spelling of "Protocol"

Signed-off-by: Paul Mackerras <paulus@samba.org>
10 years agoFix authentication on second time around with multilink and persist
Paul Mackerras [Wed, 26 Nov 2008 10:02:29 +0000 (21:02 +1100)]
Fix authentication on second time around with multilink and persist

Frédéric Brière reported that when using multilink and persist, pppd
would fail to authenticate itself on the second and subsequent times
of bringing up a bundle.  The reason was that the doing_multilink and
multilink_master flags never got reset when the first bundle was
destroyed.  This adds lines to mp_bundle_terminated to do that.

Signed-off-by: Paul Mackerras <paulus@samba.org>
10 years agoFix compilation of pppd/session.c
Damjan Georgievski [Mon, 10 Nov 2008 13:28:03 +0000 (14:28 +0100)]
Fix compilation of pppd/session.c

This fixes a typo that causes a compile error.
The makefiles use HAS_SHADOW and not USE_SHADOW.

Signed-off-by: Paul Mackerras <paulus@samba.org>
11 years agoFix build when libc doesn't have shadow password support
Maxime Bizon [Thu, 9 Oct 2008 01:33:36 +0000 (03:33 +0200)]
Fix build when libc doesn't have shadow password support

Building ppp using uclibc, which doesn't have shadow password support,
gets this error:

session.c:76:20: error: shadow.h: No such file or directory

This fixes it.

Signed-off-by: Paul Mackerras <paulus@samba.org>
11 years agoUpdate for 2.4.5 release
Paul Mackerras [Sat, 6 Sep 2008 09:52:33 +0000 (19:52 +1000)]
Update for 2.4.5 release

Signed-off-by: Paul Mackerras <paulus@samba.org>
11 years agoUpdate ppp_available and the no_ppp_msg message
Paul Mackerras [Sat, 6 Sep 2008 08:51:08 +0000 (18:51 +1000)]
Update ppp_available and the no_ppp_msg message

These days almost all Linux systems are going to be using the "new"
driver, i.e. the one that's been in the kernel since before 2.4.0.
This updates the message we print if the kernel doesn't seem to
support ppp to be more appropriate for the new driver.

Signed-off-by: Paul Mackerras <paulus@samba.org>
11 years agoEnable printing of MS-CHAP and MS-CHAPv2 auth options always
Paul Mackerras [Sat, 6 Sep 2008 08:48:54 +0000 (18:48 +1000)]
Enable printing of MS-CHAP and MS-CHAPv2 auth options always

There's no need to have lcp_printpkt be ignorant of the MS-CHAP and
MS-CHAPV2 options.  Even if pppd doesn't support those protocols,
it's still useful if lcp_printpkt can tell us that the peer is
asking for them.  And it's one less ifdef this way.

Signed-off-by: Paul Mackerras <paulus@samba.org>
11 years agoUpdate READMEs etc. for the forthcoming ppp-2.4.5 release
Paul Mackerras [Sat, 6 Sep 2008 08:42:27 +0000 (18:42 +1000)]
Update READMEs etc. for the forthcoming ppp-2.4.5 release

Signed-off-by: Paul Mackerras <paulus@samba.org>
11 years agoRemove old Linux kernel MPPE stuff
Paul Mackerras [Sat, 30 Aug 2008 00:06:50 +0000 (10:06 +1000)]
Remove old Linux kernel MPPE stuff

This is all upstream in Linus' kernel tree now, so there's no longer
any need to have it here.

Signed-off-by: Paul Mackerras <paulus@samba.org>
11 years agoFix the argument type in call to MD5_Update properly
Paul Mackerras [Sun, 24 Aug 2008 07:12:02 +0000 (17:12 +1000)]
Fix the argument type in call to MD5_Update properly

The secret needs to be cast to u_char * not char *.  Oops.

Signed-off-by: Paul Mackerras <paulus@samba.org>
11 years agoSquish a few more char vs unsigned char warnings
Paul Mackerras [Tue, 19 Aug 2008 23:26:24 +0000 (09:26 +1000)]
Squish a few more char vs unsigned char warnings

These arose when I made the MD5 functions have proper prototypes.

Signed-off-by: Paul Mackerras <paulus@samba.org>
11 years agoRemove various warnings, fix pppol2tp install
Paul Mackerras [Tue, 19 Aug 2008 11:25:58 +0000 (21:25 +1000)]
Remove various warnings, fix pppol2tp install

This fixes a collection of minor things that were resulting in
harmless warnings (accidental trigraphs, missing prototypes,
signed/unsigned char being used interchangeably) and corrects
an error in the pppol2tp makefile, which meant that it wasn't
installing anything.

Signed-off-by: Paul Mackerras <paulus@samba.org>
11 years agoFix build error in the rp-pppoe plugin
Paul Mackerras [Mon, 18 Aug 2008 12:30:27 +0000 (22:30 +1000)]
Fix build error in the rp-pppoe plugin

We have the wrong -I path so we weren't getting the if_ppp.h from
include/linux.

Signed-off-by: Paul Mackerras <paulus@samba.org>
11 years agoRemove more stuff that we don't need to distribute
Paul Mackerras [Mon, 18 Aug 2008 12:21:18 +0000 (22:21 +1000)]
Remove more stuff that we don't need to distribute

This removes some files from include/linux that any halfway-modern
distro will have under /usr/include, and removes the stuff from the
linux/ directory that we haven't included in the tarballs for ages.
This also moves some MPPE macros from include/{linux,net}/ppp-comp.h
to a new pppd/mppe.h.

Signed-off-by: Paul Mackerras <paulus@samba.org>
11 years agoRemove files that don't go into releases
Paul Mackerras [Sun, 27 Jul 2008 12:23:45 +0000 (22:23 +1000)]
Remove files that don't go into releases

This mainly removes files specific to platforms that we no longer support,
and removes a few other outdated files.

Signed-off-by: Paul Mackerras <paulus@samba.org>
11 years agoGet the repository a bit closer to what will be released
Paul Mackerras [Sun, 27 Jul 2008 07:28:29 +0000 (17:28 +1000)]
Get the repository a bit closer to what will be released

* Remove .cvsignore files and create .gitignore files where needed
* Add files that were in the last release but not in CVS

Signed-off-by: Paul Mackerras <paulus@samba.org>
11 years agoClear hungup in start_link() instead of connect_tty()
Paul Mackerras [Tue, 1 Jul 2008 12:27:56 +0000 (12:27 +0000)]
Clear hungup in start_link() instead of connect_tty()

Since hungup gets set in get_input(), which is generic, but only
cleared in connect_tty(), which is specific to the tty channel type,
other channel types were showing various problems on the second and
subsequent connections when the persist option was used.  This fixes
it by clearing hungup in start_link() rather than connect_tty().

11 years agoFix behaviour of maxoctets option when limit >= 2G
Paul Mackerras [Wed, 25 Jun 2008 10:30:36 +0000 (10:30 +0000)]
Fix behaviour of maxoctets option when limit >= 2G

Patch from Serhij Stasyuk with a minor modification by me.

11 years agoRemove send/recv_config_pppoa
Paul Mackerras [Mon, 23 Jun 2008 12:27:39 +0000 (12:27 +0000)]
Remove send/recv_config_pppoa

Plugins have no business to be setting the ppp interface mtu.
The send/recv_config functions are only meant to set the channel
mtu/mru, not the ppp interface mtu/mru.

11 years agoMake the pppoatm plugin's Makefile honour INSTROOT
Paul Mackerras [Mon, 23 Jun 2008 11:53:00 +0000 (11:53 +0000)]
Make the pppoatm plugin's Makefile honour INSTROOT

11 years agoOnly kill the whole process group if we have detached
Paul Mackerras [Mon, 23 Jun 2008 11:47:18 +0000 (11:47 +0000)]
Only kill the whole process group if we have detached

Previously we always sent a signal to the whole of our current process
group when we got a signal such as SIGINT or SIGTERM.  That's OK if
we have detached, because then we have our own process group, but not
if we haven't, because there might be other processes in our process
group that we don't know about.  In the latter case we now just send
the signal individually to the child processes that we have forked off
to run things like the connect script, charshunt or pty command.

11 years agoFlush the tty when welcomer or connector fails
Paul Mackerras [Mon, 23 Jun 2008 11:44:06 +0000 (11:44 +0000)]
Flush the tty when welcomer or connector fails

This avoids having the tcsetsf and the close of the tty device block
for long periods waiting for output to drain, as can happen if for
instance the serial port is in CRTSCTS mode and CTS is negated.

11 years agoRemoving hard-coded CC = gcc in a few Makefiles.
Paul Mackerras [Sun, 15 Jun 2008 11:04:14 +0000 (11:04 +0000)]
Removing hard-coded CC = gcc in a few Makefiles.

11 years agoAdd include/linux/if_pppol2tp.h, missed in a previous commit
Paul Mackerras [Sun, 15 Jun 2008 07:26:56 +0000 (07:26 +0000)]
Add include/linux/if_pppol2tp.h, missed in a previous commit

11 years agoAdd openl2tp plugin.
Paul Mackerras [Sun, 15 Jun 2008 07:26:19 +0000 (07:26 +0000)]
Add openl2tp plugin.

Patch from James Chapman.

This patch adds a plugin that lets OpenL2TP receive events from
pppd. It requires the pppol2tp plugin. Events are passed using a Unix
socket.

Signed-off-by: James Chapman <jchapman@katalix.com>
11 years agoAdd L2TP support.
Paul Mackerras [Sun, 15 Jun 2008 07:08:49 +0000 (07:08 +0000)]
Add L2TP support.

Patch from James Chapman.

This patch adds support for L2TP. It allows pppd to interface with the
pppol2tp driver in the Linux kernel. All data packets are handled by
the Linux kernel in order that the datapath be as efficient as
possible, while a userspace daemon implements the L2TP control
protocol, handling tunnel/session setup and teardown. The
implementation uses the PPPoX infrastructure; the architecture is
similar to PPPoE/PPPoATM in that a userspace daemon spawns a pppd
process per PPP session and uses a protocol-specific plugin to connect
pppd with the kernel.

The pppol2tp Linux kernel driver was integrated in the Linux kernel
from 2.6.23. For earlier kernels, an out of tree driver is available
from the pppol2tp-kmod package on the OpenL2TP project site at
http://sourceforge.net/projects/openl2tp.

Signed-off-by: James Chapman <jchapman@katalix.com>
11 years agoAdd the declaration of multilink_join_hook, missed in a previous commit.
Paul Mackerras [Sun, 15 Jun 2008 07:03:05 +0000 (07:03 +0000)]
Add the declaration of multilink_join_hook, missed in a previous commit.

11 years agoAdd a description of multilink_join_hook.
Paul Mackerras [Sun, 15 Jun 2008 07:02:18 +0000 (07:02 +0000)]
Add a description of multilink_join_hook.

11 years agoAdd multilink_join_hook, called when a links joins the bundle.
Paul Mackerras [Sun, 15 Jun 2008 06:56:12 +0000 (06:56 +0000)]
Add multilink_join_hook, called when a links joins the bundle.

Patch from James Chapman.

11 years agoMake pppd use blank username/password when explicitly specified
Paul Mackerras [Sun, 15 Jun 2008 06:53:06 +0000 (06:53 +0000)]
Make pppd use blank username/password when explicitly specified

Patch from Jon Dubovsky.

Previously pppd would use its default strategies for working out a
username and password/secret to use if the user gave the empty string
to the user and/or password options.  Now we set a flag when an
explicit username is given, and don't do the default username
calculation if the flag is set.  Similarly for the password.

11 years agoAdd pppoe-mac option to rp-pppoe plugin
Paul Mackerras [Sun, 15 Jun 2008 04:35:50 +0000 (04:35 +0000)]
Add pppoe-mac option to rp-pppoe plugin

This allows the user to specify the MAC address of the pppoe
server that s/he wishes to use.  With this option, pppd will
ignore PADO packets from any other MAC address.

11 years agoUpdates and fixes for the rp-pppoe plugin
Paul Mackerras [Mon, 9 Jun 2008 08:34:23 +0000 (08:34 +0000)]
Updates and fixes for the rp-pppoe plugin

1) Imported the good bits from the rp-pppoe-3.8 release.  This plugin
   was previously based on the 3.3 release.
2) Split apart the plugin from the pppoe-discovery program so that the
   plugin could use pppd functions such as error() rather than things
   like fprintf() and syslog().
3) Removed the stuff relating to DLPI and BPF, which isn't used on
   Linux; this plugin only works on Linux, and Solaris uses something
   quite different.
4) Added a PPPoE packet printer.
5) Removed several unused functions.
6) Instead of using bitfields for the 4-bit version and type fields
   in PPPoE packet headers, use a single 8-bit field and define macros
   to get the version and type fields out.  This eliminates any
   dependency on how the compiler lays out bitfields.
7) Sundry cleanups, such as removing unnecessary casts.
8) Last but by no means least, removed calls to exit() and die() so
   that the plugin doesn't exit, but returns an error where appropriate,
   so that the main pppd code can make the decisions about whether to
   exit or not.  (The plugin still exits if the specified interface is
   not a suitable sort of interface.)

11 years agoRewrite some code to avoid a type-punned pointer warning.
Paul Mackerras [Tue, 3 Jun 2008 12:07:13 +0000 (12:07 +0000)]
Rewrite some code to avoid a type-punned pointer warning.

11 years agoMinor tweaks to utils.c
Paul Mackerras [Tue, 3 Jun 2008 12:06:37 +0000 (12:06 +0000)]
Minor tweaks to utils.c

Add a const qualifier to the prefix arg for init_pr_log, and
use OUTCHAR in a couple of places in vslprintf instead of
explicitly putting things in the buffer.

11 years agoFix bug causing duplicate radius interim accounting messages (PR #1661)
Paul Mackerras [Mon, 26 May 2008 09:18:08 +0000 (09:18 +0000)]
Fix bug causing duplicate radius interim accounting messages (PR #1661)

This fixes a bug where we didn't cancel a timeout in the radius code
when the link goes down, leaving us with duplicate timeouts if it
comes back up again.  Bug report and patch from Richard Kojedzinszky.

11 years agoFix bug 1732 - using un-acked DNS settings
Paul Mackerras [Mon, 26 May 2008 08:33:22 +0000 (08:33 +0000)]
Fix bug 1732 - using un-acked DNS settings

This fixes a bug where we could end up using DNS settings that
were requested but nacked or rejected.  The problem was that ipcp_up
was only looking at go->dnsaddr, not at go->req_dns{1,2}.

11 years agoDescribe the noremoteip option.
Paul Mackerras [Wed, 26 Mar 2008 12:09:40 +0000 (12:09 +0000)]
Describe the noremoteip option.

11 years agoAllow operation without an IP address for the peer
Paul Mackerras [Wed, 26 Mar 2008 11:34:23 +0000 (11:34 +0000)]
Allow operation without an IP address for the peer

Under Linux, a point-to-point interface can operate without having
a destination IP address assigned to it, because routes can be
directed to the device rather than to a gateway IP address.  Some
peers expect us to operate in this manner and refuse to give us
an IP address for them, so this adds a new `noremoteip' option that
tells pppd not to ask for the peer's IP address if the peer doesn't
supply it.  There is also a `nosendip' option which tells pppd not
to supply its IP address -- mostly intended for testing.

Solaris requires a destination IP address, so the noremoteip option
is not included on Solaris.

11 years agoSome MS-DNS changes: if the peer sends a conf-nak prompting us
Paul Mackerras [Wed, 26 Mar 2008 10:57:11 +0000 (10:57 +0000)]
Some MS-DNS changes: if the peer sends a conf-nak prompting us
to ask for MS-DNS1 or MS-DNS2, do so; and also fix the code that
prints packets - it was printing "ms-dns3" rather than "ms-dns2".