ppp: annotate most patches with description and S-o-b
authorJo-Philipp Wich <jow@openwrt.org>
Tue, 19 Jun 2012 17:03:24 +0000 (17:03 +0000)
committerJo-Philipp Wich <jow@openwrt.org>
Tue, 19 Jun 2012 17:03:24 +0000 (17:03 +0000)
SVN-Revision: 32463

28 files changed:
package/ppp/patches/010-use_target_for_configure.patch
package/ppp/patches/100-debian_ip-ip_option.patch
package/ppp/patches/101-debian_close_dev_ppp.patch
package/ppp/patches/103-debian_fix_link_pidfile.patch
package/ppp/patches/106-debian_stripMSdomain.patch
package/ppp/patches/107-debian_pppatm_cleanup.patch [deleted file]
package/ppp/patches/107-debian_pppoatm_wildcard.patch [new file with mode: 0644]
package/ppp/patches/110-debian_defaultroute.patch
package/ppp/patches/120-debian_ipv6_updown_option.patch
package/ppp/patches/200-makefile.patch
package/ppp/patches/201-mppe_mppc_1.1.patch
package/ppp/patches/202-no_strip.patch
package/ppp/patches/203-opt_flags.patch
package/ppp/patches/205-no_exponential_timeout.patch
package/ppp/patches/206-compensate_time_change.patch
package/ppp/patches/207-lcp_mtu_max.patch
package/ppp/patches/208-fix_status_code.patch
package/ppp/patches/300-filter-pcap-includes-lib.patch
package/ppp/patches/310-precompile_filter.patch
package/ppp/patches/320-custom_iface_names.patch
package/ppp/patches/330-retain_foreign_default_routes.patch
package/ppp/patches/340-populate_default_gateway.patch
package/ppp/patches/400-simplify_kernel_checks.patch
package/ppp/patches/401-no_record_file.patch
package/ppp/patches/403-no_wtmp.patch
package/ppp/patches/404-remove_obsolete_protocol_names.patch
package/ppp/patches/405-no_multilink_option.patch
package/ppp/patches/430-pppol2tpv3-struct.patch

index e185be0bea5eae5238b7d096aacdcbd90293832e..aff0df67f862ebc64be32cbcfbbd551378b398c6 100644 (file)
@@ -1,6 +1,11 @@
+configure: Allow overriding uname results
 
-       Use values exported from $(TOPDIR)/rules.mk for determining
-       the target system instead of the host configuration
+In a cross compile setting it makes no sense to rely on the "uname" values
+reported by the build host system. This patch allows overriding the
+"uname -r", "uname -s" and "uname -m" results with the "UNAME_R", "UNAME_S"
+and "UNAME_M" environment variables.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
 
 --- a/configure
 +++ b/configure
index 4ba12fc274f58e448756f3124e3c3b79f0fb06be..ca43cb278025750f839e41bf7b58160de4ca01ec 100644 (file)
@@ -1,3 +1,15 @@
+pppd: Allow specifying ip-up and ip-down scripts
+
+This patch implements the "ip-up-script" and "ip-down-script" options which
+allow to specify the path of the ip-up and ip-down scripts to call.
+
+These options default to _PATH_IPUP and _PATH_IPDOWN to retain the 
+existing behaviour.
+
+The patch originated from the Debian project.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/ipcp.c
 +++ b/pppd/ipcp.c
 @@ -1939,7 +1939,7 @@ ipcp_up(f)
index 2a30f45bdd8d3b5c88349f954ad5e866ed0beefe..232b10b52119c707b2fc0da5846c1525e07d0064 100644 (file)
@@ -1,3 +1,15 @@
+pppd: Close already open ppp descriptors
+
+When using the kernel PPPoE driver in conjunction with the "persist" option,
+the already open descriptor to /dev/ppp is not closed when the link is
+reestablished. This eventually leads to high CPU load because the stray 
+descriptors are always reported as ready by select().
+
+This patch closes the descriptor if it is already open when establishing a
+new connection. It originated from the Debian project.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/sys-linux.c
 +++ b/pppd/sys-linux.c
 @@ -453,6 +453,13 @@ int generic_establish_ppp (int fd)
index b8c4aaaf6aa791341c9ecf96d642ce400cf267f6..c8a23edd6aef077f087f3c7c4052e32632c57028 100644 (file)
@@ -1,3 +1,14 @@
+pppd: Fix creation of linkpidfile
+
+When pppd is run without "nodetach" or with "updetach", the linkpidfile is
+never created. The call to create_linkpidfile() is protected by a check for
+linkpidfile[0] but this is only filled in when create_linkpidfile() is called.
+
+This patch changes to code to allways uncondiationally call
+create_linkpidfile(), it originated from the Debian project.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/main.c
 +++ b/pppd/main.c
 @@ -773,8 +773,7 @@ detach()
index b65f52ec9d42574b86fd3b0418f997a971066b00..86af1ef412c6ca639b990d0144ffef1c3e1d0d78 100644 (file)
@@ -1,3 +1,16 @@
+pppd: Implement option to strip domain part from MS CHAP response
+
+This patch implements a new boolean option "chapms-strip-domain" which
+strips the leading domain part of the username in a received MS Chap
+response.
+
+When the option is set, all leading chars up to and including the last
+backslash in the username are stripped. The option defaults to false.
+
+The patch originated from the Debian project.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/chap-new.c
 +++ b/pppd/chap-new.c
 @@ -58,6 +58,7 @@ int (*chap_verify_hook)(char *name, char
diff --git a/package/ppp/patches/107-debian_pppatm_cleanup.patch b/package/ppp/patches/107-debian_pppatm_cleanup.patch
deleted file mode 100644 (file)
index a3d80a8..0000000
+++ /dev/null
@@ -1,32 +0,0 @@
---- a/pppd/plugins/pppoatm/pppoatm.c
-+++ b/pppd/plugins/pppoatm/pppoatm.c
-@@ -75,13 +75,14 @@ static int setdevname_pppoatm(const char
-       //info("PPPoATM setdevname_pppoatm: '%s'", cp);
-       memset(&addr, 0, sizeof addr);
-       if (text2atm(cp, (struct sockaddr *) &addr, sizeof(addr),
--          T2A_PVC | T2A_NAME) < 0) {
--               if(doit)
--                   info("atm does not recognize: %s", cp);
-+          T2A_PVC | T2A_NAME | T2A_WILDCARD) < 0) {
-+              if (doit)
-+                      info("cannot parse the ATM address: %s", cp);
-               return 0;
--           }
--      if (!doit) return 1;
--      //if (!dev_set_ok()) return -1;
-+      }
-+      if (!doit)
-+              return 1;
-+
-       memcpy(&pvcaddr, &addr, sizeof pvcaddr);
-       strlcpy(devnam, cp, sizeof devnam);
-       devstat.st_mode = S_IFSOCK;
-@@ -170,7 +171,7 @@ static void disconnect_pppoatm(void)
- void plugin_init(void)
- {
--#if defined(__linux__)
-+#ifdef linux
-       extern int new_style_driver;    /* From sys-linux.c */
-       if (!ppp_available() && !new_style_driver)
-               fatal("Kernel doesn't support ppp_generic - "
diff --git a/package/ppp/patches/107-debian_pppoatm_wildcard.patch b/package/ppp/patches/107-debian_pppoatm_wildcard.patch
new file mode 100644 (file)
index 0000000..eaad2cd
--- /dev/null
@@ -0,0 +1,25 @@
+pppoatm: Allow wildcard ATM devices
+
+When operating pppd's pppoatm plugin with an USB ADSL modem, e.g. an
+Alcatel Speedtouch, the ATM device number might change when the modem is
+reconnected to the USB port or when the host controller resets the USB
+device.
+
+This patch allows to specify the ATM device as wildcard which gives
+enough flexibility to cope with changing device names.
+
+The patch originated from the Debain project.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
+--- a/pppd/plugins/pppoatm/pppoatm.c
++++ b/pppd/plugins/pppoatm/pppoatm.c
+@@ -75,7 +75,7 @@ static int setdevname_pppoatm(const char
+       //info("PPPoATM setdevname_pppoatm: '%s'", cp);
+       memset(&addr, 0, sizeof addr);
+       if (text2atm(cp, (struct sockaddr *) &addr, sizeof(addr),
+-          T2A_PVC | T2A_NAME) < 0) {
++          T2A_PVC | T2A_NAME | T2A_WILDCARD) < 0) {
+                if(doit)
+                    info("atm does not recognize: %s", cp);
+               return 0;
index 0a0691e9838eccc6429500cb998f60415640769f..41d28909be4511d2af4d8dcb651d2bdb34d1f3aa 100644 (file)
@@ -1,3 +1,15 @@
+pppd: Add "replacedefaultroute" and "noreplacedefaultroute" options
+
+This patch implements two new options, "replacedefaultroute" to replace any
+existing system default route when specified and "noreplacedefaultroute" to
+disable the "replacedefaultroute" option, which is useful in multi user
+environments where the administrator wants to allow users to dial pppd
+connections but not allow them to change the system default route.
+
+The patch originated from the Debian project.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/ipcp.c
 +++ b/pppd/ipcp.c
 @@ -198,6 +198,14 @@ static option_t ipcp_option_list[] = {
index acee85ba4058236be6407b726df5591034864fc0..c5457fa515a63270a78916565815edcfd48906d1 100644 (file)
@@ -1,3 +1,15 @@
+pppd: Allow specifying ipv6-up and ipv6-down scripts
+
+This patch implements the "ipv6-up-script" and "ipv6-down-script" options
+which allow to specify the path of the ipv6-up and ipv6-down scripts to call.
+
+These options default to _PATH_IPV6UP and _PATH_IPV6DOWN to retain the
+existing behaviour.
+
+The patch originated from the Debian project.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/main.c
 +++ b/pppd/main.c
 @@ -318,6 +318,8 @@ main(argc, argv)
index af826749c391c8803240ce30a8c563ee82db5269..9db908de8d5505bf48c056c61acefe35efe6c9aa 100644 (file)
@@ -1,3 +1,10 @@
+pppd: tune Linux config defaults for OpenWrt
+
+This patch adjusts a number defaults to properly match the OpenWrt environment.
+It is not intended for upstream.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/Makefile.linux
 +++ b/pppd/Makefile.linux
 @@ -48,7 +48,7 @@ MPPE=y
index 62b09d4a13043b0977fed751e8f5e8b047a2c5aa..3edd11e7f676a3b2fc1d89c8cb3b7f442eef0649 100644 (file)
@@ -1,3 +1,10 @@
+pppd: add support for MPPE and MPPC encryption and compression protocols
+
+This is a forward ported version of ppp-2.4.3-mppe-mppc-1.1.patch.gz found on
+http://mppe-mppc.alphacron.de/ .
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/include/linux/ppp-comp.h
 +++ b/include/linux/ppp-comp.h
 @@ -36,7 +36,7 @@
index 359db14a3afa06a03f17530e1b533e348d89c8e3..87c76ad0e7d4b9c08d28d2c1b07b8f45ce21f426 100644 (file)
@@ -1,3 +1,11 @@
+build: Do not strip binaries on install
+
+Strippign executables should be handled by the distro packaging, not by ppp
+itself. This patch removes the "-s" (strip) switch from all "install" commands
+in order to install unstripped binaries into the destination prefix.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/chat/Makefile.linux
 +++ b/chat/Makefile.linux
 @@ -25,7 +25,7 @@ chat.o:      chat.c
index f0d416f68224707770a13ce998fccbe1c25ae5b8..a369163527707d37cb0b31b85d0abc79b07a52a5 100644 (file)
@@ -1,3 +1,11 @@
+build: Move optimization flags into a separate variable
+
+Isolate optimization related compiler flags from CFLAGS and move them into a
+separate COPTS variable so that it is easier to override optimizations from
+the environment.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/plugins/radius/Makefile.linux
 +++ b/pppd/plugins/radius/Makefile.linux
 @@ -12,7 +12,8 @@ VERSION = $(shell awk -F '"' '/VERSION/ 
index 14d00cf9217ce7442868a2f919eac0a5b1023088..7119fb83f257fea7d1186ea556f5c24d51bed246 100644 (file)
@@ -1,3 +1,10 @@
+pppd: Don't use exponential timeout in discovery phase
+
+This patch removes the exponential timeout increase between PADO or PADS
+discovery attempts.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/plugins/rp-pppoe/discovery.c
 +++ b/pppd/plugins/rp-pppoe/discovery.c
 @@ -548,7 +548,9 @@ discovery(PPPoEConnection *conn)
index 041ae1f86fdfe6bd0f2ae256277d1e37ec0f8d74..fb6c65679ed3b1ffad5d2f90cc6d7cd3bb470566 100644 (file)
@@ -1,3 +1,16 @@
+pppd: Watch out for time warps
+
+On many embedded systems there is no battery backed RTC and a proper system
+time only becomes available through NTP after establishing a connection.
+
+When the clock suddenly jumps forward, the internal accounting (connect time)
+is confused resulting in unreliable data.
+
+This patch implements periodic clock checking to look for time warps, if one
+is detected, the internal counters are adjusted accordingly.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/main.c
 +++ b/pppd/main.c
 @@ -90,6 +90,7 @@
index 32bcad3c31f33150aa81fbaace63fba92a1f2571..1ebcf412fce844fdfe1825e74798237f63c8fc7a 100644 (file)
@@ -1,3 +1,11 @@
+pppd: Cap MTU to the user configured value
+
+This patchs caps the calculated MTU value in lcp.c to the user specified "mru"
+option value. Without this patch pppd would advertise a different MTU value
+compared to what is set on the local interface in some cases.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/lcp.c
 +++ b/pppd/lcp.c
 @@ -1904,12 +1904,12 @@ lcp_up(f)
index c512354a261976e762dc126ce4345749db835a49..25e2a10b852428348dcf438e795d88f1279b694f 100644 (file)
@@ -1,3 +1,15 @@
+pppd: Do not clobber exit codes on hangup
+
+When a modem hangup occurs, pppd unconditionally sets the exit status code
+to EXIT_HANGUP. This patch only sets EXIT_HANGUP if the exit status code is
+not already set to an error value.
+
+The motiviation of this patch is to allow applications which remote control
+pppd to react properly on errors, e.g. only redial (relaunch pppd) if there
+was a hangup, but not if the CHAP authentication failed.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/main.c
 +++ b/pppd/main.c
 @@ -1048,7 +1048,8 @@ get_input()
index fa8b616de06c02d4cfc04a2e2b186304b7bc981c..d8dcc64c8b9367f746235eabcd347887c9402c64 100644 (file)
@@ -1,3 +1,10 @@
+build: Add required CFLAGS for libpcap
+
+This patch adds some flags to required to properly link libpcap within the
+OpenWrt environment.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/Makefile.linux
 +++ b/pppd/Makefile.linux
 @@ -170,8 +170,8 @@ endif
index 5d2c8f1710c765f7a11bb7e6eddf6e86c1dfb287..87b9687ef702fd4924b8dfc837ebc1e8eb9232bd 100644 (file)
@@ -1,3 +1,16 @@
+pppd: Implement support for precompiled pcap filters
+
+This patch implements support for precompiled pcap filters which is useful to
+support dial-on-demand on memory constrained embedded devices without having
+to link the full libpcap into pppd to generate the filters during runtime.
+
+Two new options are introduced; "precompiled-pass-filter" specifies a pre-
+compiled filter file containing rules to match packets which should be passed,
+"precompiled-active-filter" specifies a filter file containing rules to match
+packets which are treated as active.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/Makefile.linux
 +++ b/pppd/Makefile.linux
 @@ -50,6 +50,9 @@ MPPE=y
index 26e6837532b505af23db0eb0cdd61a16c507f57b..a95f4f8c81e8afb83f21e24141526853718a7464 100644 (file)
@@ -1,3 +1,12 @@
+pppd: Support arbitrary interface names
+
+This patch implements a new string option "ifname" which allows to specify
+fully custom PPP interface names on Linux. It does so by renaming the
+allocated pppX device immediately after it has been created to the requested
+interface name.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/main.c
 +++ b/pppd/main.c
 @@ -745,8 +745,11 @@ void
index dc6ed8d1f02913b25cb707c0639c469254ebb24b..0d7fff9b4bf3d1f473b8df8eceda9ea51f295b4a 100644 (file)
@@ -1,3 +1,15 @@
+pppd: Retain foreign default routes on Linux
+
+On Linux, when pppd attempts to delete its default route it does not fill
+the rt_dev field of the struct rtentry used to match the system default route.
+As a consequence, pppd happily deletes any default route even if it belongs
+to another interface.
+
+This patch makes pppd fill out the rt_dev field so that only own default
+routes are ever matched.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/sys-linux.c
 +++ b/pppd/sys-linux.c
 @@ -1743,6 +1743,7 @@ int cifdefaultroute (int unit, u_int32_t
index ae495ee6415ba6694784a74e3334bd7fdfc69420..9a0284eb23329fffbfd8697f20353f75ee1c91a0 100644 (file)
@@ -1,3 +1,16 @@
+pppd: Fill in default gateway on Linux
+
+On Linux, when pppd creates the default route, it does not set the peer
+address as gateway, leading to a default route without gateway address.
+
+This behaviour breaks various downstream programs which attempt to infer
+the default gateway IP address from the system default route entry.
+
+This patch addresses the issue by filling in the peer address as gateway
+when generating the default route entry.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/sys-linux.c
 +++ b/pppd/sys-linux.c
 @@ -1697,6 +1697,9 @@ int sifdefaultroute (int unit, u_int32_t
index 6ddf86a1bafdbe2daceacd8b7de674592cba6536..ec82576cbc7813bc64c3b949e133cae41667a11d 100644 (file)
@@ -1,3 +1,13 @@
+pppd: Remove runtime kernel checks
+
+On embedded system distributions the required kernel features for pppd are
+more or less guaranteed to be present, so there is not much point in
+performing runtime checks, it just increases the binary size.
+
+This patch removes the runtime kernel feature checks.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/sys-linux.c
 +++ b/pppd/sys-linux.c
 @@ -203,7 +203,7 @@ static int driver_is_old       = 0;
        return 0;
 --- a/pppd/plugins/pppoatm/pppoatm.c
 +++ b/pppd/plugins/pppoatm/pppoatm.c
-@@ -171,14 +171,6 @@ static void disconnect_pppoatm(void)
+@@ -170,14 +170,6 @@ static void disconnect_pppoatm(void)
  
  void plugin_init(void)
  {
--#ifdef linux
+-#if defined(__linux__)
 -      extern int new_style_driver;    /* From sys-linux.c */
 -      if (!ppp_available() && !new_style_driver)
 -              fatal("Kernel doesn't support ppp_generic - "
      add_options(Options);
  
      info("RP-PPPoE plugin version %s compiled against pppd %s",
---- a/pppd/plugins/pppol2tp/pppol2tp.c 2010-11-15 12:12:43.000000000 +0000
-+++ b/pppd/plugins/pppol2tp/pppol2tp.c 2012-04-24 15:53:58.806260309 +0100
-@@ -488,12 +488,7 @@ static void pppol2tp_check_options(void)
+--- a/pppd/plugins/pppol2tp/pppol2tp.c
++++ b/pppd/plugins/pppol2tp/pppol2tp.c
+@@ -500,12 +500,7 @@ static void pppol2tp_cleanup(void)
  
  void plugin_init(void)
  {
index 68837206f85352137a868005b7fc423fe3b2e941..94c0263eaa595377191d80b565a136130ee5120a 100644 (file)
@@ -1,3 +1,10 @@
+pppd: Remove the "record" option
+
+On many embedded systems there is not enough space to record PPP session
+information to the permanent storage, therfore remove this option.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/pppd.h
 +++ b/pppd/pppd.h
 @@ -309,7 +309,6 @@ extern int holdoff;        /* Dead time before 
index 018bd5b2a5cd5b400074c691613e1a650ecc82d2..71233200e75c12ed5398d006d56a5ba43aa2d82f 100644 (file)
@@ -1,3 +1,10 @@
+pppd: Disable wtmp support
+
+Many uClibc based environments lack wtmp and utmp support, therfore remove
+the code updating the wtmp information.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/sys-linux.c
 +++ b/pppd/sys-linux.c
 @@ -2254,6 +2254,7 @@ int ppp_available(void)
index 71b4d97743626aa0d099a7e7e9c522559eebec11..edbca7603c5498ae928def866462266063c2524e 100644 (file)
@@ -1,3 +1,10 @@
+pppd: Remove historical protocol names
+
+Remove a number of historical protocol entries from pppd's builtin list, this
+reduced the binary size without loss of features.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/main.c
 +++ b/pppd/main.c
 @@ -882,14 +882,17 @@ struct protocol_list {
index fc342b72d569ac0eb7cf67cacd6e3f21fbd91297..97a79c474a20e41352f980e14258fd66abd3b7b3 100644 (file)
@@ -1,3 +1,12 @@
+pppd: Support "nomp" option even if multilink support is off
+
+This patch moves the "nomp" option entry outside of the defines protecting
+the multilink specific code. The motivation is to allow "nomp" even if pppd
+does not support multilink, so that controlling programs can unconditionally
+pass it to pppd regardless of the compile time features.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/pppd/options.c
 +++ b/pppd/options.c
 @@ -318,13 +318,14 @@ option_t general_options[] = {
index c2f163b81830069aa153179e38d93df7e7e84be2..4f517df764156389ebdb35b63416fc23b81c9c5d 100644 (file)
@@ -1,3 +1,10 @@
+pppol2tp: Provide struct pppol2tpv3_addr to align with Linux
+
+The struct pppol2tpv3_addr is referenced in the current Linux kernel sources
+but not provided by the shipped kernel headers, add it.
+
+Signed-off-by: Jo-Philipp Wich <jow@openwrt.org>
+
 --- a/include/linux/if_pppol2tp.h
 +++ b/include/linux/if_pppol2tp.h
 @@ -32,6 +32,20 @@ struct pppol2tp_addr