PKG_SOURCE_PROTO:=git
PKG_SOURCE_URL:=https://github.com/paulusmack/ppp
-PKG_SOURCE_DATE:=2018-06-23
-PKG_SOURCE_VERSION:=5c765a67fd25f9d84e71ed61ace37c8c97f6be15
-PKG_MIRROR_HASH:=a79e62d0569e3d6a3207f2a693532d34629fb5b3b9d8c1d9b9786ebd1d1de70f
+PKG_SOURCE_DATE:=2019-05-06
+PKG_SOURCE_VERSION:=fcb076c2b24bd8dd73f4be7a9e1712d3a352a376
+PKG_MIRROR_HASH:=9bd92ae9d32c6cee79e5fa55fd26e41c8c889461e3934e4b7519e3acdb91b2f1
PKG_MAINTAINER:=Felix Fietkau <nbd@nbd.name>
PKG_LICENSE:=BSD-4-Clause
PKG_CPE_ID:=cpe:/a:samba:ppp
--- a/pppd/plugins/rp-pppoe/pppoe.h
+++ b/pppd/plugins/rp-pppoe/pppoe.h
-@@ -52,11 +52,7 @@
+@@ -54,11 +54,7 @@
#include <netinet/in.h>
/* Ugly header files on some Linux boxes... */
#ifdef HAVE_NET_IF_TYPES_H
#include <net/if_types.h>
-@@ -84,20 +80,7 @@ typedef unsigned long UINT32_t;
+@@ -86,20 +82,7 @@ typedef unsigned long UINT32_t;
#error Could not find a 32-bit integer type
#endif
/* Ethernet frame types according to RFC 2516 */
---- a/pppd/plugins/rp-pppoe/Makefile.linux
-+++ b/pppd/plugins/rp-pppoe/Makefile.linux
-@@ -33,7 +33,7 @@ pppoe-discovery: pppoe-discovery.o debug
- $(CC) $(LDFLAGS) -o pppoe-discovery pppoe-discovery.o debug.o
-
- pppoe-discovery.o: pppoe-discovery.c
-- $(CC) $(CFLAGS) -c -o pppoe-discovery.o pppoe-discovery.c
-+ $(CC) $(CFLAGS) -I../../.. -c -o pppoe-discovery.o pppoe-discovery.c
-
- debug.o: debug.c
- $(CC) $(CFLAGS) -c -o debug.o debug.c
--- /dev/null
+--- a/pppd/plugins/rp-pppoe/debug.c
++++ b/pppd/plugins/rp-pppoe/debug.c
+@@ -16,6 +16,8 @@
+ static char const RCSID[] =
+ "$Id: debug.c,v 1.2 2008/06/09 08:34:23 paulus Exp $";
+
++#include <sys/types.h>
++
+ #include "pppoe.h"
+ #include <sys/time.h>
+ #include <time.h>
--- a/pppd/plugins/rp-pppoe/Makefile.linux
+++ b/pppd/plugins/rp-pppoe/Makefile.linux
@@ -39,7 +39,7 @@ debug.o: debug.c
- $(CC) $(CFLAGS) -c -o debug.o debug.c
+ $(CC) $(CFLAGS) -I../../.. -c -o debug.o debug.c
rp-pppoe.so: plugin.o discovery.o if.o common.o
- $(CC) $(LDFLAGS) -o rp-pppoe.so -shared plugin.o discovery.o if.o common.o
--- a/pppd/plugins/radius/config.c
+++ b/pppd/plugins/radius/config.c
-@@ -369,31 +369,37 @@ static int test_config(char *filename)
+@@ -371,31 +371,37 @@ static int test_config(char *filename)
}
#endif
/*
* This is the PPP device. Validate the version of the driver at this
-@@ -2727,6 +2734,7 @@ get_pty(master_fdp, slave_fdp, slave_nam
+@@ -2730,6 +2737,7 @@ get_pty(master_fdp, slave_fdp, slave_nam
}
#endif /* TIOCGPTN */
if (sfd < 0) {
/* the old way - scan through the pty name space */
for (i = 0; i < 64; ++i) {
-@@ -2745,6 +2753,7 @@ get_pty(master_fdp, slave_fdp, slave_nam
+@@ -2748,6 +2756,7 @@ get_pty(master_fdp, slave_fdp, slave_nam
}
}
}
info("RP-PPPoE plugin version %s compiled against pppd %s",
--- a/pppd/plugins/pppol2tp/pppol2tp.c
+++ b/pppd/plugins/pppol2tp/pppol2tp.c
-@@ -486,12 +486,7 @@ static void pppol2tp_cleanup(void)
+@@ -490,12 +490,7 @@ static void pppol2tp_cleanup(void)
void plugin_init(void)
{
strlcpy(ppp_devnam, devnam, sizeof(ppp_devnam));
--- a/pppd/plugins/rp-pppoe/pppoe-discovery.c
+++ b/pppd/plugins/rp-pppoe/pppoe-discovery.c
-@@ -356,7 +356,7 @@ packetIsForMe(PPPoEConnection *conn, PPP
+@@ -357,7 +357,7 @@ packetIsForMe(PPPoEConnection *conn, PPP
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 */
parsePacket(packet, parseForHostUniq, &forMe);
return forMe;
-@@ -494,16 +494,12 @@ sendPADI(PPPoEConnection *conn)
+@@ -495,16 +495,12 @@ sendPADI(PPPoEConnection *conn)
cursor += namelen + TAG_HDR_SIZE;
/* If we're using Host-Uniq, copy it over */
}
packet.length = htons(plen);
-@@ -669,7 +665,7 @@ int main(int argc, char *argv[])
+@@ -670,7 +666,7 @@ int main(int argc, char *argv[])
conn->discoveryTimeout = PADI_TIMEOUT;
conn->discoveryAttempts = MAX_PADI_ATTEMPTS;
switch(opt) {
case 'S':
conn->serviceName = xstrdup(optarg);
-@@ -696,7 +692,23 @@ int main(int argc, char *argv[])
+@@ -697,7 +693,23 @@ int main(int argc, char *argv[])
}
break;
case 'U':
+#include <ctype.h>
+#include <string.h>
- /* How do we access raw Ethernet devices? */
- #undef USE_LINUX_PACKET
-@@ -219,7 +221,7 @@ typedef struct PPPoEConnectionStruct {
+ #include "pppd/pppd.h" /* For error */
+
+@@ -221,7 +223,7 @@ typedef struct PPPoEConnectionStruct {
char *serviceName; /* Desired service name, if any */
char *acName; /* Desired AC name, if any */
int synchronous; /* Use synchronous PPP */
int printACNames; /* Just print AC names */
FILE *debugFile; /* Debug file for dumping packets */
int numPADOs; /* Number of PADO packets received */
-@@ -276,6 +278,33 @@ void pppoe_printpkt(PPPoEPacket *packet,
+@@ -278,6 +280,33 @@ void pppoe_printpkt(PPPoEPacket *packet,
void (*printer)(void *, char *, ...), void *arg);
void pppoe_log_packet(const char *prefix, PPPoEPacket *packet);
--- a/pppd/plugins/pppol2tp/pppol2tp.c
+++ b/pppd/plugins/pppol2tp/pppol2tp.c
-@@ -148,6 +148,10 @@ static int setdevname_pppol2tp(char **ar
- fatal("PPPoL2TP kernel driver not installed");
- }
+@@ -152,6 +152,10 @@ static int setdevname_pppol2tp(char **ar
+ if (pppol2tp_fd_str == NULL)
+ novm("PPPoL2TP FD");
+ pppol2tp_fd_str = strdup(*argv);
+ if (pppol2tp_fd_str == NULL)