1# LIC: GPL 2Changes from Version 3.10 to 3.11: 3 4- Make the rp-pppoe.so plugin avoid calling exit() if the "persist" pppd 5 option was given. 6 7- Permit both PPPoE server and client to specify an MTU/MRU of 1500 assuming 8 the underlying Ethernet interface has an MTU of at least 1508. The larger 9 MTU is negotiated per RFC 4638. NOTE: Only available with kernel-mode 10 plugin, not user-mode pty redirector. 11 12- Get rid of hard-coded nobsdcomp, nodeflate, novj and novjccomp options 13 in pppoe-server. 14 15- Apply patch from Philip Prindeville to allow cross-compiling. 16 17- Handle UNIT=xxx directive in pppoe-connect. (Keith Waters) 18 19- Add "-i" flag to pppoe-server to ignore PADIs if there are no free sessions. 20 Change suggested by Miroslav Lednicky. 21 22- Ignore PADTs not destined for our ethernet address. 23 24- Add "-X <pidfile>" option to pppoe-server. 25 26- Cleanup Makefile.in. (Philip Prindeville) 27 28- In plugin, don't set devnam if it's already set. (Mike Ireton) 29 30- Eliminate race condition in signal handling. 31 32- pppoe-server: Add -q and -Q options to allow specification of path to 33 pppd and pppoe programs respectively. 34 35- Add a few more sanity checks to pppoe-server packet handling. 36 37- Use -fno-strict-aliasing when compiling with gcc to avoid possible problems 38 from -O2 optimization level. 39 40Changes from Version 3.9 to 3.10: (30 June 2008) 41 42- Fixed compilation problems on various platforms. 43 44- The Makefiles now use (standard) DESTDIR instead of (non-standard) 45 RPM_INSTALL_ROOT to relocate installed files. 46 47- Spec file has been updated (it had languished since 3.6.) 48 49Changes from Version 3.8 to 3.9: (21 June 2008) 50 51- pppoe-server has new "-x" option to limit the number of sessions per 52 MAC address. 53 54- Added proper timeout handling while waiting for PADO/PADS. 55 56- Fix race condition with some access concentrators that move very quickly 57 into session mode (problem noted by Luigi Sgro) 58 59- Fixed compilation problem on BSD. 60 61- Fixed compilation problems with old versions of gcc 62 63- Remove superfluous options in scripts/pppoe-connect.in 64 65Changes from Version 3.7 to 3.8: (2 April 2006) 66 67- Adjusted code and made it possible to disable debugging code to shrink 68 size of pppoe executable. 69 70- Fixed bug in MD5 code that caused pppoe-server to segfault on 64-bit 71 machines. 72 73- Made various functions and variables static that didn't need to be visible 74 outside their source files. 75 76Changes from Version 3.6 to 3.7: 77 78- Fixed typo in the firewall-standalone sample firewall script. 79 Fix courtesy of Robert Vogelgesang <vogel@users.sourceforge.net> 80 81- Added -O option to pppoe-server to let you specify a different default 82 options file for pppd instead of /etc/ppp/pppoe-server-options 83 Feature courtesy of Robert Vogelgesang <vogel@users.sourceforge.net> 84 85- Fixed some silliness and incorrectness in configure.in. 86 Feature courtesy of Robert Vogelgesang <vogel@users.sourceforge.net> 87 88- Fixed a typo in pppoe-connect.in that made it fail if used with the 89 kernel-mode plugin. 90 91- Make pppoe-server prepend "nic-" to interface name if used with 92 kernel-mode plugin. This lets you use interfaces that don't start 93 with "eth" more easily. 94 95 96Changes from Version 3.5 to 3.6: 97 98- Changed the names of commands from adsl-* to pppoe-* to more logically 99 name the scripts. NOTE INCOMPATIBILITY: 100 101 OLD NAME NEW NAME 102 adsl-start pppoe-start 103 adsl-stop pppoe-stop 104 adsl-status pppoe-status 105 adsl-connect pppoe-connect 106 adsl-setup pppoe-setup 107 108- Changed sample firewall scripts to use iptables instead of the old ipchains 109 command. 110 111- Updated KERNEL-MODE-PPPOE instructions to reflect more modern pppd that 112 is commonly distributed. 113 114- Make the userland pppoe daemon run as "nobody" if possible, once session 115 has started. 116 117- Make userland pppoe program somewhat safe if it is installed SUID or 118 SGID. Note that I still do *NOT* recommend a SUID/SGID pppoe. 119 120- Fix long-standing bug in pppoe-server that passed arguments to pppd in the 121 wrong order. 122 123- Fix kernel-mode plugin. It was broken by changes to pppd. The pppd 124 maintainers fixed their version of the plugin, but neglected to inform me. 125 Thanks a lot, guys! 126 127- Make plugin accept argument of the form "nix-XXXX" to force it to use 128 device "XXXX" as the Ethernet interface. This allows the use of devices 129 whose names do not start with "eth" 130 131 132Changes from Version 3.4 to 3.5: 133 134- Fixes for compilation on Solaris. 135 136 137Changes from Version 3.3 to 3.4: 138 139- INCOMPATIBILITY WITH EARLIER VERSIONS: 140 Kernel-mode plugin now is built against latest CVS ppp source rather than 141 Michal Ostrowski's patched version. If you use kernel-mode PPPoE, you 142 MUST use the CVS version of the ppp source code with rp-pppoe 3.4. 143 144- Print PPPoE session number when connection terminates. Thanks to 145 Alexander Dalloz for suggesting this. 146 147- Fixed a bug in MSS clamping -- it now works with protocol-field compression. 148 Thanks to Gerd v. Egidy for the patch. 149 150- Ignore SIGINT and SIGTERM so LCP termination packets make it out. 151 152 153Changes from Version 3.2 to 3.3: 154 155- Client works on Solaris again. It was broken in 3.2. 156 157- Added DEFAULTROUTE=yes|no option to configuration file. 158 159- Server parses address pool file better. 160 161- Server address pool allows ranges of addresses on a line: a.b.c.d-e 162 163- Added "-d" (=debug) and "-P" (=check pool file syntax) options to 164 pppoe-server. 165 166 167Changes from Version 3.1 to 3.2: 168 169- Client now ignores PADT's if they are from the wrong source MAC address 170 or to the wrong destination MAC address. 171 172- Minor fixes to Makefile.in for Turbolinux. 173 174 175Changes from Version 3.0 to 3.1: 176 177- Improved KERNEL-MODE-PPPOE instructions 178 179- Works with patched pppd 2.4.1 180 181- Many improvements to server: Added "-u" and "-r" options; server can 182 now respond to request on multiple Ethernet interfaces. 183 184- SECURITY BUG FIX: Server now ignores PADT's if they are from the wrong 185 source MAC address. You are STRONGLY RECOMMENDED to upgrade to 3.1 186 if you use pppoe-server in production. 187 188 189Changes from Version 2.8 to 3.0: 190 191- Many small improvements to server. Server now only makes one 192 discovery socket, systemwide, with addition of "-n" option to pppoe. 193 194- Fixes for compilation problems on BSD, Solaris and some Linux platforms. 195 196- Added "-p" option to pppoe-server to allow you to specify a pool of 197 IP addresses to assign to clients. 198 199- Added GUI system (tkpppoe). This work was funded by Iospan 200 Wireless, Inc. The GUI includes a Set-UID wrapper (pppoe-wrapper) 201 which allows ordinary users to control a link (if so authorized.) 202 I believe the wrapper script is secure, but please audit the 203 source code (gui/wrapper.c) if you have any concerns. 204 205- Changes to scripts and pppoe.conf. DNS setup is now dynamic (happens 206 each time adsl-connect runs.) 207 208- Made relay.c check packet lengths rigorously; made it throw out Ethernet 209 frame padding on session packets as well as discovery packets. 210 211 212Changes from Version 2.7 to 2.8: 213 214- Added init scripts for TurboLinux, courtesy of Yasuhiro Sumi. 215 216- Made relay.c check packet lengths rigorously; made it throw out Ethernet 217 frame padding on discovery packets. 218 219*** NOTE: 2.7 was not released publicly 220 221 222Changes from Version 2.6 to 2.7: 223 224- Completely restructured source file tree. 225 226- Much internal restructuring to eliminate a bunch of global variables. 227 228- adsl-connect now executes /etc/ppp/adsl-lost whenever connection is dropped 229 or cannot be established. 230 231- Split pppoe.c into pppoe.c and discovery.c. 232 233- Added relay agent (pppoe-relay). 234 235- Made adsl-connect script use the "-U" (host-unique) option to better support 236 multiple PPPoE links. 237 238- Added support for kernel-mode PPPoE (EXPERIMENTAL, UNSUPPORTED!) 239 240- Added "-o" option to PPPoE server; encoded server PID in pppoe-server 241 cookie. 242 243 244Changes from Version 2.5 to 2.6: 245 246- Code should now compile cleanly on Caldera and Slackware Linux 247 248- Fixed rp-pppoe.spec file to work on Mandrake and Red Hat. 249 250- Deleted some obsolete files 251 252- Fixed bug in Solaris/x86 port (thanks to Philippe Levan) 253 254- Made shell scripts nicer under Solaris (again, Philippe Levan) 255 256- Made adsl-status look under /var/run and /etc/ppp for PID files. Should 257 fix problems with NetBSD. 258 259- Added PPPD_EXTRA to pppoe.conf; made the PID file depend on the config 260 file name. This makes it easier to run multiple PPPoE sessions. 261 262 263Changes from Version 2.4 to 2.5: 264 265- Tested for zero-length TCP option-length field, and for reverse-packing 266 of type/code bitfields. Thanks to Robert Schlabbach for pointing out 267 these problems. 268 269- Set umask to 077 in adsl-setup.in to protect created files like 270 /etc/ppp/pap-secrets. 271 272 273Changes from Version 2.3 to 2.4: 274 275- Fixed spec file to automatically add .gz extension to man files as required 276 277- Tightened firewall rules. 278 279- Better check for /var/run in adsl-status; minor shell script fixes and 280 cleanups for NetBSD and Solaris. 281 282- Added FAQ to HOW-TO-CONNECT regarding running a script each time a 283 connection is made. 284 285 286Changes from Version 2.2 to 2.3: 287 288- Fixed the init script to create/remove /var/lock/subsys/adsl (patch 289 courtesy of Charley Carter.) 290 291- Added support (under Linux) for N_HDLC line discipline which should 292 greatly reduce CPU usage. My tests show it cuts CPU usage in half. 293 My 486 DX2/66 gets 800 kb/s at 22% CPU usage. 294 295- adsl-connect uses "setsid" (if available) so that adsl-stop doesn't kill 296 its caller. There is (IMO) a bug in pppd which kills all processes in 297 its process group if the "pty" option is used. The setsid program gets 298 around this bug, on Linux at least. 299 300- Port to Solaris, courtesy of David Holland. 301 302- Renamed spec file from "spec" to "rp-pppoe.spec" and made some cleanups. 303 NOTE: Red Hat, in their infinite wisdom, decided to make the new RPM 304 compress man pages automatically. You may have problems building RPM's 305 from source unless you get the latest rpm package and make sure it 306 compresses man pages. 307 308 309Changes from Version 2.1 to 2.2: 310 311- Added "-f" option to pppoe to allow use of any Ethernet frame type 312 for PPPoE. USE WITH CAUTION -- this is a workaround for broken DSL 313 providers, not something you should monkey with freely! 314 315- Added pppoe-sniff program to help expose non-standard PPPoE implementations. 316 317 318Changes from Version 2.0 to 2.1: 319 320- Fixed minor bugs in bounds-checking 321 322- Modified adsl-status to use output of "netstat -r -n" to determine whether 323 or not link is up. This should make it independent of locale, I hope! 324 325- Added "-k" and "-d" options to pppoe. 326 327 328Changes from Version 1.9 to 2.0: 329 330- Addition of pppoe-server 331 332- Massive internal code restructuring 333 334- Zealous bounds-checking everywhere. 335 336- adsl-setup now quotes user name and password in /etc/ppp/pap-secrets. 337 338- Ported to OpenBSD, FreeBSD and NetBSD, courtesy of Geoff Mottram 339 and Yannis Sismanis. 340 341- Rearranged adsl-* shell scripts, courtesy of Heiko Schlittermann. 342 343- Fixed bug in which Host-Uniq did not work if access concentrator sent 344 a cookie. 345 346- Addition of SuSE-specific "init" script, courtesy of Gary Cameron. 347 348 349Changes from Version 1.8 to 1.9: 350 351- Added some more documentation to HOW-TO-CONNECT 352 353- Demand-dialling option now works correctly 354 355- SIGHUP terminates pppoe after sending a PADT to the access concentrator 356 357- Minor cleanups to connection shell scripts 358 359 360Changes from Version 1.7 to 1.8: 361 362- Added demand-dialling option 363 364- Clarified HOW-TO-CONNECT 365 366- Added adsl-status script 367 368- Added "restart" and "status" options to Red Hat /etc/rc.d/init.d/adsl script 369 370- Made adsl-setup check for existence of pppd 371 372- Wildcarded external interface in firewall rules 373 374- Made pppoe send a PADT frame if connection is terminated 375 376$Id$ 377