ppp: annotate most patches with description and S-o-b

SVN-Revision: 32463
This commit is contained in:
Jo-Philipp Wich 2012-06-19 17:03:24 +00:00
parent f4afa00862
commit 6387e8e458
28 changed files with 280 additions and 39 deletions

View file

@ -1,6 +1,11 @@
configure: Allow overriding uname results
Use values exported from $(TOPDIR)/rules.mk for determining In a cross compile setting it makes no sense to rely on the "uname" values
the target system instead of the host configuration 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 --- a/configure
+++ b/configure +++ b/configure

View 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 --- a/pppd/ipcp.c
+++ b/pppd/ipcp.c +++ b/pppd/ipcp.c
@@ -1939,7 +1939,7 @@ ipcp_up(f) @@ -1939,7 +1939,7 @@ ipcp_up(f)

View 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 --- a/pppd/sys-linux.c
+++ b/pppd/sys-linux.c +++ b/pppd/sys-linux.c
@@ -453,6 +453,13 @@ int generic_establish_ppp (int fd) @@ -453,6 +453,13 @@ int generic_establish_ppp (int fd)

View 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 --- a/pppd/main.c
+++ b/pppd/main.c +++ b/pppd/main.c
@@ -773,8 +773,7 @@ detach() @@ -773,8 +773,7 @@ detach()

View 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 --- a/pppd/chap-new.c
+++ b/pppd/chap-new.c +++ b/pppd/chap-new.c
@@ -58,6 +58,7 @@ int (*chap_verify_hook)(char *name, char @@ -58,6 +58,7 @@ int (*chap_verify_hook)(char *name, char

View file

@ -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 - "

View file

@ -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;

View 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 --- a/pppd/ipcp.c
+++ b/pppd/ipcp.c +++ b/pppd/ipcp.c
@@ -198,6 +198,14 @@ static option_t ipcp_option_list[] = { @@ -198,6 +198,14 @@ static option_t ipcp_option_list[] = {

View 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 --- a/pppd/main.c
+++ b/pppd/main.c +++ b/pppd/main.c
@@ -318,6 +318,8 @@ main(argc, argv) @@ -318,6 +318,8 @@ main(argc, argv)

View 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 --- a/pppd/Makefile.linux
+++ b/pppd/Makefile.linux +++ b/pppd/Makefile.linux
@@ -48,7 +48,7 @@ MPPE=y @@ -48,7 +48,7 @@ MPPE=y

View 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 --- a/include/linux/ppp-comp.h
+++ b/include/linux/ppp-comp.h +++ b/include/linux/ppp-comp.h
@@ -36,7 +36,7 @@ @@ -36,7 +36,7 @@

View 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 --- a/chat/Makefile.linux
+++ b/chat/Makefile.linux +++ b/chat/Makefile.linux
@@ -25,7 +25,7 @@ chat.o: chat.c @@ -25,7 +25,7 @@ chat.o: chat.c

View 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 --- a/pppd/plugins/radius/Makefile.linux
+++ b/pppd/plugins/radius/Makefile.linux +++ b/pppd/plugins/radius/Makefile.linux
@@ -12,7 +12,8 @@ VERSION = $(shell awk -F '"' '/VERSION/ @@ -12,7 +12,8 @@ VERSION = $(shell awk -F '"' '/VERSION/

View 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 --- a/pppd/plugins/rp-pppoe/discovery.c
+++ b/pppd/plugins/rp-pppoe/discovery.c +++ b/pppd/plugins/rp-pppoe/discovery.c
@@ -548,7 +548,9 @@ discovery(PPPoEConnection *conn) @@ -548,7 +548,9 @@ discovery(PPPoEConnection *conn)

View 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 --- a/pppd/main.c
+++ b/pppd/main.c +++ b/pppd/main.c
@@ -90,6 +90,7 @@ @@ -90,6 +90,7 @@

View 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 --- a/pppd/lcp.c
+++ b/pppd/lcp.c +++ b/pppd/lcp.c
@@ -1904,12 +1904,12 @@ lcp_up(f) @@ -1904,12 +1904,12 @@ lcp_up(f)

View 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 --- a/pppd/main.c
+++ b/pppd/main.c +++ b/pppd/main.c
@@ -1048,7 +1048,8 @@ get_input() @@ -1048,7 +1048,8 @@ get_input()

View 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 --- a/pppd/Makefile.linux
+++ b/pppd/Makefile.linux +++ b/pppd/Makefile.linux
@@ -170,8 +170,8 @@ endif @@ -170,8 +170,8 @@ endif

View 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 --- a/pppd/Makefile.linux
+++ b/pppd/Makefile.linux +++ b/pppd/Makefile.linux
@@ -50,6 +50,9 @@ MPPE=y @@ -50,6 +50,9 @@ MPPE=y

View 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 --- a/pppd/main.c
+++ b/pppd/main.c +++ b/pppd/main.c
@@ -745,8 +745,11 @@ void @@ -745,8 +745,11 @@ void

View 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 --- a/pppd/sys-linux.c
+++ b/pppd/sys-linux.c +++ b/pppd/sys-linux.c
@@ -1743,6 +1743,7 @@ int cifdefaultroute (int unit, u_int32_t @@ -1743,6 +1743,7 @@ int cifdefaultroute (int unit, u_int32_t

View 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 --- a/pppd/sys-linux.c
+++ b/pppd/sys-linux.c +++ b/pppd/sys-linux.c
@@ -1697,6 +1697,9 @@ int sifdefaultroute (int unit, u_int32_t @@ -1697,6 +1697,9 @@ int sifdefaultroute (int unit, u_int32_t

View 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 --- a/pppd/sys-linux.c
+++ b/pppd/sys-linux.c +++ b/pppd/sys-linux.c
@@ -203,7 +203,7 @@ static int driver_is_old = 0; @@ -203,7 +203,7 @@ static int driver_is_old = 0;
@ -88,11 +98,11 @@
return 0; return 0;
--- a/pppd/plugins/pppoatm/pppoatm.c --- a/pppd/plugins/pppoatm/pppoatm.c
+++ b/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) void plugin_init(void)
{ {
-#ifdef linux -#if defined(__linux__)
- extern int new_style_driver; /* From sys-linux.c */ - extern int new_style_driver; /* From sys-linux.c */
- if (!ppp_available() && !new_style_driver) - if (!ppp_available() && !new_style_driver)
- fatal("Kernel doesn't support ppp_generic - " - fatal("Kernel doesn't support ppp_generic - "
@ -126,9 +136,9 @@
add_options(Options); add_options(Options);
info("RP-PPPoE plugin version %s compiled against pppd %s", info("RP-PPPoE plugin version %s compiled against pppd %s",
--- a/pppd/plugins/pppol2tp/pppol2tp.c 2010-11-15 12:12:43.000000000 +0000 --- a/pppd/plugins/pppol2tp/pppol2tp.c
+++ b/pppd/plugins/pppol2tp/pppol2tp.c 2012-04-24 15:53:58.806260309 +0100 +++ b/pppd/plugins/pppol2tp/pppol2tp.c
@@ -488,12 +488,7 @@ static void pppol2tp_check_options(void) @@ -500,12 +500,7 @@ static void pppol2tp_cleanup(void)
void plugin_init(void) void plugin_init(void)
{ {

View 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 --- a/pppd/pppd.h
+++ b/pppd/pppd.h +++ b/pppd/pppd.h
@@ -309,7 +309,6 @@ extern int holdoff; /* Dead time before @@ -309,7 +309,6 @@ extern int holdoff; /* Dead time before

View 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 --- a/pppd/sys-linux.c
+++ b/pppd/sys-linux.c +++ b/pppd/sys-linux.c
@@ -2254,6 +2254,7 @@ int ppp_available(void) @@ -2254,6 +2254,7 @@ int ppp_available(void)

View 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 --- a/pppd/main.c
+++ b/pppd/main.c +++ b/pppd/main.c
@@ -882,14 +882,17 @@ struct protocol_list { @@ -882,14 +882,17 @@ struct protocol_list {

View 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 --- a/pppd/options.c
+++ b/pppd/options.c +++ b/pppd/options.c
@@ -318,13 +318,14 @@ option_t general_options[] = { @@ -318,13 +318,14 @@ option_t general_options[] = {

View 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 --- a/include/linux/if_pppol2tp.h
+++ b/include/linux/if_pppol2tp.h +++ b/include/linux/if_pppol2tp.h
@@ -32,6 +32,20 @@ struct pppol2tp_addr @@ -32,6 +32,20 @@ struct pppol2tp_addr