don't die on EIO on setting asyncmap
[ppp.git] / README
diff --git a/README b/README
index 3a6243f93a7d2e60d900169162eb0ed2e252c257..4096879ee0d255f49462df2007ac4b85960c7d8d 100644 (file)
--- a/README
+++ b/README
@@ -1,4 +1,4 @@
-This is the README file for ppp-2.2, a package which implements the
+This is the README file for ppp-2.3, a package which implements the
 Point-to-Point Protocol (PPP) to provide Internet connections over
 serial lines.
 
@@ -6,23 +6,17 @@ serial lines.
 Introduction.
 *************
 
-The Point-to-Point Protocol (PPP) provides a standard way to transmit
-datagrams over a serial link, as well as a standard way for the
-machines at either end of the link (the `peers') to negotiate various
-optional characteristics of the link.  Using PPP, a serial link can be
-used to transmit Internet Protocol (IP) datagrams, allowing TCP/IP
-connections between the peers.  PPP is defined in several RFC (Request
-For Comments) documents, in particular RFCs 1661, 1662, 1332 and 1334.
-Other RFCs describe standard ways to transmit datagrams from other
-network protocols (e.g., DECnet, OSI, Appletalk), but this package
-only supports IP.
+The Point-to-Point Protocol (PPP) provides a standard way to establish
+a network connection over a serial link.  At present, this package
+supports IP and the protocols layered above IP, such as TCP and UDP.
+The Linux port of this package also has support for IPX.
 
 This software consists of two parts:
 
 - Kernel code, which establishes a network interface and passes
 packets between the serial port, the kernel networking code and the
 PPP daemon (pppd).  This code is implemented using STREAMS modules on
-SunOS 4.x, System V Release 4, AIX 4.1, and OSF/1, Solaris 2, and as a
+SunOS 4.x, Solaris 2.x, System V Release 4, and OSF/1, and as a
 line discipline under Ultrix, NextStep, NetBSD, FreeBSD, and Linux.
 
 - The PPP daemon (pppd), which negotiates with the peer to establish
@@ -40,15 +34,19 @@ system, which contains more specific details for installing PPP on
 that system.  The supported systems, and the corresponding README
 files, are:
 
-       SunOS 4.x                       README.sunos4
-       NetBSD, FreeBSD                 README.bsd
-       Ultrix 4.x                      README.ultrix
+       Digital Unix (OSF/1)            README.osf
        Linux                           README.linux
-       OSF/1                           README.osf
-       AIX 4.x                         README.aix4
+       NetBSD, FreeBSD                 README.bsd
        NeXTStep                        README.next
        Solaris 2                       README.sol2
+       SunOS 4.x                       README.sunos4
        System V Release 4              README.svr4
+       Ultrix 4.x                      README.ultrix
+
+Unfortunately, AIX 4 is no longer supported, since I don't have a
+maintainer for the AIX 4 port.  If you want to volunteer, contact me.
+The Ultrix port is untested, as I no longer have access to an Ultrix
+box.
 
 In each case you start by running the ./configure script.  This works
 out which operating system you are using and creates symbolic links to
@@ -62,49 +60,208 @@ kernel using a `modload' facility.  On others, the kernel image has to
 be recompiled and the system rebooted.  See the README.* files for
 details.
 
+N.B. Since 2.3.0, leaving the permitted IP addresses column of the
+pap-secrets or chap-secrets file empty means that no addresses are
+permitted.  You need to put a "*" in that column to allow the peer to
+use any IP address.  (This only applies where the peer is
+authenticating itself to you, of course.)
+
+
+What's new in ppp-2.3.6.
+************************
+
+* Pppd now opens the tty device as the user (rather than as root) if
+  the device name was given by the user, i.e. on the command line or
+  in the ~/.ppprc file.  If the device name was given in
+  /etc/ppp/options or in a file loaded with the `call' option, the
+  device is opened as root.
+
+* The default behaviour of pppd is now to let a peer which has not
+  authenticated itself (e.g. your ISP) use any IP address to which the
+  system does not already have a route.  (This is currently only
+  supported under Linux, Solaris and Digital Unix; on the other
+  systems, the peer must now authenticate itself unless the noauth
+  option is used.)
+
+* Added new option `usepeerdns', thanks to Nick Walker
+  <nickwalker@email.com>.  If the peer supplies DNS addresses, these
+  will be written to /etc/ppp/resolv.conf.  The ip-up script can then
+  be used to add these addresses to /etc/resolv.conf if desired (see
+  the ip-up.local.add and ip-down.local.add files in the scripts
+  directory).
+
+* The Solaris ppp driver should now work correctly on SMP systems.
+
+* Minor corrections so that the code can compile under Solaris 7,
+  and under Linux with glibc-2.1.
+
+* The Linux kernel driver has been restructured for improved
+  performance.
+
+* Pppd now won't start the ip-down script until the ip-up script has
+  finished.
+
+
+What was new in ppp-2.3.5.
+**************************
+
+* Minor corrections to the Digital UNIX and NetBSD ports.
+
+* A workaround to avoid tickling a bug in the `se' serial port driver
+on Sun PCI Ultra machines running Solaris.
+
+* Fixed a bug in the negotiation of the Microsoft WINS server address
+option.
+
+* Fixed a bug in the Linux port where it would fail for kernel
+versions above 2.1.99.
+
+
+What was new in ppp-2.3.4.
+**************************
+
+* The NeXT port has been updated, thanks to Steve Perkins.
+
+* ppp-2.3.4 compiles and works under Solaris 2.6, using either gcc or
+cc.
+
+* With the Solaris, SVR4 and SunOS ports, you can control the choice
+of C compiler, C compiler options, and installation directories by
+editing the svr4/Makedefs or sunos4/Makedefs file.
+
+* Until now, we have been using the number 24 to identify Deflate
+compression in the CCP negotiations, which was the number in the draft
+RFC describing Deflate.  The number actually assigned to Deflate is
+26.  The code has been changed to use 26, but to allow the use of 24
+for now for backwards compatibility.  (This can be disabled with the
+`nodeflatedraft' option to pppd.)
 
-What is new in ppp-2.2.
-***********************
+* Fixed some bugs in the linux driver and deflate compressor which
+were causing compression problems, including corrupting long
+incompressible packets sometimes.
 
-* More systems are now supported:
+* Fixes to the PAM and shadow password support in pppd, from Al
+Longyear and others.
 
-  AIX 4, thanks to Charlie Wick,
-  OSF/1 on DEC Alpha, thanks to Steve Tate (srt@zaphod.csci.unt.edu),
-  NextStep 3.2 and 3.3, thanks to Philip-Andrew Prindeville
-       (philipp@res.enst.fr) and Steve Perkins (perkins@cps.msu.edu),
-  Solaris 2,
-  System V Release 4, thanks to Joe Kelsey (joe@zircon.seattle.wa.us)
+* Pppd now sets some environment variables for scripts it invokes
+(ip-up/down, auth-ip/down), giving information about the connection.
+The variables it sets are PEERNAME, IPLOCAL, IPREMOTE, UID, DEVICE,
+SPEED, and IFNAME.
 
-in addition to NetBSD 1.0, SunOS 4.x, Ultrix 4.x, FreeBSD 2.0, and
-Linux.
+* Pppd now has an `updetach' option, which will cause it to detach
+from its controlling terminal once the link has come up (i.e. once it
+is available for IP traffic).
 
-* Packet compression has been implemented.  This version implements
-CCP (Compression Control Protocol) and the BSD-Compress compression
-scheme according to the current draft RFCs.  This means that incoming
-and outgoing packets can be compressed with the LZW scheme (same as
-the `compress' command) using a code size of up to 15 bits.
 
-* Some bug fixes to the LCP protocol code.  In particular, pppd now
-correctly replies with a Configure-NAK (instead of a Configure-Reject)
-if the peer asks for CHAP and pppd is willing to do PAP but not CHAP.
+What was new in ppp-2.3.3.
+**************************
 
-* The ip-up and ip-down scripts are now run with the real user ID set
-to root, and with an empty environment.  Clearing the environment
-fixes a security hole.
+* Fixed compilation problems under SunOS.
 
-* The kernel code on NetBSD, FreeBSD, NextStep and Ultrix has been
-restructured to make it easier to implement PPP over devices other
-than asynchronous tty ports (for example, synchronous serial ports).
+* Fixed a bug introduced into chat in 2.3.2, and compilation problems
+introduced into the MS-CHAP implementation in 2.3.2.
 
-* pppd now looks at the list of interfaces in the system to determine
-what the netmask should be.  In most cases, this should eliminate the
-need to use the `netmask' option.
+* The linux kernel driver has been updated for recent 2.1-series
+kernel changes, and it now will ask kerneld to load compression
+modules when required, if the kernel is configured to support kerneld.
 
-* There is a new `papcrypt' option to pppd, which specifies that
-secrets in /etc/ppp/pap-secrets used for authenticating the peer are
-encrypted, so pppd always encrypts the peer's password before
-comparing it with the secret from /etc/ppp/pap-secrets.  This gives
-better security.
+* Pppd should now compile correctly under linux on systems with glibc.
+
+
+What was new in ppp-2.3.2.
+**************************
+
+* In 2.3.1, I made a change which was intended to make pppd able to
+detect loss of CD during or immediately after the connection script
+runs.  Unfortunately, this had the side-effect that the connection
+script wouldn't work at all on some systems.  This change has been
+reversed.
+
+* Fix compilation problems in the Linux kernel driver.
+
+
+What was new in ppp-2.3.1.
+**************************
+
+* Enhancements to chat, thanks to Francis Demierre.  Chat can now
+accept comments in the chat script file, and has new SAY, HANGUP,
+CLR_ABORT and CLR_REPORT keywords.
+
+* Fixed a bug which causes 2.3.0 to crash Solaris systems.
+
+* Bug-fixes and restructuring of the Linux kernel driver.
+
+* The holdoff behaviour of pppd has been changed slightly: now, if
+the link comes up for IP (or other network protocol) traffic, we
+consider that the link has been successfully established, and don't
+enforce the holdoff period after the link goes down.
+
+* Pppd should now correctly wait for CD (carrier detect) from the
+modem, even when the serial port initially had CLOCAL set, and it
+should also detect loss of CD during or immediately after the
+connection script runs.
+
+* Under linux, pppd will work with older 2.2.0* version kernel
+drivers, although demand-dialling is not supported with them.
+
+* Minor bugfixes for pppd.
+
+
+What was new in ppp-2.3.
+************************
+
+* Demand-dialling.  Pppd now has a mode where it will establish the
+network interface immediately when it starts, but not actually bring
+the link up until it sees some data to be sent.  Look for the demand
+option description in the pppd man page.  Demand-dialling is not
+supported under Ultrix or NeXTStep.
+
+* Idle timeout.  Pppd will optionally terminate the link if no data
+packets are sent or received within a certain time interval.
+
+* Pppd now runs the /etc/ppp/auth-up script, if it exists, when the
+peer successfully authenticates itself, and /etc/ppp/auth-down when
+the connection is subsequently terminated.  This can be useful for
+accounting purposes.
+
+* A new packet compression scheme, Deflate, has been implemented.
+This uses the same compression method as `gzip'.  This method is free
+of patent or copyright restrictions, and it achieves better
+compression than BSD-Compress.  It does consume more CPU cycles for
+compression than BSD-Compress, but this shouldn't be a problem for
+links running at 100kbit/s or less.
+
+* There is no code in this distribution which is covered by Brad
+Clements' restrictive copyright notice.  The STREAMS modules for SunOS
+and OSF/1 have been rewritten, based on the Solaris 2 modules, which
+were written from scratch without any Clements code.
+
+* Pppstats has been reworked to clean up the output format somewhat.
+It also has a new -d option which displays data rate in kbyte/s for
+those columns which would normally display bytes.
+
+* Pppd options beginning with - or + have been renamed, e.g. -ip
+became noip, +chap became require-chap, etc.  The old options are
+still accepted for compatibility but may be removed in future.
+
+* Pppd now has some options (such as the new `noauth' option) which
+can only be specified if it is being run by root, or in an
+"privileged" options file: /etc/ppp/options or an options file in the
+/etc/ppp/peers directory.  There is a new "call" option to read
+options from a file in /etc/ppp/peers, making it possible for non-root
+users to make unauthenticated connections, but only to certain trusted
+peers.  My intention is to make the `auth' option the default in a
+future release.
+
+* Several minor new features have been added to pppd, including the
+maxconnect and welcome options.  Pppd will now terminate the
+connection when there are no network control protocols running.  The
+allowed IP address(es) field in the secrets files can now specify
+subnets (with a notation like 123.45.67.89/24) and addresses which are
+not acceptable (put a ! on the front).
+
+* Numerous bugs have been fixed (no doubt some have been introduced :-)
+Thanks to those who reported bugs in ppp-2.2.
 
 
 Patents.
@@ -124,56 +281,38 @@ removed from the Makefiles.
 Contacts.
 *********
 
-Bugs in the the SunOS, NetBSD and Ultrix ports and bugs in pppd, chat
-or pppstats should be reported to:
+The comp.protocols.ppp newsgroup is a useful place to get help if you
+have trouble getting your ppp connections to work.  Please do not send
+me questions of the form "please help me get connected to my ISP" -
+I'm sorry, but I simply do not have the time to answer all the
+questions like this that I get.
 
-       paulus@cs.anu.edu.au
-       Paul Mackerras
-       Dept. of Computer Science
-       Australian National University
-       Canberra  ACT  0200
-       AUSTRALIA
+If you find bugs in this package, please report them to the maintainer
+for the port for the operating system you are using:
 
-Bugs in other ports should be reported to the maintainer for that port
-(see the appropriate README.* file) or to the above.  Unfortunately,
-Charlie Wick is not in a position to provide support for the AIX 4
-port, so if you find bugs in it, send them to me.
-
-Thanks to:
-
-       Brad Parker  (brad@fcr.com)
-       Greg Christy (gmc@quotron.com)
-       Drew D. Perkins (ddp@andrew.cmu.edu)
-       Rick Adams (rick@seismo.ARPA)
-       Chris Torek (chris@mimsy.umd.edu, umcp-cs!chris).
+Digital Unix (OSF/1)   Sowmini Varadhan <varadhan@zk3.dec.com>
+Linux                  Paul Mackerras <Paul.Mackerras@cs.anu.edu.au>
+NetBSD                 Matthew Green <mrg@eterna.com.au>
+FreeBSD                        Peter Wemm <peter@haywire.DIALix.COM>
+NeXTStep               Steve Perkins <perkins@cps.msu.edu>
+Solaris 2              Paul Mackerras <Paul.Mackerras@cs.anu.edu.au>
+SunOS 4.x              Paul Mackerras (for want of anybody better :-)
+System V Release 4     Matthias Apitz <Matthias.Apitz@SOFTCON.de>
+Ultrix 4.x             Paul Mackerras (for want of anybody better :-)
 
 
 Copyrights:
+***********
 
-Most of the code can be freely used and redistributed.  The STREAMS
-code for SunOS 4.x, OSF/1 and AIX 4 is under a more restrictive
-copyright:
+All of the code can be freely used and redistributed.
 
-       This code is Copyright (C) 1989, 1990 By Brad K. Clements, 
-       All Rights Reserved.
 
-       You may use this code for your personal use, to provide a non-profit
-       service to others, or to use as a test platform for a commercial
-       implementation.
+Distribution:
+*************
 
-       You may NOT use this code in a commercial product, nor to provide a 
-       commercial service, nor may you sell this code without express
-       written permission of the author.
+The primary site for releases of this software is:
 
-       Otherwise, Enjoy!
+       ftp://cs.anu.edu.au/pub/software/ppp/
 
-This copyright applies to (parts of) the following files:
 
-       sunos/ppp_async.c
-       sunos/ppp_if.c
-       aix4/ppp_async.c
-       aix4/ppp_if.c
-       net/ppp_str.h
-       pppd/sys-str.c
-       pppd/sys-osf.c
-       pppd/sys-aix4.c
+($Id: README,v 1.15 1999/03/10 05:10:47 paulus Exp $)