mirror of
https://github.com/openwrt/openwrt.git
synced 2024-12-28 09:39:00 +00:00
ppp: update to version 2.4.7.git-2018-06-23
This bumps ppp to latest git version. There is one upstream commit, which changes DES encryption calls from libcrypt / glibc to openssl. As long as we don't use glibc-2.28, revert this commit. Signed-off-by: Martin Schiller <ms@dev.tdt.de>
This commit is contained in:
parent
f01044e85c
commit
eaaee181d1
@ -9,16 +9,20 @@ include $(TOPDIR)/rules.mk
|
|||||||
include $(INCLUDE_DIR)/kernel.mk
|
include $(INCLUDE_DIR)/kernel.mk
|
||||||
|
|
||||||
PKG_NAME:=ppp
|
PKG_NAME:=ppp
|
||||||
PKG_VERSION:=2.4.7
|
PKG_RELEASE:=1
|
||||||
PKG_RELEASE:=14
|
|
||||||
|
|
||||||
PKG_SOURCE:=$(PKG_NAME)-$(PKG_VERSION).tar.gz
|
PKG_SOURCE_PROTO:=git
|
||||||
PKG_SOURCE_URL:=https://download.samba.org/pub/ppp/
|
PKG_SOURCE_URL:=https://github.com/paulusmack/ppp
|
||||||
PKG_HASH:=02e0a3dd3e4799e33103f70ec7df75348c8540966ee7c948e4ed8a42bbccfb30
|
PKG_SOURCE_DATE:=2018-06-23
|
||||||
|
PKG_SOURCE_VERSION:=5c765a67fd25f9d84e71ed61ace37c8c97f6be15
|
||||||
|
PKG_MIRROR_HASH:=a79e62d0569e3d6a3207f2a693532d34629fb5b3b9d8c1d9b9786ebd1d1de70f
|
||||||
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
|
||||||
PKG_LICENSE:=BSD-4-Clause
|
PKG_LICENSE:=BSD-4-Clause
|
||||||
PKG_CPE_ID:=cpe:/a:samba:ppp
|
PKG_CPE_ID:=cpe:/a:samba:ppp
|
||||||
|
|
||||||
|
PKG_RELEASE_VERSION:=2.4.7
|
||||||
|
PKG_VERSION:=$(PKG_RELEASE_VERSION).git-$(PKG_SOURCE_DATE)
|
||||||
|
|
||||||
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
|
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)-$(BUILD_VARIANT)/$(PKG_NAME)-$(PKG_VERSION)
|
||||||
|
|
||||||
PKG_BUILD_DEPENDS:=libpcap
|
PKG_BUILD_DEPENDS:=libpcap
|
||||||
@ -215,7 +219,7 @@ define Package/ppp/script_install
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/ppp/install
|
define Package/ppp/install
|
||||||
$(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_VERSION)
|
$(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)
|
||||||
$(INSTALL_DIR) $(1)/usr/sbin
|
$(INSTALL_DIR) $(1)/usr/sbin
|
||||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/pppd $(1)/usr/sbin/
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/sbin/pppd $(1)/usr/sbin/
|
||||||
$(INSTALL_DIR) $(1)/etc/ppp
|
$(INSTALL_DIR) $(1)/etc/ppp
|
||||||
@ -232,21 +236,21 @@ endef
|
|||||||
Package/ppp-multilink/install=$(Package/ppp/install)
|
Package/ppp-multilink/install=$(Package/ppp/install)
|
||||||
|
|
||||||
define Package/ppp-mod-pppoa/install
|
define Package/ppp-mod-pppoa/install
|
||||||
$(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_VERSION)
|
$(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)
|
||||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_VERSION)/pppoatm.so \
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_RELEASE_VERSION)/pppoatm.so \
|
||||||
$(1)/usr/lib/pppd/$(PKG_VERSION)/
|
$(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/ppp-mod-pppoe/install
|
define Package/ppp-mod-pppoe/install
|
||||||
$(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_VERSION)
|
$(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)
|
||||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_VERSION)/rp-pppoe.so \
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_RELEASE_VERSION)/rp-pppoe.so \
|
||||||
$(1)/usr/lib/pppd/$(PKG_VERSION)/
|
$(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/ppp-mod-radius/install
|
define Package/ppp-mod-radius/install
|
||||||
$(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_VERSION)
|
$(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)
|
||||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_VERSION)/radius.so \
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_RELEASE_VERSION)/radius.so \
|
||||||
$(1)/usr/lib/pppd/$(PKG_VERSION)/
|
$(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)/
|
||||||
$(INSTALL_DIR) $(1)/etc/ppp
|
$(INSTALL_DIR) $(1)/etc/ppp
|
||||||
$(INSTALL_DATA) ./files/etc/ppp/radius.conf $(1)/etc/ppp/
|
$(INSTALL_DATA) ./files/etc/ppp/radius.conf $(1)/etc/ppp/
|
||||||
$(INSTALL_DIR) $(1)/etc/ppp/radius
|
$(INSTALL_DIR) $(1)/etc/ppp/radius
|
||||||
@ -257,23 +261,23 @@ define Package/ppp-mod-radius/install
|
|||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/ppp-mod-pppol2tp/install
|
define Package/ppp-mod-pppol2tp/install
|
||||||
$(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_VERSION)
|
$(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)
|
||||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_VERSION)/pppol2tp.so \
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_RELEASE_VERSION)/pppol2tp.so \
|
||||||
$(1)/usr/lib/pppd/$(PKG_VERSION)/
|
$(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/ppp-mod-pptp/install
|
define Package/ppp-mod-pptp/install
|
||||||
$(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_VERSION)
|
$(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)
|
||||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_VERSION)/pptp.so \
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_RELEASE_VERSION)/pptp.so \
|
||||||
$(1)/usr/lib/pppd/$(PKG_VERSION)/
|
$(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)/
|
||||||
$(INSTALL_DIR) $(1)/etc/ppp
|
$(INSTALL_DIR) $(1)/etc/ppp
|
||||||
$(INSTALL_DATA) ./files/etc/ppp/options.pptp $(1)/etc/ppp/
|
$(INSTALL_DATA) ./files/etc/ppp/options.pptp $(1)/etc/ppp/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/ppp-mod-passwordfd/install
|
define Package/ppp-mod-passwordfd/install
|
||||||
$(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_VERSION)
|
$(INSTALL_DIR) $(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)
|
||||||
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_VERSION)/passwordfd.so \
|
$(INSTALL_BIN) $(PKG_INSTALL_DIR)/lib/pppd/$(PKG_RELEASE_VERSION)/passwordfd.so \
|
||||||
$(1)/usr/lib/pppd/$(PKG_VERSION)/
|
$(1)/usr/lib/pppd/$(PKG_RELEASE_VERSION)/
|
||||||
endef
|
endef
|
||||||
|
|
||||||
define Package/chat/install
|
define Package/chat/install
|
||||||
|
@ -1,39 +0,0 @@
|
|||||||
--- a/pppd/plugins/radius/Makefile.linux
|
|
||||||
+++ b/pppd/plugins/radius/Makefile.linux
|
|
||||||
@@ -43,13 +43,13 @@ install: all
|
|
||||||
$(INSTALL) -c -m 444 pppd-radattr.8 $(MANDIR)
|
|
||||||
|
|
||||||
radius.so: radius.o libradiusclient.a
|
|
||||||
- $(CC) -o radius.so -shared radius.o libradiusclient.a
|
|
||||||
+ $(CC) $(CFLAGS) -o radius.so -shared radius.o libradiusclient.a
|
|
||||||
|
|
||||||
radattr.so: radattr.o
|
|
||||||
- $(CC) -o radattr.so -shared radattr.o
|
|
||||||
+ $(CC) $(CFLAGS) -o radattr.so -shared radattr.o
|
|
||||||
|
|
||||||
radrealms.so: radrealms.o
|
|
||||||
- $(CC) -o radrealms.so -shared radrealms.o
|
|
||||||
+ $(CC) $(CFLAGS) -o radrealms.so -shared radrealms.o
|
|
||||||
|
|
||||||
CLIENTOBJS = avpair.o buildreq.o config.o dict.o ip_util.o \
|
|
||||||
clientid.o sendserver.o lock.o util.o md5.o
|
|
||||||
--- a/pppd/plugins/rp-pppoe/Makefile.linux
|
|
||||||
+++ b/pppd/plugins/rp-pppoe/Makefile.linux
|
|
||||||
@@ -30,7 +30,7 @@ CFLAGS=$(COPTS) -I../../../include '-DRP
|
|
||||||
all: rp-pppoe.so pppoe-discovery
|
|
||||||
|
|
||||||
pppoe-discovery: pppoe-discovery.o debug.o
|
|
||||||
- $(CC) -o pppoe-discovery pppoe-discovery.o debug.o
|
|
||||||
+ $(CC) $(CFLAGS) -o pppoe-discovery pppoe-discovery.o debug.o
|
|
||||||
|
|
||||||
pppoe-discovery.o: pppoe-discovery.c
|
|
||||||
$(CC) $(CFLAGS) -c -o pppoe-discovery.o pppoe-discovery.c
|
|
||||||
@@ -39,7 +39,7 @@ debug.o: debug.c
|
|
||||||
$(CC) $(CFLAGS) -c -o debug.o debug.c
|
|
||||||
|
|
||||||
rp-pppoe.so: plugin.o discovery.o if.o common.o
|
|
||||||
- $(CC) -o rp-pppoe.so -shared plugin.o discovery.o if.o common.o
|
|
||||||
+ $(CC) $(CFLAGS) -o rp-pppoe.so -shared plugin.o discovery.o if.o common.o
|
|
||||||
|
|
||||||
install: all
|
|
||||||
$(INSTALL) -d -m 755 $(LIBDIR)
|
|
@ -48,7 +48,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
}
|
}
|
||||||
--- a/pppd/main.c
|
--- a/pppd/main.c
|
||||||
+++ b/pppd/main.c
|
+++ b/pppd/main.c
|
||||||
@@ -316,6 +316,9 @@ main(argc, argv)
|
@@ -308,6 +308,9 @@ main(argc, argv)
|
||||||
struct protent *protp;
|
struct protent *protp;
|
||||||
char numbuf[16];
|
char numbuf[16];
|
||||||
|
|
||||||
@ -60,18 +60,18 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
--- a/pppd/options.c
|
--- a/pppd/options.c
|
||||||
+++ b/pppd/options.c
|
+++ b/pppd/options.c
|
||||||
@@ -114,6 +114,8 @@ char linkname[MAXPATHLEN]; /* logical na
|
@@ -118,6 +118,8 @@ bool tune_kernel; /* may alter kernel s
|
||||||
bool tune_kernel; /* may alter kernel settings */
|
|
||||||
int connect_delay = 1000; /* wait this many ms after connect script */
|
int connect_delay = 1000; /* wait this many ms after connect script */
|
||||||
int req_unit = -1; /* requested interface unit */
|
int req_unit = -1; /* requested interface unit */
|
||||||
|
char req_ifname[MAXIFNAMELEN]; /* requested interface name */
|
||||||
+char path_ipup[MAXPATHLEN]; /* pathname of ip-up script */
|
+char path_ipup[MAXPATHLEN]; /* pathname of ip-up script */
|
||||||
+char path_ipdown[MAXPATHLEN];/* pathname of ip-down script */
|
+char path_ipdown[MAXPATHLEN];/* pathname of ip-down script */
|
||||||
bool multilink = 0; /* Enable multilink operation */
|
bool multilink = 0; /* Enable multilink operation */
|
||||||
char *bundle_name = NULL; /* bundle name for multilink */
|
char *bundle_name = NULL; /* bundle name for multilink */
|
||||||
bool dump_options; /* print out option values */
|
bool dump_options; /* print out option values */
|
||||||
@@ -299,6 +301,13 @@ option_t general_options[] = {
|
@@ -317,6 +319,13 @@ option_t general_options[] = {
|
||||||
"Unset user environment variable",
|
"Metric to use for the default route (Linux only; -1 for default behavior)",
|
||||||
OPT_A2PRINTER | OPT_NOPRINT, (void *)user_unsetprint },
|
OPT_PRIV|OPT_LLIMIT|OPT_INITONLY, NULL, 0, -1 },
|
||||||
|
|
||||||
+ { "ip-up-script", o_string, path_ipup,
|
+ { "ip-up-script", o_string, path_ipup,
|
||||||
+ "Set pathname of ip-up script",
|
+ "Set pathname of ip-up script",
|
||||||
@ -85,10 +85,10 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
"Enable multilink operation", OPT_PRIO | 1 },
|
"Enable multilink operation", OPT_PRIO | 1 },
|
||||||
--- a/pppd/pppd.h
|
--- a/pppd/pppd.h
|
||||||
+++ b/pppd/pppd.h
|
+++ b/pppd/pppd.h
|
||||||
@@ -318,6 +318,8 @@ extern bool tune_kernel; /* May alter ke
|
@@ -332,6 +332,8 @@ extern int connect_delay; /* Time to del
|
||||||
extern int connect_delay; /* Time to delay after connect script */
|
|
||||||
extern int max_data_rate; /* max bytes/sec through charshunt */
|
extern int max_data_rate; /* max bytes/sec through charshunt */
|
||||||
extern int req_unit; /* interface unit number to use */
|
extern int req_unit; /* interface unit number to use */
|
||||||
|
extern char req_ifname[MAXIFNAMELEN]; /* interface name to use */
|
||||||
+extern char path_ipup[MAXPATHLEN]; /* pathname of ip-up script */
|
+extern char path_ipup[MAXPATHLEN]; /* pathname of ip-up script */
|
||||||
+extern char path_ipdown[MAXPATHLEN]; /* pathname of ip-down script */
|
+extern char path_ipdown[MAXPATHLEN]; /* pathname of ip-down script */
|
||||||
extern bool multilink; /* enable multilink operation */
|
extern bool multilink; /* enable multilink operation */
|
||||||
|
@ -12,7 +12,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
--- a/pppd/sys-linux.c
|
--- a/pppd/sys-linux.c
|
||||||
+++ b/pppd/sys-linux.c
|
+++ b/pppd/sys-linux.c
|
||||||
@@ -458,6 +458,13 @@ int generic_establish_ppp (int fd)
|
@@ -460,6 +460,13 @@ int generic_establish_ppp (int fd)
|
||||||
if (new_style_driver) {
|
if (new_style_driver) {
|
||||||
int flags;
|
int flags;
|
||||||
|
|
||||||
|
@ -11,7 +11,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
--- a/pppd/main.c
|
--- a/pppd/main.c
|
||||||
+++ b/pppd/main.c
|
+++ b/pppd/main.c
|
||||||
@@ -773,8 +773,7 @@ detach()
|
@@ -768,8 +768,7 @@ detach()
|
||||||
/* update pid files if they have been written already */
|
/* update pid files if they have been written already */
|
||||||
if (pidfilename[0])
|
if (pidfilename[0])
|
||||||
create_pidfile(pid);
|
create_pidfile(pid);
|
||||||
|
@ -161,7 +161,7 @@
|
|||||||
} else {
|
} else {
|
||||||
--- a/pppd/pppd.h
|
--- a/pppd/pppd.h
|
||||||
+++ b/pppd/pppd.h
|
+++ b/pppd/pppd.h
|
||||||
@@ -585,7 +585,7 @@ void demand_conf __P((void)); /* config
|
@@ -599,7 +599,7 @@ void demand_conf __P((void)); /* config
|
||||||
void demand_block __P((void)); /* set all NPs to queue up packets */
|
void demand_block __P((void)); /* set all NPs to queue up packets */
|
||||||
void demand_unblock __P((void)); /* set all NPs to pass packets */
|
void demand_unblock __P((void)); /* set all NPs to pass packets */
|
||||||
void demand_discard __P((void)); /* set all NPs to discard packets */
|
void demand_discard __P((void)); /* set all NPs to discard packets */
|
||||||
|
@ -125,9 +125,9 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
bool old_vj; /* use old (short) form of VJ option? */
|
bool old_vj; /* use old (short) form of VJ option? */
|
||||||
--- a/pppd/pppd.8
|
--- a/pppd/pppd.8
|
||||||
+++ b/pppd/pppd.8
|
+++ b/pppd/pppd.8
|
||||||
@@ -121,6 +121,11 @@ the gateway, when IPCP negotiation is su
|
@@ -127,6 +127,11 @@ is no other default route with the same
|
||||||
This entry is removed when the PPP connection is broken. This option
|
value of -1, the route is only added if there is no default route at
|
||||||
is privileged if the \fInodefaultroute\fR option has been specified.
|
all.
|
||||||
.TP
|
.TP
|
||||||
+.B replacedefaultroute
|
+.B replacedefaultroute
|
||||||
+This option is a flag to the defaultroute option. If defaultroute is
|
+This option is a flag to the defaultroute option. If defaultroute is
|
||||||
@ -137,7 +137,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
.B disconnect \fIscript
|
.B disconnect \fIscript
|
||||||
Execute the command specified by \fIscript\fR, by passing it to a
|
Execute the command specified by \fIscript\fR, by passing it to a
|
||||||
shell, after
|
shell, after
|
||||||
@@ -734,7 +739,12 @@ disable both forms of hardware flow cont
|
@@ -740,7 +745,12 @@ disable both forms of hardware flow cont
|
||||||
.TP
|
.TP
|
||||||
.B nodefaultroute
|
.B nodefaultroute
|
||||||
Disable the \fIdefaultroute\fR option. The system administrator who
|
Disable the \fIdefaultroute\fR option. The system administrator who
|
||||||
@ -153,7 +153,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
.B nodeflate
|
.B nodeflate
|
||||||
--- a/pppd/pppd.h
|
--- a/pppd/pppd.h
|
||||||
+++ b/pppd/pppd.h
|
+++ b/pppd/pppd.h
|
||||||
@@ -667,7 +667,7 @@ int sif6addr __P((int, eui64_t, eui64_t
|
@@ -681,7 +681,7 @@ int sif6addr __P((int, eui64_t, eui64_t
|
||||||
int cif6addr __P((int, eui64_t, eui64_t));
|
int cif6addr __P((int, eui64_t, eui64_t));
|
||||||
/* Remove an IPv6 address from i/f */
|
/* Remove an IPv6 address from i/f */
|
||||||
#endif
|
#endif
|
||||||
@ -173,7 +173,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
static u_int32_t proxy_arp_addr; /* Addr for proxy arp entry added */
|
static u_int32_t proxy_arp_addr; /* Addr for proxy arp entry added */
|
||||||
static char proxy_arp_dev[16]; /* Device for proxy arp entry */
|
static char proxy_arp_dev[16]; /* Device for proxy arp entry */
|
||||||
static u_int32_t our_old_addr; /* for detecting address changes */
|
static u_int32_t our_old_addr; /* for detecting address changes */
|
||||||
@@ -1552,6 +1554,9 @@ static int read_route_table(struct rtent
|
@@ -1570,6 +1572,9 @@ static int read_route_table(struct rtent
|
||||||
p = NULL;
|
p = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -183,7 +183,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
SIN_ADDR(rt->rt_dst) = strtoul(cols[route_dest_col], NULL, 16);
|
SIN_ADDR(rt->rt_dst) = strtoul(cols[route_dest_col], NULL, 16);
|
||||||
SIN_ADDR(rt->rt_gateway) = strtoul(cols[route_gw_col], NULL, 16);
|
SIN_ADDR(rt->rt_gateway) = strtoul(cols[route_gw_col], NULL, 16);
|
||||||
SIN_ADDR(rt->rt_genmask) = strtoul(cols[route_mask_col], NULL, 16);
|
SIN_ADDR(rt->rt_genmask) = strtoul(cols[route_mask_col], NULL, 16);
|
||||||
@@ -1621,20 +1626,51 @@ int have_route_to(u_int32_t addr)
|
@@ -1642,20 +1647,52 @@ int have_route_to(u_int32_t addr)
|
||||||
/********************************************************************
|
/********************************************************************
|
||||||
*
|
*
|
||||||
* sifdefaultroute - assign a default route through the address given.
|
* sifdefaultroute - assign a default route through the address given.
|
||||||
@ -193,10 +193,10 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
-{
|
-{
|
||||||
- struct rtentry rt;
|
- struct rtentry rt;
|
||||||
-
|
-
|
||||||
- if (defaultroute_exists(&rt) && strcmp(rt.rt_dev, ifname) != 0) {
|
- if (defaultroute_exists(&rt, dfl_route_metric) && strcmp(rt.rt_dev, ifname) != 0) {
|
||||||
- if (rt.rt_flags & RTF_GATEWAY)
|
- if (rt.rt_flags & RTF_GATEWAY)
|
||||||
- error("not replacing existing default route via %I",
|
- error("not replacing existing default route via %I with metric %d",
|
||||||
- SIN_ADDR(rt.rt_gateway));
|
- SIN_ADDR(rt.rt_gateway), dfl_route_metric);
|
||||||
- else
|
- else
|
||||||
+ *
|
+ *
|
||||||
+ * If the global default_rt_repl_rest flag is set, then this function
|
+ * If the global default_rt_repl_rest flag is set, then this function
|
||||||
@ -218,16 +218,16 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
+ are called again, we will delete the current default route
|
+ are called again, we will delete the current default route
|
||||||
+ and set the new default route in this function.
|
+ and set the new default route in this function.
|
||||||
+ - this is normally only the case the doing demand: */
|
+ - this is normally only the case the doing demand: */
|
||||||
+ if (defaultroute_exists(&tmp_rt))
|
+ if (defaultroute_exists(&tmp_rt, dfl_route_metric))
|
||||||
+ del_rt = &tmp_rt;
|
+ del_rt = &tmp_rt;
|
||||||
+ } else if (defaultroute_exists(&old_def_rt) &&
|
+ } else if (defaultroute_exists(&old_def_rt, dfl_route_metric) &&
|
||||||
+ strcmp(old_def_rt.rt_dev, ifname) != 0) {
|
+ strcmp(old_def_rt.rt_dev, ifname) != 0) {
|
||||||
+ /* We did not yet replace an existing default route, let's
|
+ /* We did not yet replace an existing default route, let's
|
||||||
+ check if we should save and replace a default route: */
|
+ check if we should save and replace a default route: */
|
||||||
+ if (old_def_rt.rt_flags & RTF_GATEWAY) {
|
+ if (old_def_rt.rt_flags & RTF_GATEWAY) {
|
||||||
+ if (!replace) {
|
+ if (!replace) {
|
||||||
+ error("not replacing existing default route via %I",
|
+ error("not replacing existing default route via %I with metric %d",
|
||||||
+ SIN_ADDR(old_def_rt.rt_gateway));
|
+ SIN_ADDR(old_def_rt.rt_gateway), dfl_route_metric);
|
||||||
+ return 0;
|
+ return 0;
|
||||||
+ } else {
|
+ } else {
|
||||||
+ /* we need to copy rt_dev because we need it permanent too: */
|
+ /* we need to copy rt_dev because we need it permanent too: */
|
||||||
@ -235,20 +235,21 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
+ strcpy(tmp_dev, old_def_rt.rt_dev);
|
+ strcpy(tmp_dev, old_def_rt.rt_dev);
|
||||||
+ old_def_rt.rt_dev = tmp_dev;
|
+ old_def_rt.rt_dev = tmp_dev;
|
||||||
+
|
+
|
||||||
+ notice("replacing old default route to %s [%I]",
|
+ notice("replacing old default route to %s [%I] with metric %d",
|
||||||
+ old_def_rt.rt_dev, SIN_ADDR(old_def_rt.rt_gateway));
|
+ old_def_rt.rt_dev, SIN_ADDR(old_def_rt.rt_gateway),
|
||||||
|
+ dfl_route_metric);
|
||||||
+ default_rt_repl_rest = 1;
|
+ default_rt_repl_rest = 1;
|
||||||
+ del_rt = &old_def_rt;
|
+ del_rt = &old_def_rt;
|
||||||
+ }
|
+ }
|
||||||
+ } else
|
+ } else
|
||||||
error("not replacing existing default route through %s",
|
error("not replacing existing default route through %s with metric %d",
|
||||||
- rt.rt_dev);
|
- rt.rt_dev, dfl_route_metric);
|
||||||
- return 0;
|
- return 0;
|
||||||
+ old_def_rt.rt_dev);
|
+ old_def_rt.rt_dev, dfl_route_metric);
|
||||||
}
|
}
|
||||||
|
|
||||||
memset (&rt, 0, sizeof (rt));
|
memset (&rt, 0, sizeof (rt));
|
||||||
@@ -1649,10 +1685,16 @@ int sifdefaultroute (int unit, u_int32_t
|
@@ -1671,10 +1708,16 @@ int sifdefaultroute (int unit, u_int32_t
|
||||||
|
|
||||||
rt.rt_flags = RTF_UP;
|
rt.rt_flags = RTF_UP;
|
||||||
if (ioctl(sock_fd, SIOCADDRT, &rt) < 0) {
|
if (ioctl(sock_fd, SIOCADDRT, &rt) < 0) {
|
||||||
@ -266,7 +267,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
have_default_route = 1;
|
have_default_route = 1;
|
||||||
return 1;
|
return 1;
|
||||||
@@ -1683,11 +1725,21 @@ int cifdefaultroute (int unit, u_int32_t
|
@@ -1708,11 +1751,21 @@ int cifdefaultroute (int unit, u_int32_t
|
||||||
rt.rt_flags = RTF_UP;
|
rt.rt_flags = RTF_UP;
|
||||||
if (ioctl(sock_fd, SIOCDELRT, &rt) < 0 && errno != ESRCH) {
|
if (ioctl(sock_fd, SIOCDELRT, &rt) < 0 && errno != ESRCH) {
|
||||||
if (still_ppp()) {
|
if (still_ppp()) {
|
||||||
|
@ -12,7 +12,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
--- a/pppd/main.c
|
--- a/pppd/main.c
|
||||||
+++ b/pppd/main.c
|
+++ b/pppd/main.c
|
||||||
@@ -318,6 +318,8 @@ main(argc, argv)
|
@@ -310,6 +310,8 @@ main(argc, argv)
|
||||||
|
|
||||||
strlcpy(path_ipup, _PATH_IPUP, sizeof(path_ipup));
|
strlcpy(path_ipup, _PATH_IPUP, sizeof(path_ipup));
|
||||||
strlcpy(path_ipdown, _PATH_IPDOWN, sizeof(path_ipdown));
|
strlcpy(path_ipdown, _PATH_IPDOWN, sizeof(path_ipdown));
|
||||||
@ -23,8 +23,8 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
new_phase(PHASE_INITIALIZE);
|
new_phase(PHASE_INITIALIZE);
|
||||||
--- a/pppd/options.c
|
--- a/pppd/options.c
|
||||||
+++ b/pppd/options.c
|
+++ b/pppd/options.c
|
||||||
@@ -116,6 +116,8 @@ int connect_delay = 1000; /* wait this m
|
@@ -120,6 +120,8 @@ int req_unit = -1; /* requested interfa
|
||||||
int req_unit = -1; /* requested interface unit */
|
char req_ifname[MAXIFNAMELEN]; /* requested interface name */
|
||||||
char path_ipup[MAXPATHLEN]; /* pathname of ip-up script */
|
char path_ipup[MAXPATHLEN]; /* pathname of ip-up script */
|
||||||
char path_ipdown[MAXPATHLEN];/* pathname of ip-down script */
|
char path_ipdown[MAXPATHLEN];/* pathname of ip-down script */
|
||||||
+char path_ipv6up[MAXPATHLEN]; /* pathname of ipv6-up script */
|
+char path_ipv6up[MAXPATHLEN]; /* pathname of ipv6-up script */
|
||||||
@ -32,7 +32,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
bool multilink = 0; /* Enable multilink operation */
|
bool multilink = 0; /* Enable multilink operation */
|
||||||
char *bundle_name = NULL; /* bundle name for multilink */
|
char *bundle_name = NULL; /* bundle name for multilink */
|
||||||
bool dump_options; /* print out option values */
|
bool dump_options; /* print out option values */
|
||||||
@@ -308,6 +310,13 @@ option_t general_options[] = {
|
@@ -326,6 +328,13 @@ option_t general_options[] = {
|
||||||
"Set pathname of ip-down script",
|
"Set pathname of ip-down script",
|
||||||
OPT_PRIV|OPT_STATIC, NULL, MAXPATHLEN },
|
OPT_PRIV|OPT_STATIC, NULL, MAXPATHLEN },
|
||||||
|
|
||||||
@ -84,8 +84,8 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
}
|
}
|
||||||
--- a/pppd/pppd.h
|
--- a/pppd/pppd.h
|
||||||
+++ b/pppd/pppd.h
|
+++ b/pppd/pppd.h
|
||||||
@@ -320,6 +320,8 @@ extern int max_data_rate; /* max bytes/s
|
@@ -334,6 +334,8 @@ extern int req_unit; /* interface unit n
|
||||||
extern int req_unit; /* interface unit number to use */
|
extern char req_ifname[MAXIFNAMELEN]; /* interface name to use */
|
||||||
extern char path_ipup[MAXPATHLEN]; /* pathname of ip-up script */
|
extern char path_ipup[MAXPATHLEN]; /* pathname of ip-up script */
|
||||||
extern char path_ipdown[MAXPATHLEN]; /* pathname of ip-down script */
|
extern char path_ipdown[MAXPATHLEN]; /* pathname of ip-down script */
|
||||||
+extern char path_ipv6up[MAXPATHLEN]; /* pathname of ipv6-up script */
|
+extern char path_ipv6up[MAXPATHLEN]; /* pathname of ipv6-up script */
|
||||||
|
@ -42,7 +42,7 @@
|
|||||||
*/
|
*/
|
||||||
--- a/pppd/pppd.8
|
--- a/pppd/pppd.8
|
||||||
+++ b/pppd/pppd.8
|
+++ b/pppd/pppd.8
|
||||||
@@ -563,6 +563,11 @@ to 1) if the \fIproxyarp\fR option is us
|
@@ -569,6 +569,11 @@ to 1) if the \fIproxyarp\fR option is us
|
||||||
dynamic IP address option (i.e. set /proc/sys/net/ipv4/ip_dynaddr to
|
dynamic IP address option (i.e. set /proc/sys/net/ipv4/ip_dynaddr to
|
||||||
1) in demand mode if the local address changes.
|
1) in demand mode if the local address changes.
|
||||||
.TP
|
.TP
|
||||||
|
@ -1,19 +1,5 @@
|
|||||||
--- a/pppd/sys-linux.c
|
--- a/pppd/sys-linux.c
|
||||||
+++ b/pppd/sys-linux.c
|
+++ b/pppd/sys-linux.c
|
||||||
@@ -73,12 +73,12 @@
|
|
||||||
#include <sys/types.h>
|
|
||||||
#include <sys/socket.h>
|
|
||||||
#include <sys/time.h>
|
|
||||||
-#include <sys/errno.h>
|
|
||||||
#include <sys/file.h>
|
|
||||||
#include <sys/stat.h>
|
|
||||||
#include <sys/utsname.h>
|
|
||||||
#include <sys/sysmacros.h>
|
|
||||||
|
|
||||||
+#include <errno.h>
|
|
||||||
#include <stdio.h>
|
|
||||||
#include <stdlib.h>
|
|
||||||
#include <syslog.h>
|
|
||||||
@@ -102,22 +102,15 @@
|
@@ -102,22 +102,15 @@
|
||||||
#define MAX_ADDR_LEN 7
|
#define MAX_ADDR_LEN 7
|
||||||
#endif
|
#endif
|
||||||
|
@ -1,7 +1,7 @@
|
|||||||
--- a/pppd/plugins/rp-pppoe/pppoe.h
|
--- a/pppd/plugins/rp-pppoe/pppoe.h
|
||||||
+++ b/pppd/plugins/rp-pppoe/pppoe.h
|
+++ b/pppd/plugins/rp-pppoe/pppoe.h
|
||||||
@@ -48,11 +48,7 @@
|
@@ -52,11 +52,7 @@
|
||||||
#endif
|
#include <netinet/in.h>
|
||||||
|
|
||||||
/* Ugly header files on some Linux boxes... */
|
/* Ugly header files on some Linux boxes... */
|
||||||
-#if defined(HAVE_LINUX_IF_H)
|
-#if defined(HAVE_LINUX_IF_H)
|
||||||
@ -12,15 +12,13 @@
|
|||||||
|
|
||||||
#ifdef HAVE_NET_IF_TYPES_H
|
#ifdef HAVE_NET_IF_TYPES_H
|
||||||
#include <net/if_types.h>
|
#include <net/if_types.h>
|
||||||
@@ -80,22 +76,8 @@ typedef unsigned long UINT32_t;
|
@@ -84,20 +80,7 @@ typedef unsigned long UINT32_t;
|
||||||
#error Could not find a 32-bit integer type
|
#error Could not find a 32-bit integer type
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
-#ifdef HAVE_LINUX_IF_ETHER_H
|
-#ifdef HAVE_LINUX_IF_ETHER_H
|
||||||
-#include <linux/if_ether.h>
|
-#include <linux/if_ether.h>
|
||||||
-#endif
|
-#endif
|
||||||
-
|
|
||||||
#include <netinet/in.h>
|
|
||||||
-
|
-
|
||||||
-#ifdef HAVE_NETINET_IF_ETHER_H
|
-#ifdef HAVE_NETINET_IF_ETHER_H
|
||||||
-#include <sys/types.h>
|
-#include <sys/types.h>
|
||||||
@ -35,45 +33,11 @@
|
|||||||
+#include <net/ethernet.h>
|
+#include <net/ethernet.h>
|
||||||
|
|
||||||
|
|
||||||
|
/* Ethernet frame types according to RFC 2516 */
|
||||||
--- a/pppd/plugins/rp-pppoe/pppoe-discovery.c
|
|
||||||
+++ b/pppd/plugins/rp-pppoe/pppoe-discovery.c
|
|
||||||
@@ -16,6 +16,7 @@
|
|
||||||
#include <string.h>
|
|
||||||
|
|
||||||
#include "pppoe.h"
|
|
||||||
+#include "pppd/pppd.h"
|
|
||||||
|
|
||||||
#ifdef HAVE_UNISTD_H
|
|
||||||
#include <unistd.h>
|
|
||||||
@@ -717,6 +718,23 @@ char *xstrdup(const char *s)
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
+void
|
|
||||||
+error(char *fmt, ...)
|
|
||||||
+{
|
|
||||||
+ va_list pvar;
|
|
||||||
+
|
|
||||||
+#if defined(__STDC__)
|
|
||||||
+ va_start(pvar, fmt);
|
|
||||||
+#else
|
|
||||||
+ char *fmt;
|
|
||||||
+ va_start(pvar);
|
|
||||||
+ fmt = va_arg(pvar, char *);
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
+ fprintf(stderr, fmt, pvar);
|
|
||||||
+ va_end(pvar);
|
|
||||||
+}
|
|
||||||
+
|
|
||||||
void usage(void)
|
|
||||||
{
|
|
||||||
fprintf(stderr, "Usage: pppoe-discovery [options]\n");
|
|
||||||
--- a/pppd/plugins/rp-pppoe/Makefile.linux
|
--- a/pppd/plugins/rp-pppoe/Makefile.linux
|
||||||
+++ b/pppd/plugins/rp-pppoe/Makefile.linux
|
+++ b/pppd/plugins/rp-pppoe/Makefile.linux
|
||||||
@@ -33,7 +33,7 @@ pppoe-discovery: pppoe-discovery.o debug
|
@@ -33,7 +33,7 @@ pppoe-discovery: pppoe-discovery.o debug
|
||||||
$(CC) $(CFLAGS) -o pppoe-discovery pppoe-discovery.o debug.o
|
$(CC) $(LDFLAGS) -o pppoe-discovery pppoe-discovery.o debug.o
|
||||||
|
|
||||||
pppoe-discovery.o: pppoe-discovery.c
|
pppoe-discovery.o: pppoe-discovery.c
|
||||||
- $(CC) $(CFLAGS) -c -o pppoe-discovery.o pppoe-discovery.c
|
- $(CC) $(CFLAGS) -c -o pppoe-discovery.o pppoe-discovery.c
|
||||||
|
@ -23,9 +23,9 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
-USE_TDB=y
|
-USE_TDB=y
|
||||||
+#USE_TDB=y
|
+#USE_TDB=y
|
||||||
|
|
||||||
HAS_SHADOW=y
|
# Uncomment the next line to enable Type=notify services in systemd
|
||||||
#USE_PAM=y
|
# If enabled, and the user sets the up_sdnotify option, then
|
||||||
@@ -80,7 +80,7 @@ MAXOCTETS=y
|
@@ -85,7 +85,7 @@ MAXOCTETS=y
|
||||||
|
|
||||||
INCLUDE_DIRS= -I../include
|
INCLUDE_DIRS= -I../include
|
||||||
|
|
||||||
@ -34,7 +34,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS) '-DDESTDIR="@DESTDIR@"'
|
CFLAGS= $(COPTS) $(COMPILE_FLAGS) $(INCLUDE_DIRS) '-DDESTDIR="@DESTDIR@"'
|
||||||
|
|
||||||
@@ -120,10 +120,10 @@ CFLAGS += -DHAS_SHADOW
|
@@ -125,10 +125,10 @@ CFLAGS += -DHAS_SHADOW
|
||||||
#LIBS += -lshadow $(LIBS)
|
#LIBS += -lshadow $(LIBS)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -559,8 +559,8 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
if (go->bsd_compress) {
|
if (go->bsd_compress) {
|
||||||
opt_buf[0] = CI_BSD_COMPRESS;
|
opt_buf[0] = CI_BSD_COMPRESS;
|
||||||
opt_buf[1] = CILEN_BSD_COMPRESS;
|
opt_buf[1] = CILEN_BSD_COMPRESS;
|
||||||
@@ -679,7 +814,8 @@ ccp_cilen(f)
|
@@ -680,7 +815,8 @@ ccp_cilen(f)
|
||||||
+ (go->deflate? CILEN_DEFLATE: 0)
|
+ (go->deflate && go->deflate_draft? CILEN_DEFLATE: 0)
|
||||||
+ (go->predictor_1? CILEN_PREDICTOR_1: 0)
|
+ (go->predictor_1? CILEN_PREDICTOR_1: 0)
|
||||||
+ (go->predictor_2? CILEN_PREDICTOR_2: 0)
|
+ (go->predictor_2? CILEN_PREDICTOR_2: 0)
|
||||||
- + (go->mppe? CILEN_MPPE: 0);
|
- + (go->mppe? CILEN_MPPE: 0);
|
||||||
@ -569,7 +569,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -693,6 +829,8 @@ ccp_addci(f, p, lenp)
|
@@ -694,6 +830,8 @@ ccp_addci(f, p, lenp)
|
||||||
{
|
{
|
||||||
int res;
|
int res;
|
||||||
ccp_options *go = &ccp_gotoptions[f->unit];
|
ccp_options *go = &ccp_gotoptions[f->unit];
|
||||||
@ -578,7 +578,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
u_char *p0 = p;
|
u_char *p0 = p;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -701,22 +839,43 @@ ccp_addci(f, p, lenp)
|
@@ -702,22 +840,43 @@ ccp_addci(f, p, lenp)
|
||||||
* in case it gets Acked.
|
* in case it gets Acked.
|
||||||
*/
|
*/
|
||||||
#ifdef MPPE
|
#ifdef MPPE
|
||||||
@ -631,7 +631,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
if (go->deflate) {
|
if (go->deflate) {
|
||||||
p[0] = go->deflate_correct? CI_DEFLATE: CI_DEFLATE_DRAFT;
|
p[0] = go->deflate_correct? CI_DEFLATE: CI_DEFLATE_DRAFT;
|
||||||
p[1] = CILEN_DEFLATE;
|
p[1] = CILEN_DEFLATE;
|
||||||
@@ -802,7 +961,7 @@ ccp_addci(f, p, lenp)
|
@@ -803,7 +962,7 @@ ccp_addci(f, p, lenp)
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* ccp_ackci - process a received configure-ack, and return
|
* ccp_ackci - process a received configure-ack, and return
|
||||||
@ -640,7 +640,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
*/
|
*/
|
||||||
static int
|
static int
|
||||||
ccp_ackci(f, p, len)
|
ccp_ackci(f, p, len)
|
||||||
@@ -811,24 +970,44 @@ ccp_ackci(f, p, len)
|
@@ -812,24 +971,44 @@ ccp_ackci(f, p, len)
|
||||||
int len;
|
int len;
|
||||||
{
|
{
|
||||||
ccp_options *go = &ccp_gotoptions[f->unit];
|
ccp_options *go = &ccp_gotoptions[f->unit];
|
||||||
@ -694,7 +694,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
if (go->deflate) {
|
if (go->deflate) {
|
||||||
if (len < CILEN_DEFLATE
|
if (len < CILEN_DEFLATE
|
||||||
|| p[0] != (go->deflate_correct? CI_DEFLATE: CI_DEFLATE_DRAFT)
|
|| p[0] != (go->deflate_correct? CI_DEFLATE: CI_DEFLATE_DRAFT)
|
||||||
@@ -901,6 +1080,8 @@ ccp_nakci(f, p, len, treat_as_reject)
|
@@ -902,6 +1081,8 @@ ccp_nakci(f, p, len, treat_as_reject)
|
||||||
int treat_as_reject;
|
int treat_as_reject;
|
||||||
{
|
{
|
||||||
ccp_options *go = &ccp_gotoptions[f->unit];
|
ccp_options *go = &ccp_gotoptions[f->unit];
|
||||||
@ -703,7 +703,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
ccp_options no; /* options we've seen already */
|
ccp_options no; /* options we've seen already */
|
||||||
ccp_options try; /* options to ask for next time */
|
ccp_options try; /* options to ask for next time */
|
||||||
|
|
||||||
@@ -908,28 +1089,100 @@ ccp_nakci(f, p, len, treat_as_reject)
|
@@ -909,28 +1090,100 @@ ccp_nakci(f, p, len, treat_as_reject)
|
||||||
try = *go;
|
try = *go;
|
||||||
|
|
||||||
#ifdef MPPE
|
#ifdef MPPE
|
||||||
@ -822,7 +822,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
if (go->deflate && len >= CILEN_DEFLATE
|
if (go->deflate && len >= CILEN_DEFLATE
|
||||||
&& p[0] == (go->deflate_correct? CI_DEFLATE: CI_DEFLATE_DRAFT)
|
&& p[0] == (go->deflate_correct? CI_DEFLATE: CI_DEFLATE_DRAFT)
|
||||||
&& p[1] == CILEN_DEFLATE) {
|
&& p[1] == CILEN_DEFLATE) {
|
||||||
@@ -1002,14 +1255,50 @@ ccp_rejci(f, p, len)
|
@@ -1003,14 +1256,50 @@ ccp_rejci(f, p, len)
|
||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
#ifdef MPPE
|
#ifdef MPPE
|
||||||
@ -877,7 +877,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
if (go->deflate_correct && len >= CILEN_DEFLATE
|
if (go->deflate_correct && len >= CILEN_DEFLATE
|
||||||
&& p[0] == CI_DEFLATE && p[1] == CILEN_DEFLATE) {
|
&& p[0] == CI_DEFLATE && p[1] == CILEN_DEFLATE) {
|
||||||
if (p[2] != DEFLATE_MAKE_OPT(go->deflate_size)
|
if (p[2] != DEFLATE_MAKE_OPT(go->deflate_size)
|
||||||
@@ -1073,14 +1362,15 @@ ccp_reqci(f, p, lenp, dont_nak)
|
@@ -1074,14 +1363,15 @@ ccp_reqci(f, p, lenp, dont_nak)
|
||||||
int dont_nak;
|
int dont_nak;
|
||||||
{
|
{
|
||||||
int ret, newret, res;
|
int ret, newret, res;
|
||||||
@ -897,7 +897,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
ret = CONFACK;
|
ret = CONFACK;
|
||||||
retp = p0 = p;
|
retp = p0 = p;
|
||||||
@@ -1103,106 +1393,302 @@ ccp_reqci(f, p, lenp, dont_nak)
|
@@ -1104,106 +1394,302 @@ ccp_reqci(f, p, lenp, dont_nak)
|
||||||
switch (type) {
|
switch (type) {
|
||||||
#ifdef MPPE
|
#ifdef MPPE
|
||||||
case CI_MPPE:
|
case CI_MPPE:
|
||||||
@ -1293,7 +1293,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
case CI_DEFLATE:
|
case CI_DEFLATE:
|
||||||
case CI_DEFLATE_DRAFT:
|
case CI_DEFLATE_DRAFT:
|
||||||
if (!ao->deflate || clen != CILEN_DEFLATE
|
if (!ao->deflate || clen != CILEN_DEFLATE
|
||||||
@@ -1344,12 +1830,6 @@ ccp_reqci(f, p, lenp, dont_nak)
|
@@ -1345,12 +1831,6 @@ ccp_reqci(f, p, lenp, dont_nak)
|
||||||
else
|
else
|
||||||
*lenp = retp - p0;
|
*lenp = retp - p0;
|
||||||
}
|
}
|
||||||
@ -1306,7 +1306,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1371,24 +1851,35 @@ method_name(opt, opt2)
|
@@ -1372,24 +1852,35 @@ method_name(opt, opt2)
|
||||||
char *p = result;
|
char *p = result;
|
||||||
char *q = result + sizeof(result); /* 1 past result */
|
char *q = result + sizeof(result); /* 1 past result */
|
||||||
|
|
||||||
@ -1358,7 +1358,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
case CI_DEFLATE:
|
case CI_DEFLATE:
|
||||||
case CI_DEFLATE_DRAFT:
|
case CI_DEFLATE_DRAFT:
|
||||||
if (opt2 != NULL && opt2->deflate_size != opt->deflate_size)
|
if (opt2 != NULL && opt2->deflate_size != opt->deflate_size)
|
||||||
@@ -1444,12 +1935,12 @@ ccp_up(f)
|
@@ -1445,12 +1936,12 @@ ccp_up(f)
|
||||||
} else if (ANY_COMPRESS(*ho))
|
} else if (ANY_COMPRESS(*ho))
|
||||||
notice("%s transmit compression enabled", method_name(ho, NULL));
|
notice("%s transmit compression enabled", method_name(ho, NULL));
|
||||||
#ifdef MPPE
|
#ifdef MPPE
|
||||||
@ -1373,7 +1373,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1472,7 +1963,7 @@ ccp_down(f)
|
@@ -1473,7 +1964,7 @@ ccp_down(f)
|
||||||
lcp_close(f->unit, "MPPE disabled");
|
lcp_close(f->unit, "MPPE disabled");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -1382,7 +1382,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
}
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@@ -1532,24 +2023,28 @@ ccp_printpkt(p, plen, printer, arg)
|
@@ -1533,24 +2024,28 @@ ccp_printpkt(p, plen, printer, arg)
|
||||||
#ifdef MPPE
|
#ifdef MPPE
|
||||||
case CI_MPPE:
|
case CI_MPPE:
|
||||||
if (optlen >= CILEN_MPPE) {
|
if (optlen >= CILEN_MPPE) {
|
||||||
@ -1423,7 +1423,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
case CI_DEFLATE:
|
case CI_DEFLATE:
|
||||||
case CI_DEFLATE_DRAFT:
|
case CI_DEFLATE_DRAFT:
|
||||||
if (optlen >= CILEN_DEFLATE) {
|
if (optlen >= CILEN_DEFLATE) {
|
||||||
@@ -1635,6 +2130,7 @@ ccp_datainput(unit, pkt, len)
|
@@ -1636,6 +2131,7 @@ ccp_datainput(unit, pkt, len)
|
||||||
error("Lost compression sync: disabling compression");
|
error("Lost compression sync: disabling compression");
|
||||||
ccp_close(unit, "Lost compression sync");
|
ccp_close(unit, "Lost compression sync");
|
||||||
#ifdef MPPE
|
#ifdef MPPE
|
||||||
@ -1431,7 +1431,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
/*
|
/*
|
||||||
* If we were doing MPPE, we must also take the link down.
|
* If we were doing MPPE, we must also take the link down.
|
||||||
*/
|
*/
|
||||||
@@ -1642,9 +2138,18 @@ ccp_datainput(unit, pkt, len)
|
@@ -1643,9 +2139,18 @@ ccp_datainput(unit, pkt, len)
|
||||||
error("Too many MPPE errors, closing LCP");
|
error("Too many MPPE errors, closing LCP");
|
||||||
lcp_close(unit, "Too many MPPE errors");
|
lcp_close(unit, "Too many MPPE errors");
|
||||||
}
|
}
|
||||||
@ -1459,7 +1459,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
bool deflate_draft; /* use draft RFC code for deflate? */
|
bool deflate_draft; /* use draft RFC code for deflate? */
|
||||||
+ bool lzs; /* do Stac LZS? */
|
+ bool lzs; /* do Stac LZS? */
|
||||||
+ bool mppc; /* do MPPC? */
|
+ bool mppc; /* do MPPC? */
|
||||||
bool mppe; /* do MPPE? */
|
u_char mppe; /* MPPE bitfield */
|
||||||
+ bool mppe_40; /* allow 40 bit encryption? */
|
+ bool mppe_40; /* allow 40 bit encryption? */
|
||||||
+ bool mppe_56; /* allow 56 bit encryption? */
|
+ bool mppe_56; /* allow 56 bit encryption? */
|
||||||
+ bool mppe_128; /* allow 128 bit encryption? */
|
+ bool mppe_128; /* allow 128 bit encryption? */
|
||||||
|
@ -19,7 +19,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
clean:
|
clean:
|
||||||
--- a/pppd/Makefile.linux
|
--- a/pppd/Makefile.linux
|
||||||
+++ b/pppd/Makefile.linux
|
+++ b/pppd/Makefile.linux
|
||||||
@@ -102,7 +102,7 @@ ifdef USE_SRP
|
@@ -107,7 +107,7 @@ ifdef USE_SRP
|
||||||
CFLAGS += -DUSE_SRP -DOPENSSL -I/usr/local/ssl/include
|
CFLAGS += -DUSE_SRP -DOPENSSL -I/usr/local/ssl/include
|
||||||
LIBS += -lsrp -L/usr/local/ssl/lib -lcrypto
|
LIBS += -lsrp -L/usr/local/ssl/lib -lcrypto
|
||||||
TARGETS += srp-entry
|
TARGETS += srp-entry
|
||||||
@ -28,7 +28,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
MANPAGES += srp-entry.8
|
MANPAGES += srp-entry.8
|
||||||
EXTRACLEAN += srp-entry.o
|
EXTRACLEAN += srp-entry.o
|
||||||
NEEDDES=y
|
NEEDDES=y
|
||||||
@@ -208,7 +208,7 @@ all: $(TARGETS)
|
@@ -219,7 +219,7 @@ all: $(TARGETS)
|
||||||
install: pppd
|
install: pppd
|
||||||
mkdir -p $(BINDIR) $(MANDIR)
|
mkdir -p $(BINDIR) $(MANDIR)
|
||||||
$(EXTRAINSTALL)
|
$(EXTRAINSTALL)
|
||||||
|
@ -18,6 +18,23 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
# Uncomment the next line to include support for Microsoft's
|
# Uncomment the next line to include support for Microsoft's
|
||||||
# MS-CHAP authentication protocol.
|
# MS-CHAP authentication protocol.
|
||||||
|
@@ -43,13 +44,13 @@ install: all
|
||||||
|
$(INSTALL) -c -m 444 pppd-radattr.8 $(MANDIR)
|
||||||
|
|
||||||
|
radius.so: radius.o libradiusclient.a
|
||||||
|
- $(CC) $(LDFLAGS) -o radius.so -shared radius.o libradiusclient.a
|
||||||
|
+ $(CC) $(LDFLAGS) -fPIC -o radius.so -shared radius.o libradiusclient.a
|
||||||
|
|
||||||
|
radattr.so: radattr.o
|
||||||
|
- $(CC) $(LDFLAGS) -o radattr.so -shared radattr.o
|
||||||
|
+ $(CC) $(LDFLAGS) -fPIC -o radattr.so -shared radattr.o
|
||||||
|
|
||||||
|
radrealms.so: radrealms.o
|
||||||
|
- $(CC) $(LDFLAGS) -o radrealms.so -shared radrealms.o
|
||||||
|
+ $(CC) $(LDFLAGS) -fPIC -o radrealms.so -shared radrealms.o
|
||||||
|
|
||||||
|
CLIENTOBJS = avpair.o buildreq.o config.o dict.o ip_util.o \
|
||||||
|
clientid.o sendserver.o lock.o util.o md5.o
|
||||||
--- a/pppdump/Makefile.linux
|
--- a/pppdump/Makefile.linux
|
||||||
+++ b/pppdump/Makefile.linux
|
+++ b/pppdump/Makefile.linux
|
||||||
@@ -2,7 +2,8 @@ DESTDIR = $(INSTROOT)@DESTDIR@
|
@@ -2,7 +2,8 @@ DESTDIR = $(INSTROOT)@DESTDIR@
|
||||||
@ -36,8 +53,8 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
$(CC) $(CFLAGS) -c -o debug.o debug.c
|
$(CC) $(CFLAGS) -c -o debug.o debug.c
|
||||||
|
|
||||||
rp-pppoe.so: plugin.o discovery.o if.o common.o
|
rp-pppoe.so: plugin.o discovery.o if.o common.o
|
||||||
- $(CC) $(CFLAGS) -o rp-pppoe.so -shared plugin.o discovery.o if.o common.o
|
- $(CC) $(LDFLAGS) -o rp-pppoe.so -shared plugin.o discovery.o if.o common.o
|
||||||
+ $(CC) $(CFLAGS) -fPIC -o rp-pppoe.so -shared plugin.o discovery.o if.o common.o
|
+ $(CC) $(LDFLAGS) -fPIC -o rp-pppoe.so -shared plugin.o discovery.o if.o common.o
|
||||||
|
|
||||||
install: all
|
install: all
|
||||||
$(INSTALL) -d -m 755 $(LIBDIR)
|
$(INSTALL) -d -m 755 $(LIBDIR)
|
||||||
|
@ -29,7 +29,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
static void setup_signals __P((void));
|
static void setup_signals __P((void));
|
||||||
static void create_pidfile __P((int pid));
|
static void create_pidfile __P((int pid));
|
||||||
static void create_linkpidfile __P((int pid));
|
static void create_linkpidfile __P((int pid));
|
||||||
@@ -535,6 +537,7 @@ main(argc, argv)
|
@@ -527,6 +529,7 @@ main(argc, argv)
|
||||||
info("Starting link");
|
info("Starting link");
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -37,7 +37,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
gettimeofday(&start_time, NULL);
|
gettimeofday(&start_time, NULL);
|
||||||
script_unsetenv("CONNECT_TIME");
|
script_unsetenv("CONNECT_TIME");
|
||||||
script_unsetenv("BYTES_SENT");
|
script_unsetenv("BYTES_SENT");
|
||||||
@@ -1267,6 +1270,36 @@ struct callout {
|
@@ -1262,6 +1265,36 @@ struct callout {
|
||||||
|
|
||||||
static struct callout *callout = NULL; /* Callout list */
|
static struct callout *callout = NULL; /* Callout list */
|
||||||
static struct timeval timenow; /* Current time */
|
static struct timeval timenow; /* Current time */
|
||||||
@ -74,7 +74,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* timeout - Schedule a timeout.
|
* timeout - Schedule a timeout.
|
||||||
@@ -1337,6 +1370,8 @@ calltimeout()
|
@@ -1332,6 +1365,8 @@ calltimeout()
|
||||||
{
|
{
|
||||||
struct callout *p;
|
struct callout *p;
|
||||||
|
|
||||||
@ -83,7 +83,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
while (callout != NULL) {
|
while (callout != NULL) {
|
||||||
p = callout;
|
p = callout;
|
||||||
|
|
||||||
@@ -1364,6 +1399,8 @@ timeleft(tvp)
|
@@ -1359,6 +1394,8 @@ timeleft(tvp)
|
||||||
{
|
{
|
||||||
if (callout == NULL)
|
if (callout == NULL)
|
||||||
return NULL;
|
return NULL;
|
||||||
|
@ -12,7 +12,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
--- a/pppd/main.c
|
--- a/pppd/main.c
|
||||||
+++ b/pppd/main.c
|
+++ b/pppd/main.c
|
||||||
@@ -1048,7 +1048,8 @@ get_input()
|
@@ -1043,7 +1043,8 @@ get_input()
|
||||||
}
|
}
|
||||||
notice("Modem hangup");
|
notice("Modem hangup");
|
||||||
hungup = 1;
|
hungup = 1;
|
||||||
|
@ -7,7 +7,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
--- a/pppd/Makefile.linux
|
--- a/pppd/Makefile.linux
|
||||||
+++ b/pppd/Makefile.linux
|
+++ b/pppd/Makefile.linux
|
||||||
@@ -178,8 +178,8 @@ endif
|
@@ -189,8 +189,8 @@ endif
|
||||||
|
|
||||||
ifdef FILTER
|
ifdef FILTER
|
||||||
ifneq ($(wildcard /usr/include/pcap-bpf.h),)
|
ifneq ($(wildcard /usr/include/pcap-bpf.h),)
|
||||||
|
@ -23,7 +23,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
# Uncomment the next line to enable multilink PPP (enabled by default)
|
# Uncomment the next line to enable multilink PPP (enabled by default)
|
||||||
# Linux distributions: Please leave multilink ENABLED in your builds
|
# Linux distributions: Please leave multilink ENABLED in your builds
|
||||||
# of pppd!
|
# of pppd!
|
||||||
@@ -183,6 +186,14 @@ CFLAGS += -DPPP_FILTER -I$(STAGING_DIR)
|
@@ -194,6 +197,14 @@ CFLAGS += -DPPP_FILTER -I$(STAGING_DIR)
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
@ -48,7 +48,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
/*
|
/*
|
||||||
* There have been 3 or 4 different names for this in libpcap CVS, but
|
* There have been 3 or 4 different names for this in libpcap CVS, but
|
||||||
* this seems to be what they have settled on...
|
* this seems to be what they have settled on...
|
||||||
@@ -165,6 +166,13 @@ static int setlogfile __P((char **));
|
@@ -170,6 +171,13 @@ static int setlogfile __P((char **));
|
||||||
static int loadplugin __P((char **));
|
static int loadplugin __P((char **));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -62,7 +62,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
#ifdef PPP_FILTER
|
#ifdef PPP_FILTER
|
||||||
static int setpassfilter __P((char **));
|
static int setpassfilter __P((char **));
|
||||||
static int setactivefilter __P((char **));
|
static int setactivefilter __P((char **));
|
||||||
@@ -344,6 +352,14 @@ option_t general_options[] = {
|
@@ -362,6 +370,14 @@ option_t general_options[] = {
|
||||||
"set filter for active pkts", OPT_PRIO },
|
"set filter for active pkts", OPT_PRIO },
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
@ -77,7 +77,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
#ifdef MAXOCTETS
|
#ifdef MAXOCTETS
|
||||||
{ "maxoctets", o_int, &maxoctets,
|
{ "maxoctets", o_int, &maxoctets,
|
||||||
"Set connection traffic limit",
|
"Set connection traffic limit",
|
||||||
@@ -1493,6 +1509,29 @@ callfile(argv)
|
@@ -1511,6 +1527,29 @@ callfile(argv)
|
||||||
return ok;
|
return ok;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,135 +0,0 @@
|
|||||||
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 <jo@mein.io>
|
|
||||||
|
|
||||||
--- a/pppd/main.c
|
|
||||||
+++ b/pppd/main.c
|
|
||||||
@@ -745,8 +745,11 @@ void
|
|
||||||
set_ifunit(iskey)
|
|
||||||
int iskey;
|
|
||||||
{
|
|
||||||
- info("Using interface %s%d", PPP_DRV_NAME, ifunit);
|
|
||||||
- slprintf(ifname, sizeof(ifname), "%s%d", PPP_DRV_NAME, ifunit);
|
|
||||||
+ if (use_ifname[0] == 0)
|
|
||||||
+ slprintf(ifname, sizeof(ifname), "%s%d", PPP_DRV_NAME, ifunit);
|
|
||||||
+ else
|
|
||||||
+ slprintf(ifname, sizeof(ifname), "%s", use_ifname);
|
|
||||||
+ info("Using interface %s", ifname);
|
|
||||||
script_setenv("IFNAME", ifname, iskey);
|
|
||||||
if (iskey) {
|
|
||||||
create_pidfile(getpid()); /* write pid to file */
|
|
||||||
--- a/pppd/options.c
|
|
||||||
+++ b/pppd/options.c
|
|
||||||
@@ -112,6 +112,7 @@ int log_to_fd = 1; /* send log messages
|
|
||||||
bool log_default = 1; /* log_to_fd is default (stdout) */
|
|
||||||
int maxfail = 10; /* max # of unsuccessful connection attempts */
|
|
||||||
char linkname[MAXPATHLEN]; /* logical name for link */
|
|
||||||
+char use_ifname[IFNAMSIZ]; /* physical name for PPP link */
|
|
||||||
bool tune_kernel; /* may alter kernel settings */
|
|
||||||
int connect_delay = 1000; /* wait this many ms after connect script */
|
|
||||||
int req_unit = -1; /* requested interface unit */
|
|
||||||
@@ -277,6 +278,9 @@ option_t general_options[] = {
|
|
||||||
{ "linkname", o_string, linkname,
|
|
||||||
"Set logical name for link",
|
|
||||||
OPT_PRIO | OPT_PRIV | OPT_STATIC, NULL, MAXPATHLEN },
|
|
||||||
+ { "ifname", o_string, use_ifname,
|
|
||||||
+ "Set physical name for PPP interface",
|
|
||||||
+ OPT_PRIO | OPT_PRIV | OPT_STATIC, NULL, IFNAMSIZ },
|
|
||||||
|
|
||||||
{ "maxfail", o_int, &maxfail,
|
|
||||||
"Maximum number of unsuccessful connection attempts to allow",
|
|
||||||
--- a/pppd/pppd.h
|
|
||||||
+++ b/pppd/pppd.h
|
|
||||||
@@ -74,6 +74,10 @@
|
|
||||||
#include "eui64.h"
|
|
||||||
#endif
|
|
||||||
|
|
||||||
+#ifndef IFNAMSIZ
|
|
||||||
+#define IFNAMSIZ 16
|
|
||||||
+#endif
|
|
||||||
+
|
|
||||||
/*
|
|
||||||
* Limits.
|
|
||||||
*/
|
|
||||||
@@ -317,6 +321,7 @@ extern char *record_file; /* File to rec
|
|
||||||
extern bool sync_serial; /* Device is synchronous serial device */
|
|
||||||
extern int maxfail; /* Max # of unsuccessful connection attempts */
|
|
||||||
extern char linkname[MAXPATHLEN]; /* logical name for link */
|
|
||||||
+extern char use_ifname[IFNAMSIZ]; /* physical name for PPP interface */
|
|
||||||
extern bool tune_kernel; /* May alter kernel settings as necessary */
|
|
||||||
extern int connect_delay; /* Time to delay after connect script */
|
|
||||||
extern int max_data_rate; /* max bytes/sec through charshunt */
|
|
||||||
--- a/pppd/sys-linux.c
|
|
||||||
+++ b/pppd/sys-linux.c
|
|
||||||
@@ -161,6 +161,10 @@ struct in6_ifreq {
|
|
||||||
/* We can get an EIO error on an ioctl if the modem has hung up */
|
|
||||||
#define ok_error(num) ((num)==EIO)
|
|
||||||
|
|
||||||
+#if !defined(PPP_DRV_NAME)
|
|
||||||
+#define PPP_DRV_NAME "ppp"
|
|
||||||
+#endif /* !defined(PPP_DRV_NAME) */
|
|
||||||
+
|
|
||||||
static int tty_disc = N_TTY; /* The TTY discipline */
|
|
||||||
static int ppp_disc = N_PPP; /* The PPP discpline */
|
|
||||||
static int initfdflags = -1; /* Initial file descriptor flags for fd */
|
|
||||||
@@ -620,7 +624,8 @@ void generic_disestablish_ppp(int dev_fd
|
|
||||||
*/
|
|
||||||
static int make_ppp_unit()
|
|
||||||
{
|
|
||||||
- int x, flags;
|
|
||||||
+ struct ifreq ifr;
|
|
||||||
+ int x, flags, s;
|
|
||||||
|
|
||||||
if (ppp_dev_fd >= 0) {
|
|
||||||
dbglog("in make_ppp_unit, already had /dev/ppp open?");
|
|
||||||
@@ -643,6 +648,30 @@ static int make_ppp_unit()
|
|
||||||
}
|
|
||||||
if (x < 0)
|
|
||||||
error("Couldn't create new ppp unit: %m");
|
|
||||||
+
|
|
||||||
+ if (use_ifname[0] != 0) {
|
|
||||||
+ s = socket(PF_INET, SOCK_DGRAM, 0);
|
|
||||||
+ if (s < 0)
|
|
||||||
+ s = socket(PF_PACKET, SOCK_DGRAM, 0);
|
|
||||||
+ if (s < 0)
|
|
||||||
+ s = socket(PF_INET6, SOCK_DGRAM, 0);
|
|
||||||
+ if (s < 0)
|
|
||||||
+ s = socket(PF_UNIX, SOCK_DGRAM, 0);
|
|
||||||
+ if (s >= 0) {
|
|
||||||
+ slprintf(ifr.ifr_name, sizeof(ifr.ifr_name), "%s%d", PPP_DRV_NAME, ifunit);
|
|
||||||
+ slprintf(ifr.ifr_newname, sizeof(ifr.ifr_newname), "%s", use_ifname);
|
|
||||||
+ x = ioctl(s, SIOCSIFNAME, &ifr);
|
|
||||||
+ close(s);
|
|
||||||
+ } else {
|
|
||||||
+ x = s;
|
|
||||||
+ }
|
|
||||||
+ if (x < 0) {
|
|
||||||
+ error("Couldn't rename %s to %s", ifr.ifr_name, ifr.ifr_newname);
|
|
||||||
+ close(ppp_dev_fd);
|
|
||||||
+ ppp_dev_fd = -1;
|
|
||||||
+ }
|
|
||||||
+ }
|
|
||||||
+
|
|
||||||
return x;
|
|
||||||
}
|
|
||||||
|
|
||||||
--- a/pppstats/pppstats.c
|
|
||||||
+++ b/pppstats/pppstats.c
|
|
||||||
@@ -506,10 +506,12 @@ main(argc, argv)
|
|
||||||
if (argc > 0)
|
|
||||||
interface = argv[0];
|
|
||||||
|
|
||||||
+#if 0
|
|
||||||
if (sscanf(interface, PPP_DRV_NAME "%d", &unit) != 1) {
|
|
||||||
fprintf(stderr, "%s: invalid interface '%s' specified\n",
|
|
||||||
progname, interface);
|
|
||||||
}
|
|
||||||
+#endif
|
|
||||||
|
|
||||||
#ifndef STREAMS
|
|
||||||
{
|
|
@ -8,7 +8,15 @@ Signed-off-by: George Kashperko <george@znau.edu.ua>
|
|||||||
2 files changed, 53 insertions(+), 14 deletions(-)
|
2 files changed, 53 insertions(+), 14 deletions(-)
|
||||||
--- a/pppd/multilink.c
|
--- a/pppd/multilink.c
|
||||||
+++ b/pppd/multilink.c
|
+++ b/pppd/multilink.c
|
||||||
@@ -56,7 +56,8 @@ static void iterate_bundle_links __P((vo
|
@@ -35,6 +35,7 @@
|
||||||
|
#include <signal.h>
|
||||||
|
#include <netinet/in.h>
|
||||||
|
#include <unistd.h>
|
||||||
|
+#include <net/if.h>
|
||||||
|
|
||||||
|
#include "pppd.h"
|
||||||
|
#include "fsm.h"
|
||||||
|
@@ -56,7 +57,8 @@ static void iterate_bundle_links __P((vo
|
||||||
|
|
||||||
static int get_default_epdisc __P((struct epdisc *));
|
static int get_default_epdisc __P((struct epdisc *));
|
||||||
static int parse_num __P((char *str, const char *key, int *valp));
|
static int parse_num __P((char *str, const char *key, int *valp));
|
||||||
@ -18,7 +26,7 @@ Signed-off-by: George Kashperko <george@znau.edu.ua>
|
|||||||
|
|
||||||
#define set_ip_epdisc(ep, addr) do { \
|
#define set_ip_epdisc(ep, addr) do { \
|
||||||
ep->length = 4; \
|
ep->length = 4; \
|
||||||
@@ -197,35 +198,38 @@ mp_join_bundle()
|
@@ -197,35 +199,38 @@ mp_join_bundle()
|
||||||
key.dptr = bundle_id;
|
key.dptr = bundle_id;
|
||||||
key.dsize = p - bundle_id;
|
key.dsize = p - bundle_id;
|
||||||
pid = tdb_fetch(pppdb, key);
|
pid = tdb_fetch(pppdb, key);
|
||||||
@ -65,7 +73,7 @@ Signed-off-by: George Kashperko <george@znau.edu.ua>
|
|||||||
}
|
}
|
||||||
|
|
||||||
/* we have to make a new bundle */
|
/* we have to make a new bundle */
|
||||||
@@ -408,22 +412,45 @@ parse_num(str, key, valp)
|
@@ -408,22 +413,45 @@ parse_num(str, key, valp)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -118,7 +126,7 @@ Signed-off-by: George Kashperko <george@znau.edu.ua>
|
|||||||
&& memcmp(vd.dptr, key.dptr, vd.dsize) == 0;
|
&& memcmp(vd.dptr, key.dptr, vd.dsize) == 0;
|
||||||
--- a/pppd/sys-linux.c
|
--- a/pppd/sys-linux.c
|
||||||
+++ b/pppd/sys-linux.c
|
+++ b/pppd/sys-linux.c
|
||||||
@@ -698,6 +698,16 @@ void cfg_bundle(int mrru, int mtru, int
|
@@ -686,6 +686,16 @@ void cfg_bundle(int mrru, int mtru, int
|
||||||
add_fd(ppp_dev_fd);
|
add_fd(ppp_dev_fd);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -135,7 +143,7 @@ Signed-off-by: George Kashperko <george@znau.edu.ua>
|
|||||||
/*
|
/*
|
||||||
* make_new_bundle - create a new PPP unit (i.e. a bundle)
|
* make_new_bundle - create a new PPP unit (i.e. a bundle)
|
||||||
* and connect our channel to it. This should only get called
|
* and connect our channel to it. This should only get called
|
||||||
@@ -716,6 +726,8 @@ void make_new_bundle(int mrru, int mtru,
|
@@ -704,6 +714,8 @@ void make_new_bundle(int mrru, int mtru,
|
||||||
|
|
||||||
/* set the mrru and flags */
|
/* set the mrru and flags */
|
||||||
cfg_bundle(mrru, mtru, rssn, tssn);
|
cfg_bundle(mrru, mtru, rssn, tssn);
|
||||||
|
@ -12,7 +12,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
--- a/pppd/sys-linux.c
|
--- a/pppd/sys-linux.c
|
||||||
+++ b/pppd/sys-linux.c
|
+++ b/pppd/sys-linux.c
|
||||||
@@ -1756,6 +1756,7 @@ int cifdefaultroute (int unit, u_int32_t
|
@@ -1753,6 +1753,7 @@ int cifdefaultroute (int unit, u_int32_t
|
||||||
SIN_ADDR(rt.rt_genmask) = 0L;
|
SIN_ADDR(rt.rt_genmask) = 0L;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -13,7 +13,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
--- a/pppd/sys-linux.c
|
--- a/pppd/sys-linux.c
|
||||||
+++ b/pppd/sys-linux.c
|
+++ b/pppd/sys-linux.c
|
||||||
@@ -1710,6 +1710,9 @@ int sifdefaultroute (int unit, u_int32_t
|
@@ -1703,6 +1703,9 @@ int sifdefaultroute (int unit, u_int32_t
|
||||||
memset (&rt, 0, sizeof (rt));
|
memset (&rt, 0, sizeof (rt));
|
||||||
SET_SA_FAMILY (rt.rt_dst, AF_INET);
|
SET_SA_FAMILY (rt.rt_dst, AF_INET);
|
||||||
|
|
||||||
@ -21,9 +21,9 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
+ SIN_ADDR(rt.rt_gateway) = gateway;
|
+ SIN_ADDR(rt.rt_gateway) = gateway;
|
||||||
+
|
+
|
||||||
rt.rt_dev = ifname;
|
rt.rt_dev = ifname;
|
||||||
|
rt.rt_metric = dfl_route_metric + 1; /* +1 for binary compatibility */
|
||||||
|
|
||||||
if (kernel_version > KVERSION(2,1,0)) {
|
@@ -1711,7 +1714,7 @@ int sifdefaultroute (int unit, u_int32_t
|
||||||
@@ -1717,7 +1720,7 @@ int sifdefaultroute (int unit, u_int32_t
|
|
||||||
SIN_ADDR(rt.rt_genmask) = 0L;
|
SIN_ADDR(rt.rt_genmask) = 0L;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -10,7 +10,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
--- a/pppd/sys-linux.c
|
--- a/pppd/sys-linux.c
|
||||||
+++ b/pppd/sys-linux.c
|
+++ b/pppd/sys-linux.c
|
||||||
@@ -196,7 +196,7 @@ static int driver_is_old = 0;
|
@@ -192,7 +192,7 @@ static int driver_is_old = 0;
|
||||||
static int restore_term = 0; /* 1 => we've munged the terminal */
|
static int restore_term = 0; /* 1 => we've munged the terminal */
|
||||||
static struct termios inittermios; /* Initial TTY termios */
|
static struct termios inittermios; /* Initial TTY termios */
|
||||||
|
|
||||||
@ -19,7 +19,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
static char loop_name[20];
|
static char loop_name[20];
|
||||||
static unsigned char inbuf[512]; /* buffer for chars read from loopback */
|
static unsigned char inbuf[512]; /* buffer for chars read from loopback */
|
||||||
@@ -214,8 +214,8 @@ static int looped; /* 1 if using loop
|
@@ -210,8 +210,8 @@ static int looped; /* 1 if using loop
|
||||||
static int link_mtu; /* mtu for the link (not bundle) */
|
static int link_mtu; /* mtu for the link (not bundle) */
|
||||||
|
|
||||||
static struct utsname utsname; /* for the kernel version */
|
static struct utsname utsname; /* for the kernel version */
|
||||||
@ -29,7 +29,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
#define MAX_IFS 100
|
#define MAX_IFS 100
|
||||||
|
|
||||||
@@ -1451,11 +1451,12 @@ int ccp_fatal_error (int unit)
|
@@ -1439,11 +1439,12 @@ int ccp_fatal_error (int unit)
|
||||||
*
|
*
|
||||||
* path_to_procfs - find the path to the proc file system mount point
|
* path_to_procfs - find the path to the proc file system mount point
|
||||||
*/
|
*/
|
||||||
@ -44,7 +44,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
struct mntent *mntent;
|
struct mntent *mntent;
|
||||||
FILE *fp;
|
FILE *fp;
|
||||||
|
|
||||||
@@ -1477,6 +1478,7 @@ static char *path_to_procfs(const char *
|
@@ -1465,6 +1466,7 @@ static char *path_to_procfs(const char *
|
||||||
fclose (fp);
|
fclose (fp);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -52,7 +52,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
strlcpy(proc_path + proc_path_len, tail,
|
strlcpy(proc_path + proc_path_len, tail,
|
||||||
sizeof(proc_path) - proc_path_len);
|
sizeof(proc_path) - proc_path_len);
|
||||||
@@ -2129,15 +2131,19 @@ int ppp_available(void)
|
@@ -2126,15 +2128,19 @@ int ppp_available(void)
|
||||||
int my_version, my_modification, my_patch;
|
int my_version, my_modification, my_patch;
|
||||||
int osmaj, osmin, ospatch;
|
int osmaj, osmin, ospatch;
|
||||||
|
|
||||||
@ -72,7 +72,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
/* XXX should get from driver */
|
/* XXX should get from driver */
|
||||||
driver_version = 2;
|
driver_version = 2;
|
||||||
@@ -2197,6 +2203,7 @@ int ppp_available(void)
|
@@ -2194,6 +2200,7 @@ int ppp_available(void)
|
||||||
|
|
||||||
if (ok && ((ifr.ifr_hwaddr.sa_family & ~0xFF) != ARPHRD_PPP))
|
if (ok && ((ifr.ifr_hwaddr.sa_family & ~0xFF) != ARPHRD_PPP))
|
||||||
ok = 0;
|
ok = 0;
|
||||||
@ -80,7 +80,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
/*
|
/*
|
||||||
* This is the PPP device. Validate the version of the driver at this
|
* This is the PPP device. Validate the version of the driver at this
|
||||||
@@ -2730,6 +2737,7 @@ get_pty(master_fdp, slave_fdp, slave_nam
|
@@ -2727,6 +2734,7 @@ get_pty(master_fdp, slave_fdp, slave_nam
|
||||||
}
|
}
|
||||||
#endif /* TIOCGPTN */
|
#endif /* TIOCGPTN */
|
||||||
|
|
||||||
@ -88,7 +88,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
if (sfd < 0) {
|
if (sfd < 0) {
|
||||||
/* the old way - scan through the pty name space */
|
/* the old way - scan through the pty name space */
|
||||||
for (i = 0; i < 64; ++i) {
|
for (i = 0; i < 64; ++i) {
|
||||||
@@ -2748,6 +2756,7 @@ get_pty(master_fdp, slave_fdp, slave_nam
|
@@ -2745,6 +2753,7 @@ get_pty(master_fdp, slave_fdp, slave_nam
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -125,7 +125,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
char *pppd_pppoe_service = NULL;
|
char *pppd_pppoe_service = NULL;
|
||||||
static char *acName = NULL;
|
static char *acName = NULL;
|
||||||
static char *existingSession = NULL;
|
static char *existingSession = NULL;
|
||||||
@@ -371,10 +368,6 @@ PPPoEDevnameHook(char *cmd, char **argv,
|
@@ -372,10 +369,6 @@ PPPoEDevnameHook(char *cmd, char **argv,
|
||||||
void
|
void
|
||||||
plugin_init(void)
|
plugin_init(void)
|
||||||
{
|
{
|
||||||
|
@ -7,7 +7,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
--- a/pppd/pppd.h
|
--- a/pppd/pppd.h
|
||||||
+++ b/pppd/pppd.h
|
+++ b/pppd/pppd.h
|
||||||
@@ -317,7 +317,6 @@ extern int holdoff; /* Dead time before
|
@@ -326,7 +326,6 @@ extern int holdoff; /* Dead time before
|
||||||
extern bool holdoff_specified; /* true if user gave a holdoff value */
|
extern bool holdoff_specified; /* true if user gave a holdoff value */
|
||||||
extern bool notty; /* Stdin/out is not a tty */
|
extern bool notty; /* Stdin/out is not a tty */
|
||||||
extern char *pty_socket; /* Socket to connect to pty */
|
extern char *pty_socket; /* Socket to connect to pty */
|
||||||
|
@ -7,7 +7,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
--- a/pppd/sys-linux.c
|
--- a/pppd/sys-linux.c
|
||||||
+++ b/pppd/sys-linux.c
|
+++ b/pppd/sys-linux.c
|
||||||
@@ -2267,6 +2267,7 @@ int ppp_available(void)
|
@@ -2264,6 +2264,7 @@ int ppp_available(void)
|
||||||
|
|
||||||
void logwtmp (const char *line, const char *name, const char *host)
|
void logwtmp (const char *line, const char *name, const char *host)
|
||||||
{
|
{
|
||||||
@ -15,7 +15,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
struct utmp ut, *utp;
|
struct utmp ut, *utp;
|
||||||
pid_t mypid = getpid();
|
pid_t mypid = getpid();
|
||||||
#if __GLIBC__ < 2
|
#if __GLIBC__ < 2
|
||||||
@@ -2332,6 +2333,7 @@ void logwtmp (const char *line, const ch
|
@@ -2329,6 +2330,7 @@ void logwtmp (const char *line, const ch
|
||||||
close (wtmp);
|
close (wtmp);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
@ -7,7 +7,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
--- a/pppd/main.c
|
--- a/pppd/main.c
|
||||||
+++ b/pppd/main.c
|
+++ b/pppd/main.c
|
||||||
@@ -882,14 +882,17 @@ struct protocol_list {
|
@@ -874,14 +874,17 @@ struct protocol_list {
|
||||||
const char *name;
|
const char *name;
|
||||||
} protocol_list[] = {
|
} protocol_list[] = {
|
||||||
{ 0x21, "IP" },
|
{ 0x21, "IP" },
|
||||||
@ -25,7 +25,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
{ 0x33, "Stream Protocol ST-II" },
|
{ 0x33, "Stream Protocol ST-II" },
|
||||||
{ 0x35, "Banyan Vines" },
|
{ 0x35, "Banyan Vines" },
|
||||||
{ 0x39, "AppleTalk EDDP" },
|
{ 0x39, "AppleTalk EDDP" },
|
||||||
@@ -903,8 +906,11 @@ struct protocol_list {
|
@@ -895,8 +898,11 @@ struct protocol_list {
|
||||||
{ 0x49, "Serial Data Transport Protocol (PPP-SDTP)" },
|
{ 0x49, "Serial Data Transport Protocol (PPP-SDTP)" },
|
||||||
{ 0x4b, "SNA over 802.2" },
|
{ 0x4b, "SNA over 802.2" },
|
||||||
{ 0x4d, "SNA" },
|
{ 0x4d, "SNA" },
|
||||||
@ -37,7 +37,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
{ 0x53, "Encryption" },
|
{ 0x53, "Encryption" },
|
||||||
{ 0x55, "Individual Link Encryption" },
|
{ 0x55, "Individual Link Encryption" },
|
||||||
{ 0x57, "IPv6" },
|
{ 0x57, "IPv6" },
|
||||||
@@ -915,12 +921,15 @@ struct protocol_list {
|
@@ -907,12 +913,15 @@ struct protocol_list {
|
||||||
{ 0x65, "RTP IPHC Compressed non-TCP" },
|
{ 0x65, "RTP IPHC Compressed non-TCP" },
|
||||||
{ 0x67, "RTP IPHC Compressed UDP 8" },
|
{ 0x67, "RTP IPHC Compressed UDP 8" },
|
||||||
{ 0x69, "RTP IPHC Compressed RTP 8" },
|
{ 0x69, "RTP IPHC Compressed RTP 8" },
|
||||||
@ -53,7 +53,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
{ 0x0203, "IBM Source Routing BPDU" },
|
{ 0x0203, "IBM Source Routing BPDU" },
|
||||||
{ 0x0205, "DEC LANBridge100 Spanning Tree" },
|
{ 0x0205, "DEC LANBridge100 Spanning Tree" },
|
||||||
{ 0x0207, "Cisco Discovery Protocol" },
|
{ 0x0207, "Cisco Discovery Protocol" },
|
||||||
@@ -932,15 +941,19 @@ struct protocol_list {
|
@@ -924,15 +933,19 @@ struct protocol_list {
|
||||||
{ 0x0231, "Luxcom" },
|
{ 0x0231, "Luxcom" },
|
||||||
{ 0x0233, "Sigma Network Systems" },
|
{ 0x0233, "Sigma Network Systems" },
|
||||||
{ 0x0235, "Apple Client Server Protocol" },
|
{ 0x0235, "Apple Client Server Protocol" },
|
||||||
@ -73,7 +73,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
{ 0x4001, "Cray Communications Control Protocol" },
|
{ 0x4001, "Cray Communications Control Protocol" },
|
||||||
{ 0x4003, "CDPD Mobile Network Registration Protocol" },
|
{ 0x4003, "CDPD Mobile Network Registration Protocol" },
|
||||||
{ 0x4005, "Expand accelerator protocol" },
|
{ 0x4005, "Expand accelerator protocol" },
|
||||||
@@ -951,8 +964,10 @@ struct protocol_list {
|
@@ -943,8 +956,10 @@ struct protocol_list {
|
||||||
{ 0x4023, "RefTek Protocol" },
|
{ 0x4023, "RefTek Protocol" },
|
||||||
{ 0x4025, "Fibre Channel" },
|
{ 0x4025, "Fibre Channel" },
|
||||||
{ 0x4027, "EMIT Protocols" },
|
{ 0x4027, "EMIT Protocols" },
|
||||||
@ -84,7 +84,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
{ 0x8023, "OSI Network Layer Control Protocol" },
|
{ 0x8023, "OSI Network Layer Control Protocol" },
|
||||||
{ 0x8025, "Xerox NS IDP Control Protocol" },
|
{ 0x8025, "Xerox NS IDP Control Protocol" },
|
||||||
{ 0x8027, "DECnet Phase IV Control Protocol" },
|
{ 0x8027, "DECnet Phase IV Control Protocol" },
|
||||||
@@ -961,7 +976,9 @@ struct protocol_list {
|
@@ -953,7 +968,9 @@ struct protocol_list {
|
||||||
{ 0x8031, "Bridging NCP" },
|
{ 0x8031, "Bridging NCP" },
|
||||||
{ 0x8033, "Stream Protocol Control Protocol" },
|
{ 0x8033, "Stream Protocol Control Protocol" },
|
||||||
{ 0x8035, "Banyan Vines Control Protocol" },
|
{ 0x8035, "Banyan Vines Control Protocol" },
|
||||||
@ -94,7 +94,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
{ 0x803f, "NETBIOS Framing Control Protocol" },
|
{ 0x803f, "NETBIOS Framing Control Protocol" },
|
||||||
{ 0x8041, "Cisco Systems Control Protocol" },
|
{ 0x8041, "Cisco Systems Control Protocol" },
|
||||||
{ 0x8043, "Ascom Timeplex" },
|
{ 0x8043, "Ascom Timeplex" },
|
||||||
@@ -970,18 +987,24 @@ struct protocol_list {
|
@@ -962,18 +979,24 @@ struct protocol_list {
|
||||||
{ 0x8049, "Serial Data Control Protocol (PPP-SDCP)" },
|
{ 0x8049, "Serial Data Control Protocol (PPP-SDCP)" },
|
||||||
{ 0x804b, "SNA over 802.2 Control Protocol" },
|
{ 0x804b, "SNA over 802.2 Control Protocol" },
|
||||||
{ 0x804d, "SNA Control Protocol" },
|
{ 0x804d, "SNA Control Protocol" },
|
||||||
@ -119,7 +119,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
{ 0x8207, "Cisco Discovery Protocol Control" },
|
{ 0x8207, "Cisco Discovery Protocol Control" },
|
||||||
{ 0x8209, "Netcs Twin Routing" },
|
{ 0x8209, "Netcs Twin Routing" },
|
||||||
{ 0x820b, "STP - Control Protocol" },
|
{ 0x820b, "STP - Control Protocol" },
|
||||||
@@ -990,24 +1013,29 @@ struct protocol_list {
|
@@ -982,24 +1005,29 @@ struct protocol_list {
|
||||||
{ 0x8281, "MPLSCP" },
|
{ 0x8281, "MPLSCP" },
|
||||||
{ 0x8285, "IEEE p1284.4 standard - Protocol Control" },
|
{ 0x8285, "IEEE p1284.4 standard - Protocol Control" },
|
||||||
{ 0x8287, "ETSI TETRA TNP1 Control Protocol" },
|
{ 0x8287, "ETSI TETRA TNP1 Control Protocol" },
|
||||||
|
@ -9,7 +9,7 @@ Signed-off-by: Jo-Philipp Wich <jo@mein.io>
|
|||||||
|
|
||||||
--- a/pppd/options.c
|
--- a/pppd/options.c
|
||||||
+++ b/pppd/options.c
|
+++ b/pppd/options.c
|
||||||
@@ -336,13 +336,14 @@ option_t general_options[] = {
|
@@ -350,13 +350,14 @@ option_t general_options[] = {
|
||||||
"Enable multilink operation", OPT_PRIOSUB | OPT_ALIAS | 1 },
|
"Enable multilink operation", OPT_PRIOSUB | OPT_ALIAS | 1 },
|
||||||
{ "nomultilink", o_bool, &multilink,
|
{ "nomultilink", o_bool, &multilink,
|
||||||
"Disable multilink operation", OPT_PRIOSUB | 0 },
|
"Disable multilink operation", OPT_PRIOSUB | 0 },
|
||||||
|
@ -147,7 +147,7 @@
|
|||||||
strlcpy(ppp_devnam, devnam, sizeof(ppp_devnam));
|
strlcpy(ppp_devnam, devnam, sizeof(ppp_devnam));
|
||||||
--- a/pppd/plugins/rp-pppoe/pppoe-discovery.c
|
--- a/pppd/plugins/rp-pppoe/pppoe-discovery.c
|
||||||
+++ b/pppd/plugins/rp-pppoe/pppoe-discovery.c
|
+++ b/pppd/plugins/rp-pppoe/pppoe-discovery.c
|
||||||
@@ -348,7 +348,7 @@ packetIsForMe(PPPoEConnection *conn, PPP
|
@@ -356,7 +356,7 @@ packetIsForMe(PPPoEConnection *conn, PPP
|
||||||
if (memcmp(packet->ethHdr.h_dest, conn->myEth, ETH_ALEN)) return 0;
|
if (memcmp(packet->ethHdr.h_dest, conn->myEth, ETH_ALEN)) return 0;
|
||||||
|
|
||||||
/* If we're not using the Host-Unique tag, then accept the packet */
|
/* If we're not using the Host-Unique tag, then accept the packet */
|
||||||
@ -156,7 +156,7 @@
|
|||||||
|
|
||||||
parsePacket(packet, parseForHostUniq, &forMe);
|
parsePacket(packet, parseForHostUniq, &forMe);
|
||||||
return forMe;
|
return forMe;
|
||||||
@@ -474,16 +474,12 @@ sendPADI(PPPoEConnection *conn)
|
@@ -494,16 +494,12 @@ sendPADI(PPPoEConnection *conn)
|
||||||
cursor += namelen + TAG_HDR_SIZE;
|
cursor += namelen + TAG_HDR_SIZE;
|
||||||
|
|
||||||
/* If we're using Host-Uniq, copy it over */
|
/* If we're using Host-Uniq, copy it over */
|
||||||
@ -179,17 +179,17 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
packet.length = htons(plen);
|
packet.length = htons(plen);
|
||||||
@@ -645,7 +641,7 @@ int main(int argc, char *argv[])
|
@@ -669,7 +665,7 @@ int main(int argc, char *argv[])
|
||||||
|
conn->discoveryTimeout = PADI_TIMEOUT;
|
||||||
|
conn->discoveryAttempts = MAX_PADI_ATTEMPTS;
|
||||||
|
|
||||||
memset(conn, 0, sizeof(PPPoEConnection));
|
- while ((opt = getopt(argc, argv, "I:D:VUQS:C:t:a:h")) > 0) {
|
||||||
|
+ while ((opt = getopt(argc, argv, "I:D:VUW:QS:C:t:a:h")) > 0) {
|
||||||
- while ((opt = getopt(argc, argv, "I:D:VUAS:C:h")) > 0) {
|
|
||||||
+ while ((opt = getopt(argc, argv, "I:D:VUW:AS:C:h")) > 0) {
|
|
||||||
switch(opt) {
|
switch(opt) {
|
||||||
case 'S':
|
case 'S':
|
||||||
conn->serviceName = xstrdup(optarg);
|
conn->serviceName = xstrdup(optarg);
|
||||||
@@ -654,7 +650,23 @@ int main(int argc, char *argv[])
|
@@ -696,7 +692,23 @@ int main(int argc, char *argv[])
|
||||||
conn->acName = xstrdup(optarg);
|
}
|
||||||
break;
|
break;
|
||||||
case 'U':
|
case 'U':
|
||||||
- conn->useHostUniq = 1;
|
- conn->useHostUniq = 1;
|
||||||
@ -224,7 +224,7 @@
|
|||||||
|
|
||||||
/* How do we access raw Ethernet devices? */
|
/* How do we access raw Ethernet devices? */
|
||||||
#undef USE_LINUX_PACKET
|
#undef USE_LINUX_PACKET
|
||||||
@@ -217,7 +219,7 @@ typedef struct PPPoEConnectionStruct {
|
@@ -219,7 +221,7 @@ typedef struct PPPoEConnectionStruct {
|
||||||
char *serviceName; /* Desired service name, if any */
|
char *serviceName; /* Desired service name, if any */
|
||||||
char *acName; /* Desired AC name, if any */
|
char *acName; /* Desired AC name, if any */
|
||||||
int synchronous; /* Use synchronous PPP */
|
int synchronous; /* Use synchronous PPP */
|
||||||
@ -233,7 +233,7 @@
|
|||||||
int printACNames; /* Just print AC names */
|
int printACNames; /* Just print AC names */
|
||||||
FILE *debugFile; /* Debug file for dumping packets */
|
FILE *debugFile; /* Debug file for dumping packets */
|
||||||
int numPADOs; /* Number of PADO packets received */
|
int numPADOs; /* Number of PADO packets received */
|
||||||
@@ -273,6 +275,33 @@ void pppoe_printpkt(PPPoEPacket *packet,
|
@@ -276,6 +278,33 @@ void pppoe_printpkt(PPPoEPacket *packet,
|
||||||
void (*printer)(void *, char *, ...), void *arg);
|
void (*printer)(void *, char *, ...), void *arg);
|
||||||
void pppoe_log_packet(const char *prefix, PPPoEPacket *packet);
|
void pppoe_log_packet(const char *prefix, PPPoEPacket *packet);
|
||||||
|
|
||||||
|
@ -1,11 +0,0 @@
|
|||||||
--- a/pppd/plugins/rp-pppoe/plugin.c
|
|
||||||
+++ b/pppd/plugins/rp-pppoe/plugin.c
|
|
||||||
@@ -275,7 +275,7 @@ PPPOEDisconnectDevice(void)
|
|
||||||
sizeof(struct sockaddr_pppox)) < 0)
|
|
||||||
error("Failed to disconnect PPPoE socket: %d %m", errno);
|
|
||||||
close(conn->sessionSocket);
|
|
||||||
- /* don't send PADT?? */
|
|
||||||
+ sendPADT(conn, NULL);
|
|
||||||
if (conn->discoverySocket >= 0)
|
|
||||||
close(conn->discoverySocket);
|
|
||||||
}
|
|
@ -1,14 +0,0 @@
|
|||||||
--- a/pppd/plugins/rp-pppoe/plugin.c
|
|
||||||
+++ b/pppd/plugins/rp-pppoe/plugin.c
|
|
||||||
@@ -271,9 +271,8 @@ PPPOEDisconnectDevice(void)
|
|
||||||
sp.sa_addr.pppoe.sid = 0;
|
|
||||||
memcpy(sp.sa_addr.pppoe.dev, conn->ifName, IFNAMSIZ);
|
|
||||||
memcpy(sp.sa_addr.pppoe.remote, conn->peerEth, ETH_ALEN);
|
|
||||||
- if (connect(conn->sessionSocket, (struct sockaddr *) &sp,
|
|
||||||
- sizeof(struct sockaddr_pppox)) < 0)
|
|
||||||
- error("Failed to disconnect PPPoE socket: %d %m", errno);
|
|
||||||
+ connect(conn->sessionSocket, (struct sockaddr *) &sp,
|
|
||||||
+ sizeof(struct sockaddr_pppox));
|
|
||||||
close(conn->sessionSocket);
|
|
||||||
sendPADT(conn, NULL);
|
|
||||||
if (conn->discoverySocket >= 0)
|
|
@ -1,11 +0,0 @@
|
|||||||
--- a/pppd/options.c
|
|
||||||
+++ b/pppd/options.c
|
|
||||||
@@ -1013,7 +1013,7 @@ print_option(opt, mainopt, printer, arg)
|
|
||||||
p = (char *) opt->addr2;
|
|
||||||
if ((opt->flags & OPT_STATIC) == 0)
|
|
||||||
p = *(char **)p;
|
|
||||||
- printer("%q", p);
|
|
||||||
+ printer(arg, "%q", p);
|
|
||||||
} else if (opt->flags & OPT_A2LIST) {
|
|
||||||
struct option_value *ovp;
|
|
||||||
|
|
@ -0,0 +1,94 @@
|
|||||||
|
From 831dca008699d485f2c8e91749657ef2d0b06166 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Martin Schiller <ms@dev.tdt.de>
|
||||||
|
Date: Thu, 6 Dec 2018 08:43:17 +0100
|
||||||
|
Subject: [PATCH] Revert "pppd: Use openssl for the DES instead of the libcrypt
|
||||||
|
/ glibc"
|
||||||
|
|
||||||
|
For musl and glibc2.27 we can keep linking to crypt; however if we
|
||||||
|
switch to glibc 2.28 we will have to link to one of the SSL libraries.
|
||||||
|
|
||||||
|
This reverts commit 3c7b86229f7bd2600d74db14b1fe5b3896be3875.
|
||||||
|
---
|
||||||
|
pppd/Makefile.linux | 7 +++----
|
||||||
|
pppd/pppcrypt.c | 18 +++++++++---------
|
||||||
|
2 files changed, 12 insertions(+), 13 deletions(-)
|
||||||
|
|
||||||
|
--- a/pppd/Makefile.linux
|
||||||
|
+++ b/pppd/Makefile.linux
|
||||||
|
@@ -35,10 +35,10 @@ endif
|
||||||
|
COPTS = -O2 -pipe -Wall -g
|
||||||
|
LIBS =
|
||||||
|
|
||||||
|
-# Uncomment the next line to include support for Microsoft's
|
||||||
|
+# Uncomment the next 2 lines to include support for Microsoft's
|
||||||
|
# MS-CHAP authentication protocol. Also, edit plugins/radius/Makefile.linux.
|
||||||
|
CHAPMS=y
|
||||||
|
-#USE_CRYPT=y
|
||||||
|
+USE_CRYPT=y
|
||||||
|
# Don't use MSLANMAN unless you really know what you're doing.
|
||||||
|
#MSLANMAN=y
|
||||||
|
# Uncomment the next line to include support for MPPE. CHAPMS (above) must
|
||||||
|
@@ -140,8 +140,7 @@ endif
|
||||||
|
|
||||||
|
ifdef NEEDDES
|
||||||
|
ifndef USE_CRYPT
|
||||||
|
-CFLAGS += -I/usr/include/openssl
|
||||||
|
-LIBS += -lcrypto
|
||||||
|
+LIBS += -ldes $(LIBS)
|
||||||
|
else
|
||||||
|
CFLAGS += -DUSE_CRYPT=1
|
||||||
|
endif
|
||||||
|
--- a/pppd/pppcrypt.c
|
||||||
|
+++ b/pppd/pppcrypt.c
|
||||||
|
@@ -64,7 +64,7 @@ u_char *des_key; /* OUT 64 bit DES key w
|
||||||
|
des_key[7] = Get7Bits(key, 49);
|
||||||
|
|
||||||
|
#ifndef USE_CRYPT
|
||||||
|
- DES_set_odd_parity((DES_cblock *)des_key);
|
||||||
|
+ des_set_odd_parity((des_cblock *)des_key);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -158,25 +158,25 @@ u_char *clear; /* OUT 8 octets */
|
||||||
|
}
|
||||||
|
|
||||||
|
#else /* USE_CRYPT */
|
||||||
|
-static DES_key_schedule key_schedule;
|
||||||
|
+static des_key_schedule key_schedule;
|
||||||
|
|
||||||
|
bool
|
||||||
|
DesSetkey(key)
|
||||||
|
u_char *key;
|
||||||
|
{
|
||||||
|
- DES_cblock des_key;
|
||||||
|
+ des_cblock des_key;
|
||||||
|
MakeKey(key, des_key);
|
||||||
|
- DES_set_key(&des_key, &key_schedule);
|
||||||
|
+ des_set_key(&des_key, key_schedule);
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool
|
||||||
|
-DesEncrypt(clear, cipher)
|
||||||
|
+DesEncrypt(clear, key, cipher)
|
||||||
|
u_char *clear; /* IN 8 octets */
|
||||||
|
u_char *cipher; /* OUT 8 octets */
|
||||||
|
{
|
||||||
|
- DES_ecb_encrypt((DES_cblock *)clear, (DES_cblock *)cipher,
|
||||||
|
- &key_schedule, 1);
|
||||||
|
+ des_ecb_encrypt((des_cblock *)clear, (des_cblock *)cipher,
|
||||||
|
+ key_schedule, 1);
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -185,8 +185,8 @@ DesDecrypt(cipher, clear)
|
||||||
|
u_char *cipher; /* IN 8 octets */
|
||||||
|
u_char *clear; /* OUT 8 octets */
|
||||||
|
{
|
||||||
|
- DES_ecb_encrypt((DES_cblock *)cipher, (DES_cblock *)clear,
|
||||||
|
- &key_schedule, 0);
|
||||||
|
+ des_ecb_encrypt((des_cblock *)cipher, (des_cblock *)clear,
|
||||||
|
+ key_schedule, 0);
|
||||||
|
return (1);
|
||||||
|
}
|
||||||
|
|
Loading…
Reference in New Issue
Block a user