lh | 9ed821d | 2023-04-07 01:36:19 -0700 | [diff] [blame] | 1 | What was new in ppp-2.3.11. |
| 2 | *************************** |
| 3 | |
| 4 | * Support for Solaris 8 has been added, including support for |
| 5 | replumbing and IPV6. |
| 6 | |
| 7 | * The Solaris `snoop' utility should now work on ppp interfaces. |
| 8 | |
| 9 | * New hooks have been added - pap_logout_hook, ip_up_hook, and |
| 10 | ip_down_hook. |
| 11 | |
| 12 | * A new `passprompt' plugin is included, thanks to Alan Curry, which |
| 13 | makes it possible for pppd to call an external program to get the |
| 14 | PAP password to send to the peer. |
| 15 | |
| 16 | * The error messages for the situation where authentication is |
| 17 | required because the system has a default route have been improved. |
| 18 | |
| 19 | * There is a new connect_delay option which specifies how long pppd |
| 20 | should pause after the connect script finishes. Previously this |
| 21 | delay was fixed at 1 second. (This delay terminates as soon as pppd |
| 22 | sees a valid PPP frame from the peer.) |
| 23 | |
| 24 | * The `hide-password' option is now the default, and there is a new |
| 25 | `show-password' option to enable the printing of password strings in |
| 26 | the debug output. |
| 27 | |
| 28 | * A fairly complete list of the names of PPP protocols has been added |
| 29 | so that when pppd rejects a frame because its protocol is not |
| 30 | supported, it can print the name of the unsupported protocol. |
| 31 | |
| 32 | * Synchronous serial lines are supported under Linux 2.3.x. |
| 33 | |
| 34 | * The bug where pppd would not recognize a modem hangup under Linux |
| 35 | 2.3.x kernels has been fixed. |
| 36 | |
| 37 | |
| 38 | What was new in ppp-2.3.10. |
| 39 | *************************** |
| 40 | |
| 41 | * Pppd now supports `plugins', which are pieces of code (packaged as |
| 42 | shared libraries) which can be loaded into pppd at runtime and which |
| 43 | can affect its behaviour. The intention is that plugins provide a |
| 44 | way for people to customize the behaviour of pppd for their own |
| 45 | needs without needing to change the base pppd source. I have added |
| 46 | some hooks into pppd (places where pppd will call a function |
| 47 | pointer, if non-zero, to replace some of pppd's code) and I will be |
| 48 | receptive to suggestions about places to add more hooks. Plugins |
| 49 | are supported under Linux and Solaris at present. |
| 50 | |
| 51 | * We have a new maintainer for the Solaris port, Adi Masputra of Sun |
| 52 | Microsystems, and he has updated the Solaris port so that it should |
| 53 | work on 64-bit machines under Solaris 7 and later. |
| 54 | |
| 55 | * Pppd now has an `allow-ip' option, which takes an argument which is |
| 56 | an IP address (or subnet) which peers are permitted to use without |
| 57 | authenticating themselves. The argument takes the same form as each |
| 58 | element of the allowed IP address list in the secrets files. The |
| 59 | allow-ip option is privileged and may be specified multiple times. |
| 60 | Using the allow-ip option should be cleaner than putting a line like |
| 61 | `"" * "" address' in /etc/ppp/pap-secrets. |
| 62 | |
| 63 | * Chat can now substitute environment variables into the script. This |
| 64 | is enabled by the -E flag. (Thanks to Andreas Arens for the patch.) |
| 65 | |
| 66 | * If the PAP username and password from the peer contains unprintable |
| 67 | characters, they will be translated to a printable form before |
| 68 | looking in the pap-secrets file. Characters >= 0x80 are translated |
| 69 | to a M- form, and characters from 0 to 0x1f (and 0x7f as well) are |
| 70 | translated to a ^X form. If this change causes you grief, let me |
| 71 | know what would be a better translation. It appears that some peers |
| 72 | send nulls or other control characters in their usernames and |
| 73 | passwords. |
| 74 | |
| 75 | * Pppd has new `ktune' and `noktune' options, which enable/disable |
| 76 | it to change kernel settings as appropriate. This is only |
| 77 | implemented under Linux, and requires the /proc filesystem to be |
| 78 | mounted. Under Linux, with the ktune option, pppd will enable IP |
| 79 | forwarding in the kernel if the proxyarp option is used, and will |
| 80 | enable the dynamic IP address kernel option in demand mode if the |
| 81 | local IP address changes. |
| 82 | |
| 83 | * Pppd no longer requires a remote address to be specified for demand |
| 84 | dialling. If none is specified, it will use a default value of |
| 85 | 10.112.112.112+unit_number. (It will not propose this default to |
| 86 | the peer.) |
| 87 | |
| 88 | * The default holdoff is now 0 if no connect script is given. |
| 89 | |
| 90 | * The IPV6 code from Tommi Komulainen, which I unfortunately only |
| 91 | partially merged in to ppp-2.3.9, has been fixed and updated. |
| 92 | |
| 93 | * The linux compilation glitches should be fixed now. |
| 94 | |
| 95 | |
| 96 | What was new in ppp-2.3.9. |
| 97 | ************************** |
| 98 | |
| 99 | * Support for the new generic PPP layer under development for the |
| 100 | Linux kernel. |
| 101 | |
| 102 | * You can now place extra options to apply to specific users at the |
| 103 | end of the line with their password in the pap-secrets or |
| 104 | chap-secrets file, separated from the IP address(es) with a "--" |
| 105 | separator. These options are parsed after the peer is authenticated |
| 106 | but before network protocol (IPCP, IPXCP) or CCP negotiation |
| 107 | commences. |
| 108 | |
| 109 | * Pppd will apply the holdoff period if the link was terminated by the |
| 110 | peer. It doesn't apply it if the link was terminated because the |
| 111 | local pppd thought it was idle. |
| 112 | |
| 113 | * Synchronous support for Solaris has been added, thanks to John |
| 114 | Morrison, and for FreeBSD, thanks to Paul Fulghum. |
| 115 | |
| 116 | * IPV6 support has been merged in, from Tommi Komulainen. At the |
| 117 | moment it only supports Linux and it is not tested by me. |
| 118 | |
| 119 | * The `nodefaultip' option can be used in demand mode to say that pppd |
| 120 | should not suggest its local IP address to the peer. |
| 121 | |
| 122 | * The `init' option has been added; this causes pppd to run a script |
| 123 | to initialize the serial device (e.g. by sending an init string to |
| 124 | the modem). Unlike the connect option, this can be used in a |
| 125 | dial-in situation. (Thanks to Tobias Ringstrom.) |
| 126 | |
| 127 | * There is a new `logfile' option to send log messages to a file as |
| 128 | well as syslog. |
| 129 | |
| 130 | * There is a new, privileged `linkname' option which sets a logical |
| 131 | name for the link. Pppd will create a /var/run/ppp-<linkname>.pid |
| 132 | file containing its process ID. |
| 133 | |
| 134 | * There is a new `maxfail' option which specifies how many consecutive |
| 135 | failed connection attempts are permitted before pppd will exit. The |
| 136 | default value is 10, and 0 means infinity. :-) |
| 137 | |
| 138 | * Sundry bugs fixed. |
| 139 | |
| 140 | |
| 141 | What was new in ppp-2.3.8. |
| 142 | ************************** |
| 143 | |
| 144 | * The exit status of pppd will now indicate whether the link was |
| 145 | successfully established, or if not, what error was encountered. |
| 146 | |
| 147 | * Pppd has two new options: fdlog <n> will send log messages to file |
| 148 | descriptor <n> instead of standard output, and nofdlog will stop log |
| 149 | messages from being sent to any file descriptor (they will still be |
| 150 | sent to syslog). Pppd now will not send log messages to a file |
| 151 | descriptor if the serial port is open on that file descriptor. |
| 152 | |
| 153 | * Pppd sets an environment variable called PPPLOGNAME for scripts that |
| 154 | it runs, indicating the login name of the user who invoked pppd. |
| 155 | |
| 156 | * Pppd sets environment variables CONNECT_TIME, BYTES_SENT and |
| 157 | BYTES_RCVD for the ip-down and auth-down scripts indicating the |
| 158 | statistics for the connection just terminated. (CONNECT_TIME is in |
| 159 | seconds.) |
| 160 | |
| 161 | * If the user has the serial device open on standard input and |
| 162 | specifies a symbolic link to the serial device on the command line, |
| 163 | pppd will detect this and behave correctly (i.e. not detach from its |
| 164 | controlling terminal). Furthermore, if the serial port is open for |
| 165 | reading and writing on standard input, pppd will assume that it is |
| 166 | locked by its invoker and not lock it itself. |
| 167 | |
| 168 | * Chat now has a feature where if a string to be sent begins with an |
| 169 | at sign (@), the rest of the string is taken as the name of a file |
| 170 | (regular file or named pipe), and the actual string to send is taken |
| 171 | from that file. |
| 172 | |
| 173 | * Support for FreeBSD-2.2.8 and 3.0 has been added, thanks to Paul |
| 174 | Fulghum. |
| 175 | |
| 176 | * The Tru64 (aka Digital Unix aka OSF/1) port has been updated. |
| 177 | |
| 178 | * The system panics on Solaris SMP systems related to PPP connections |
| 179 | being established and terminated should no longer occur. |
| 180 | |
| 181 | * Fixed quite a few bugs. |
| 182 | |
| 183 | |
| 184 | What was new in ppp-2.3.7. |
| 185 | ************************** |
| 186 | |
| 187 | * Pppd can now automatically allocate itself a pseudo-tty to use as |
| 188 | the serial device. This has made three new options possible: |
| 189 | |
| 190 | - `pty script' will run `script' with its standard input and output |
| 191 | connected to the master side of the pty. For example: |
| 192 | pppd pty 'ssh -t server.my.net pppd' |
| 193 | is a basic command for setting up a PPP link (tunnel) over ssh. |
| 194 | (In practice you may need to specify other options such as IP |
| 195 | addresses, etc.) |
| 196 | |
| 197 | - `notty' tells pppd to communicate over its standard input and |
| 198 | output, which do not have to be a terminal device. |
| 199 | |
| 200 | - `record filename' tells pppd to record all of the characters sent |
| 201 | and received over the serial device to a file called `filename'. |
| 202 | The data is recorded in a tagged format with timestamps, which can |
| 203 | be printed in a readable form with the pppdump program, which is |
| 204 | included in this distribution. |
| 205 | |
| 206 | * Pppd now logs the connect time and number of bytes sent and received |
| 207 | (at the level of the serial device) when the connection is |
| 208 | terminated. |
| 209 | |
| 210 | * If you use the updetach or nodetach option, pppd will print its |
| 211 | messages to standard output as well as logging them with syslog |
| 212 | (provided of course pppd isn't using its standard input or output as |
| 213 | its serial device). |
| 214 | |
| 215 | * There is a new `privgroup groupname' option (a privileged option). |
| 216 | If the user running pppd is in group `groupname', s/he can use |
| 217 | privileged options without restriction. |
| 218 | |
| 219 | * There is a new `receive-all' option, which causes pppd to accept all |
| 220 | control characters, even the ones that the peer should be escaping |
| 221 | (i.e. the receive asyncmap is 0). This is useful with some buggy |
| 222 | peers. |
| 223 | |
| 224 | * The default asyncmap is now 0. |
| 225 | |
| 226 | * There is a new `sync' option, currently only implemented under |
| 227 | Linux, which allows pppd to run on synchronous HDLC devices. |
| 228 | |
| 229 | * If a value for the device name or for the connect, disconnect, |
| 230 | welcome or pty option is given in a privileged option file |
| 231 | (i.e. /etc/ppp/options or a file loaded with the `call' option), it |
| 232 | cannot be overridden by a non-privileged user. |
| 233 | |
| 234 | * Many bugs have been fixed, notably: |
| 235 | - signals are not blocked unnecessarily, as they were in 2.3.6. |
| 236 | - the usepeerdns option should work now. |
| 237 | - the SPEED environment variable for scripts is set correctly. |
| 238 | - the /etc/ppp/auth-down script is not run until auth-up completes. |
| 239 | - the device is opened as root if it is the device on standard |
| 240 | input. |
| 241 | - pppd doesn't die with the ioctl(PPPIOCSASYNCMAP) error under linux |
| 242 | if a hangup occurs at the wrong time. |
| 243 | |
| 244 | * Some error messages have been changed to be clearer (I hope :-) |
| 245 | |
| 246 | |
| 247 | What was new in ppp-2.3.6. |
| 248 | ************************** |
| 249 | |
| 250 | * Pppd now opens the tty device as the user (rather than as root) if |
| 251 | the device name was given by the user, i.e. on the command line or |
| 252 | in the ~/.ppprc file. If the device name was given in |
| 253 | /etc/ppp/options or in a file loaded with the `call' option, the |
| 254 | device is opened as root. |
| 255 | |
| 256 | * The default behaviour of pppd is now to let a peer which has not |
| 257 | authenticated itself (e.g. your ISP) use any IP address to which the |
| 258 | system does not already have a route. (This is currently only |
| 259 | supported under Linux, Solaris and Digital Unix; on the other |
| 260 | systems, the peer must now authenticate itself unless the noauth |
| 261 | option is used.) |
| 262 | |
| 263 | * Added new option `usepeerdns', thanks to Nick Walker |
| 264 | <nickwalker@email.com>. If the peer supplies DNS addresses, these |
| 265 | will be written to /etc/ppp/resolv.conf. The ip-up script can then |
| 266 | be used to add these addresses to /etc/resolv.conf if desired (see |
| 267 | the ip-up.local.add and ip-down.local.add files in the scripts |
| 268 | directory). |
| 269 | |
| 270 | * The Solaris ppp driver should now work correctly on SMP systems. |
| 271 | |
| 272 | * Minor corrections so that the code can compile under Solaris 7, |
| 273 | and under Linux with glibc-2.1. |
| 274 | |
| 275 | * The Linux kernel driver has been restructured for improved |
| 276 | performance. |
| 277 | |
| 278 | * Pppd now won't start the ip-down script until the ip-up script has |
| 279 | finished. |
| 280 | |
| 281 | |
| 282 | What was new in ppp-2.3.5. |
| 283 | ************************** |
| 284 | |
| 285 | * Minor corrections to the Digital UNIX and NetBSD ports. |
| 286 | |
| 287 | * A workaround to avoid tickling a bug in the `se' serial port driver |
| 288 | on Sun PCI Ultra machines running Solaris. |
| 289 | |
| 290 | * Fixed a bug in the negotiation of the Microsoft WINS server address |
| 291 | option. |
| 292 | |
| 293 | * Fixed a bug in the Linux port where it would fail for kernel |
| 294 | versions above 2.1.99. |
| 295 | |
| 296 | |
| 297 | What was new in ppp-2.3.4. |
| 298 | ************************** |
| 299 | |
| 300 | * The NeXT port has been updated, thanks to Steve Perkins. |
| 301 | |
| 302 | * ppp-2.3.4 compiles and works under Solaris 2.6, using either gcc or |
| 303 | cc. |
| 304 | |
| 305 | * With the Solaris, SVR4 and SunOS ports, you can control the choice |
| 306 | of C compiler, C compiler options, and installation directories by |
| 307 | editing the svr4/Makedefs or sunos4/Makedefs file. |
| 308 | |
| 309 | * Until now, we have been using the number 24 to identify Deflate |
| 310 | compression in the CCP negotiations, which was the number in the draft |
| 311 | RFC describing Deflate. The number actually assigned to Deflate is |
| 312 | 26. The code has been changed to use 26, but to allow the use of 24 |
| 313 | for now for backwards compatibility. (This can be disabled with the |
| 314 | `nodeflatedraft' option to pppd.) |
| 315 | |
| 316 | * Fixed some bugs in the linux driver and deflate compressor which |
| 317 | were causing compression problems, including corrupting long |
| 318 | incompressible packets sometimes. |
| 319 | |
| 320 | * Fixes to the PAM and shadow password support in pppd, from Al |
| 321 | Longyear and others. |
| 322 | |
| 323 | * Pppd now sets some environment variables for scripts it invokes |
| 324 | (ip-up/down, auth-ip/down), giving information about the connection. |
| 325 | The variables it sets are PEERNAME, IPLOCAL, IPREMOTE, UID, DEVICE, |
| 326 | SPEED, and IFNAME. |
| 327 | |
| 328 | * Pppd now has an `updetach' option, which will cause it to detach |
| 329 | from its controlling terminal once the link has come up (i.e. once it |
| 330 | is available for IP traffic). |
| 331 | |
| 332 | |
| 333 | What was new in ppp-2.3.3. |
| 334 | ************************** |
| 335 | |
| 336 | * Fixed compilation problems under SunOS. |
| 337 | |
| 338 | * Fixed a bug introduced into chat in 2.3.2, and compilation problems |
| 339 | introduced into the MS-CHAP implementation in 2.3.2. |
| 340 | |
| 341 | * The linux kernel driver has been updated for recent 2.1-series |
| 342 | kernel changes, and it now will ask kerneld to load compression |
| 343 | modules when required, if the kernel is configured to support kerneld. |
| 344 | |
| 345 | * Pppd should now compile correctly under linux on systems with glibc. |
| 346 | |
| 347 | |
| 348 | What was new in ppp-2.3.2. |
| 349 | ************************** |
| 350 | |
| 351 | * In 2.3.1, I made a change which was intended to make pppd able to |
| 352 | detect loss of CD during or immediately after the connection script |
| 353 | runs. Unfortunately, this had the side-effect that the connection |
| 354 | script wouldn't work at all on some systems. This change has been |
| 355 | reversed. |
| 356 | |
| 357 | * Fix compilation problems in the Linux kernel driver. |
| 358 | |
| 359 | |
| 360 | What was new in ppp-2.3.1. |
| 361 | ************************** |
| 362 | |
| 363 | * Enhancements to chat, thanks to Francis Demierre. Chat can now |
| 364 | accept comments in the chat script file, and has new SAY, HANGUP, |
| 365 | CLR_ABORT and CLR_REPORT keywords. |
| 366 | |
| 367 | * Fixed a bug which causes 2.3.0 to crash Solaris systems. |
| 368 | |
| 369 | * Bug-fixes and restructuring of the Linux kernel driver. |
| 370 | |
| 371 | * The holdoff behaviour of pppd has been changed slightly: now, if |
| 372 | the link comes up for IP (or other network protocol) traffic, we |
| 373 | consider that the link has been successfully established, and don't |
| 374 | enforce the holdoff period after the link goes down. |
| 375 | |
| 376 | * Pppd should now correctly wait for CD (carrier detect) from the |
| 377 | modem, even when the serial port initially had CLOCAL set, and it |
| 378 | should also detect loss of CD during or immediately after the |
| 379 | connection script runs. |
| 380 | |
| 381 | * Under linux, pppd will work with older 2.2.0* version kernel |
| 382 | drivers, although demand-dialling is not supported with them. |
| 383 | |
| 384 | * Minor bugfixes for pppd. |
| 385 | |
| 386 | |
| 387 | What was new in ppp-2.3. |
| 388 | ************************ |
| 389 | |
| 390 | * Demand-dialling. Pppd now has a mode where it will establish the |
| 391 | network interface immediately when it starts, but not actually bring |
| 392 | the link up until it sees some data to be sent. Look for the demand |
| 393 | option description in the pppd man page. Demand-dialling is not |
| 394 | supported under Ultrix or NeXTStep. |
| 395 | |
| 396 | * Idle timeout. Pppd will optionally terminate the link if no data |
| 397 | packets are sent or received within a certain time interval. |
| 398 | |
| 399 | * Pppd now runs the /etc/ppp/auth-up script, if it exists, when the |
| 400 | peer successfully authenticates itself, and /etc/ppp/auth-down when |
| 401 | the connection is subsequently terminated. This can be useful for |
| 402 | accounting purposes. |
| 403 | |
| 404 | * A new packet compression scheme, Deflate, has been implemented. |
| 405 | This uses the same compression method as `gzip'. This method is free |
| 406 | of patent or copyright restrictions, and it achieves better |
| 407 | compression than BSD-Compress. It does consume more CPU cycles for |
| 408 | compression than BSD-Compress, but this shouldn't be a problem for |
| 409 | links running at 100kbit/s or less. |
| 410 | |
| 411 | * There is no code in this distribution which is covered by Brad |
| 412 | Clements' restrictive copyright notice. The STREAMS modules for SunOS |
| 413 | and OSF/1 have been rewritten, based on the Solaris 2 modules, which |
| 414 | were written from scratch without any Clements code. |
| 415 | |
| 416 | * Pppstats has been reworked to clean up the output format somewhat. |
| 417 | It also has a new -d option which displays data rate in kbyte/s for |
| 418 | those columns which would normally display bytes. |
| 419 | |
| 420 | * Pppd options beginning with - or + have been renamed, e.g. -ip |
| 421 | became noip, +chap became require-chap, etc. The old options are |
| 422 | still accepted for compatibility but may be removed in future. |
| 423 | |
| 424 | * Pppd now has some options (such as the new `noauth' option) which |
| 425 | can only be specified if it is being run by root, or in an |
| 426 | "privileged" options file: /etc/ppp/options or an options file in the |
| 427 | /etc/ppp/peers directory. There is a new "call" option to read |
| 428 | options from a file in /etc/ppp/peers, making it possible for non-root |
| 429 | users to make unauthenticated connections, but only to certain trusted |
| 430 | peers. My intention is to make the `auth' option the default in a |
| 431 | future release. |
| 432 | |
| 433 | * Several minor new features have been added to pppd, including the |
| 434 | maxconnect and welcome options. Pppd will now terminate the |
| 435 | connection when there are no network control protocols running. The |
| 436 | allowed IP address(es) field in the secrets files can now specify |
| 437 | subnets (with a notation like 123.45.67.89/24) and addresses which are |
| 438 | not acceptable (put a ! on the front). |
| 439 | |
| 440 | * Numerous bugs have been fixed (no doubt some have been introduced :-) |
| 441 | Thanks to those who reported bugs in ppp-2.2. |