@@ -38,27 +38,29 @@ etc/ppp/standardloginscript
#usr/include/pppd/upap.h
#usr/lib/pkgconfig/pppd.pc
usr/lib/pppd
-usr/lib/pppd/2.5.2
-#usr/lib/pppd/2.5.2/minconn.la
-usr/lib/pppd/2.5.2/minconn.so
-#usr/lib/pppd/2.5.2/openl2tp.la
-usr/lib/pppd/2.5.2/openl2tp.so
-#usr/lib/pppd/2.5.2/passwordfd.la
-usr/lib/pppd/2.5.2/passwordfd.so
-#usr/lib/pppd/2.5.2/pppoatm.la
-usr/lib/pppd/2.5.2/pppoatm.so
-#usr/lib/pppd/2.5.2/pppoe.la
-usr/lib/pppd/2.5.2/pppoe.so
-#usr/lib/pppd/2.5.2/pppol2tp.la
-usr/lib/pppd/2.5.2/pppol2tp.so
-#usr/lib/pppd/2.5.2/radattr.la
-usr/lib/pppd/2.5.2/radattr.so
-#usr/lib/pppd/2.5.2/radius.la
-usr/lib/pppd/2.5.2/radius.so
-#usr/lib/pppd/2.5.2/radrealms.la
-usr/lib/pppd/2.5.2/radrealms.so
-#usr/lib/pppd/2.5.2/winbind.la
-usr/lib/pppd/2.5.2/winbind.so
+usr/lib/pppd/2.5.5
+#usr/lib/pppd/2.5.5/dhcpv6relay.la
+usr/lib/pppd/2.5.5/dhcpv6relay.so
+#usr/lib/pppd/2.5.5/minconn.la
+usr/lib/pppd/2.5.5/minconn.so
+#usr/lib/pppd/2.5.5/openl2tp.la
+usr/lib/pppd/2.5.5/openl2tp.so
+#usr/lib/pppd/2.5.5/passwordfd.la
+usr/lib/pppd/2.5.5/passwordfd.so
+#usr/lib/pppd/2.5.5/pppoatm.la
+usr/lib/pppd/2.5.5/pppoatm.so
+#usr/lib/pppd/2.5.5/pppoe.la
+usr/lib/pppd/2.5.5/pppoe.so
+#usr/lib/pppd/2.5.5/pppol2tp.la
+usr/lib/pppd/2.5.5/pppol2tp.so
+#usr/lib/pppd/2.5.5/radattr.la
+usr/lib/pppd/2.5.5/radattr.so
+#usr/lib/pppd/2.5.5/radius.la
+usr/lib/pppd/2.5.5/radius.so
+#usr/lib/pppd/2.5.5/radrealms.la
+usr/lib/pppd/2.5.5/radrealms.so
+#usr/lib/pppd/2.5.5/winbind.la
+usr/lib/pppd/2.5.5/winbind.so
usr/sbin/chat
usr/sbin/pppd
usr/sbin/pppdump
@@ -1,7 +1,7 @@
###############################################################################
# #
# IPFire.org - A linux based firewall #
-# Copyright (C) 2007-2025 IPFire Team <info@ipfire.org> #
+# Copyright (C) 2007-2026 IPFire Team <info@ipfire.org> #
# #
# This program is free software: you can redistribute it and/or modify #
# it under the terms of the GNU General Public License as published by #
@@ -24,7 +24,7 @@
include Config
-VER = 2.5.2
+VER = 2.5.5
# Download source file from https://download.samba.org/pub/ppp/
@@ -45,7 +45,7 @@ objects = $(DL_FILE)
$(DL_FILE) = $(DL_FROM)/$(DL_FILE)
-$(DL_FILE)_BLAKE2 = 5a79bfaf23c2f1cba7b2c4e8f27e6033aa7ee6e119b4d96dfd2870f91524052fe9ed16149e5f76cf93370159f491af828b4103eb04bd4f5dbbecca4a08af9d0d
+$(DL_FILE)_BLAKE2 = 2983bf73c0ac65599f4b21e802d1f7be68a004d60008f470a1f5acef3b5fdd3be8bacffb28eb75c9399695f9657398c2d8366acc20f9d5c9b7566f97b6f2ee64
install : $(TARGET)
@@ -76,11 +76,11 @@ $(TARGET) : $(patsubst %,$(DIR_DL)/%,$(objects))
@$(PREBUILD)
@rm -rf $(DIR_APP) && cd $(DIR_SRC) && tar zxf $(DIR_DL)/$(DL_FILE)
cd $(DIR_APP) && autoreconf -vfi
- cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/ppp/ppp-2.5.1-1-we-don-t-want-to-accidentally-leak-fds.patch
- cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/ppp/ppp-2.5.1-2-everywhere-O_CLOEXEC-harder.patch
- cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/ppp/ppp-2.5.1-3-everywhere-use-SOCK_CLOEXEC-when-creating-socket.patch
- cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/ppp/ppp-2.5.1-4-increase-max-padi-attempts.patch
- cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/ppp/ppp-2.5.1-5-headers_4.9.patch
+ cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/ppp/ppp-2.5.5-1-we-don-t-want-to-accidentally-leak-fds.patch
+ cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/ppp/ppp-2.5.5-2-everywhere-O_CLOEXEC-harder.patch
+ cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/ppp/ppp-2.5.5-3-everywhere-use-SOCK_CLOEXEC-when-creating-socket.patch
+ cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/ppp/ppp-2.5.5-4-increase-max-padi-attempts.patch
+ cd $(DIR_APP) && patch -Np0 -i $(DIR_SRC)/src/patches/ppp/ppp-2.5.5-5-headers.patch
cd $(DIR_APP) && ./configure \
--prefix=/usr \
--sysconfdir=/etc \
similarity index 65%
rename from src/patches/ppp/ppp-2.5.1-1-we-don-t-want-to-accidentally-leak-fds.patch
rename to src/patches/ppp/ppp-2.5.5-1-we-don-t-want-to-accidentally-leak-fds.patch
@@ -1,16 +1,16 @@
diff -Naur pppd.orig/auth.c pppd/auth.c
---- pppd.orig/auth.c 2024-09-18 06:30:31.000000000 +0200
-+++ pppd/auth.c 2024-10-07 16:12:09.202924555 +0200
+--- pppd.orig/auth.c 2026-10-31 00:02:07.000000000 +0100
++++ pppd/auth.c 2026-11-12 11:09:41.239609356 +0100
@@ -529,7 +529,7 @@
free(fname);
return 0;
}
- ufile = fopen(fname, "r");
+ ufile = fopen(fname, "re");
+ check_res = ufile && ppp_check_access(fileno(ufile), fname, PPP_FT_SECRET);
if (seteuid(euid) == -1)
fatal("unable to regain privileges: %m");
- if (ufile == NULL) {
-@@ -1552,7 +1552,7 @@
+@@ -1549,7 +1549,7 @@
filename = path_upapfile;
addrs = opts = NULL;
ret = UPAP_AUTHNAK;
@@ -19,16 +19,16 @@ diff -Naur pppd.orig/auth.c pppd/auth.c
if (f == NULL) {
error("Can't open PAP password file %s: %m", filename);
-@@ -1652,7 +1652,7 @@
- if (ret <= 0) {
+@@ -1657,7 +1657,7 @@
+
filename = path_upapfile;
addrs = NULL;
- f = fopen(filename, "r");
+ f = fopen(filename, "re");
if (f == NULL)
return 0;
- check_access(f, filename);
-@@ -1698,7 +1698,7 @@
+ fd = fileno(f);
+@@ -1707,7 +1707,7 @@
}
filename = path_upapfile;
@@ -36,8 +36,8 @@ diff -Naur pppd.orig/auth.c pppd/auth.c
+ f = fopen(filename, "re");
if (f == NULL)
return 0;
- check_access(f, filename);
-@@ -1735,7 +1735,7 @@
+ if (!ppp_check_access(fileno(f), filename, PPP_FT_SECRET)) {
+@@ -1747,7 +1747,7 @@
}
filename = path_upapfile;
@@ -46,7 +46,7 @@ diff -Naur pppd.orig/auth.c pppd/auth.c
if (f == NULL)
return 0;
-@@ -1777,7 +1777,7 @@
+@@ -1793,7 +1793,7 @@
}
filename = path_chapfile;
@@ -55,16 +55,7 @@ diff -Naur pppd.orig/auth.c pppd/auth.c
if (f == NULL)
return 0;
-@@ -1815,7 +1815,7 @@
- struct wordlist *addrs;
-
- filename = PPP_PATH_SRPFILE;
-- f = fopen(filename, "r");
-+ f = fopen(filename, "re");
- if (f == NULL)
- return 0;
-
-@@ -1866,7 +1866,7 @@
+@@ -1852,7 +1852,7 @@
addrs = NULL;
secbuf[0] = 0;
@@ -73,34 +64,25 @@ diff -Naur pppd.orig/auth.c pppd/auth.c
if (f == NULL) {
error("Can't open chap secret file %s: %m", filename);
return 0;
-@@ -1919,7 +1919,7 @@
- filename = PPP_PATH_SRPFILE;
- addrs = NULL;
+@@ -2229,7 +2229,7 @@
+ int fd;
-- fp = fopen(filename, "r");
-+ fp = fopen(filename, "re");
- if (fp == NULL) {
- error("Can't open srp secret file %s: %m", filename);
- return 0;
-@@ -2309,7 +2309,7 @@
- */
- if (word[0] == '@' && word[1] == '/') {
strlcpy(atfile, word+1, sizeof(atfile));
- if ((sf = fopen(atfile, "r")) == NULL) {
+ if ((sf = fopen(atfile, "re")) == NULL) {
warn("can't open indirect secret file %s", atfile);
continue;
}
-@@ -2479,7 +2479,7 @@
+@@ -2406,7 +2406,7 @@
char pkfile[MAXWORDLEN];
filename = PPP_PATH_EAPTLSSERVFILE;
- f = fopen(filename, "r");
+ f = fopen(filename, "re");
if (f == NULL)
- return 0;
+ return 0;
-@@ -2536,7 +2536,7 @@
+@@ -2466,7 +2466,7 @@
return 1;
filename = PPP_PATH_EAPTLSCLIFILE;
@@ -109,19 +91,19 @@ diff -Naur pppd.orig/auth.c pppd/auth.c
if (f == NULL)
return 0;
-@@ -2756,7 +2756,7 @@
+@@ -2692,7 +2692,7 @@
filename = (am_server ? PPP_PATH_EAPTLSSERVFILE : PPP_PATH_EAPTLSCLIFILE);
addrs = NULL;
- fp = fopen(filename, "r");
+ fp = fopen(filename, "re");
- if (fp == NULL)
- {
+ if (fp == NULL) {
error("Can't open eap-tls secret file %s: %m", filename);
+ return 0;
diff -Naur pppd.orig/options.c pppd/options.c
---- pppd.orig/options.c 2024-09-18 06:30:31.000000000 +0200
-+++ pppd/options.c 2024-10-07 16:12:40.217129032 +0200
-@@ -572,7 +572,7 @@
+--- pppd.orig/options.c 2026-10-31 00:02:07.000000000 +0100
++++ pppd/options.c 2026-11-12 11:10:25.907467723 +0100
+@@ -607,7 +607,7 @@
ppp_option_error("unable to drop privileges to open %s: %m", filename);
return 0;
}
@@ -131,9 +113,9 @@ diff -Naur pppd.orig/options.c pppd/options.c
if (check_prot && seteuid(euid) == -1)
fatal("unable to regain privileges");
diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
---- pppd.orig/sys-linux.c 2024-09-18 06:30:31.000000000 +0200
-+++ pppd/sys-linux.c 2024-10-07 16:13:35.002001250 +0200
-@@ -1970,7 +1970,7 @@
+--- pppd.orig/sys-linux.c 2026-10-31 00:02:07.000000000 +0100
++++ pppd/sys-linux.c 2026-11-12 11:11:38.918864877 +0100
+@@ -2070,7 +2070,7 @@
/* Default the mount location of /proc */
strlcpy (proc_path, "/proc", sizeof(proc_path));
proc_path_len = 5;
@@ -142,7 +124,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
if (fp != NULL) {
while ((mntent = getmntent(fp)) != NULL) {
if (strcmp(mntent->mnt_type, MNTTYPE_IGNORE) == 0)
-@@ -2030,7 +2030,7 @@
+@@ -2130,7 +2130,7 @@
close_route_table();
path = path_to_procfs("/net/route");
@@ -151,12 +133,3 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
if (route_fd == NULL) {
error("can't open routing table %s: %m", path);
return 0;
-@@ -2330,7 +2330,7 @@
- close_route_table();
-
- path = path_to_procfs("/net/ipv6_route");
-- route_fd = fopen (path, "r");
-+ route_fd = fopen (path, "re");
- if (route_fd == NULL) {
- error("can't open routing table %s: %m", path);
- return 0;
similarity index 79%
rename from src/patches/ppp/ppp-2.5.1-2-everywhere-O_CLOEXEC-harder.patch
rename to src/patches/ppp/ppp-2.5.5-2-everywhere-O_CLOEXEC-harder.patch
@@ -1,19 +1,7 @@
-diff -Naur pppd.orig/eap.c pppd/eap.c
---- pppd.orig/eap.c 2024-09-18 06:30:31.000000000 +0200
-+++ pppd/eap.c 2024-10-07 16:18:53.077603533 +0200
-@@ -1542,7 +1542,7 @@
-
- if ((path = name_of_pn_file()) == NULL)
- return (-1);
-- fd = open(path, modebits, S_IRUSR | S_IWUSR);
-+ fd = open(path, modebits, S_IRUSR | S_IWUSR | O_CLOEXEC);
- err = errno;
- free(path);
- errno = err;
diff -Naur pppd.orig/main.c pppd/main.c
---- pppd.orig/main.c 2024-09-18 06:30:31.000000000 +0200
-+++ pppd/main.c 2024-10-07 16:19:34.702106298 +0200
-@@ -491,7 +491,7 @@
+--- pppd.orig/main.c 2026-10-31 00:02:07.000000000 +0100
++++ pppd/main.c 2026-11-12 11:19:25.172479688 +0100
+@@ -495,7 +495,7 @@
die(0);
/* Make sure fds 0, 1, 2 are open to somewhere. */
@@ -23,9 +11,9 @@ diff -Naur pppd.orig/main.c pppd/main.c
fatal("Couldn't open %s: %m", PPP_DEVNULL);
while (fd_devnull <= 2) {
diff -Naur pppd.orig/options.c pppd/options.c
---- pppd.orig/options.c 2024-09-18 06:30:31.000000000 +0200
-+++ pppd/options.c 2024-10-07 16:21:04.207954343 +0200
-@@ -1736,9 +1736,9 @@
+--- pppd.orig/options.c 2026-10-31 00:02:07.000000000 +0100
++++ pppd/options.c 2026-11-12 11:20:37.072336180 +0100
+@@ -1803,9 +1803,9 @@
ppp_option_error("unable to drop permissions to open %s: %m", *argv);
return 0;
}
@@ -38,9 +26,9 @@ diff -Naur pppd.orig/options.c pppd/options.c
if (!privileged_option && seteuid(euid) == -1)
fatal("unable to regain privileges: %m");
diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
---- pppd.orig/sys-linux.c 2024-09-18 06:30:31.000000000 +0200
-+++ pppd/sys-linux.c 2024-10-07 16:27:42.282472415 +0200
-@@ -656,7 +656,7 @@
+--- pppd.orig/sys-linux.c 2026-10-31 00:02:07.000000000 +0100
++++ pppd/sys-linux.c 2026-11-12 11:25:40.913760089 +0100
+@@ -647,7 +647,7 @@
goto err;
}
dbglog("using channel %d", chindex);
@@ -49,7 +37,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
if (fd < 0) {
error("Couldn't reopen /dev/ppp: %m");
goto err;
-@@ -894,7 +894,7 @@
+@@ -974,7 +974,7 @@
dbglog("in make_ppp_unit, already had /dev/ppp open?");
close(ppp_dev_fd);
}
@@ -58,7 +46,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
if (ppp_dev_fd < 0)
fatal("Couldn't open /dev/ppp: %m");
flags = fcntl(ppp_dev_fd, F_GETFL);
-@@ -1015,7 +1015,7 @@
+@@ -1145,7 +1145,7 @@
if (!new_style_driver)
return -1;
@@ -67,7 +55,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
if (master_fd < 0)
fatal("Couldn't open /dev/ppp: %m");
if (ioctl(master_fd, PPPIOCATTACH, &ifnum) < 0) {
-@@ -2541,7 +2541,7 @@
+@@ -2529,7 +2529,7 @@
if (tune_kernel) {
forw_path = path_to_procfs("/sys/net/ipv4/ip_forward");
if (forw_path != 0) {
@@ -76,7 +64,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
if (fd >= 0) {
if (write(fd, "1", 1) != 1)
error("Couldn't enable IP forwarding: %m");
-@@ -2886,7 +2886,7 @@
+@@ -2905,7 +2905,7 @@
sscanf(utsname.release, "%d.%d.%d", &osmaj, &osmin, &ospatch);
kernel_version = KVERSION(osmaj, osmin, ospatch);
@@ -85,7 +73,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
if (fd >= 0) {
new_style_driver = 1;
-@@ -3064,7 +3064,7 @@
+@@ -3083,7 +3083,7 @@
#if __GLIBC__ >= 2
updwtmp(_PATH_WTMP, &ut);
#else
@@ -94,7 +82,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
if (wtmp >= 0) {
flock(wtmp, LOCK_EX);
-@@ -3288,7 +3288,7 @@
+@@ -3307,7 +3307,7 @@
int fd;
path = path_to_procfs("/sys/net/ipv4/ip_dynaddr");
@@ -103,7 +91,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
if (write(fd, "1", 1) != 1)
error("Couldn't enable dynamic IP addressing: %m");
close(fd);
-@@ -3542,7 +3542,7 @@
+@@ -3561,7 +3561,7 @@
/*
* Try the unix98 way first.
*/
@@ -112,7 +100,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
if (mfd >= 0) {
int ptn;
if (ioctl(mfd, TIOCGPTN, &ptn) >= 0) {
-@@ -3553,7 +3553,8 @@
+@@ -3572,7 +3572,8 @@
if (ioctl(mfd, TIOCSPTLCK, &ptn) < 0)
warn("Couldn't unlock pty slave %s: %m", pty_name);
#endif
@@ -122,7 +110,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
{
warn("Couldn't open pty slave %s: %m", pty_name);
close(mfd);
-@@ -3567,10 +3568,10 @@
+@@ -3586,10 +3587,10 @@
for (i = 0; i < 64; ++i) {
slprintf(pty_name, sizeof(pty_name), "/dev/pty%c%x",
'p' + i / 16, i % 16);
@@ -136,8 +124,8 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
ret = fchown(sfd, uid, -1);
if (ret != 0) {
diff -Naur pppd.orig/tdb.c pppd/tdb.c
---- pppd.orig/tdb.c 2024-09-18 06:30:31.000000000 +0200
-+++ pppd/tdb.c 2024-10-07 16:30:04.033122023 +0200
+--- pppd.orig/tdb.c 2026-10-31 00:02:07.000000000 +0100
++++ pppd/tdb.c 2026-11-12 11:26:23.065046016 +0100
@@ -1276,7 +1276,7 @@
}
@@ -148,9 +136,9 @@ diff -Naur pppd.orig/tdb.c pppd/tdb.c
mkdir_recursive(PPP_PATH_VARRUN) == 0)
goto again;
diff -Naur pppd.orig/tty.c pppd/tty.c
---- pppd.orig/tty.c 2024-09-18 06:30:31.000000000 +0200
-+++ pppd/tty.c 2024-10-07 16:31:11.161674911 +0200
-@@ -621,7 +621,7 @@
+--- pppd.orig/tty.c 2026-10-31 00:02:07.000000000 +0100
++++ pppd/tty.c 2026-11-12 11:27:38.333269267 +0100
+@@ -617,7 +617,7 @@
ppp_set_status(EXIT_OPEN_FAILED);
goto errret;
}
@@ -159,7 +147,7 @@ diff -Naur pppd.orig/tty.c pppd/tty.c
err = errno;
if (prio < OPRIO_ROOT && seteuid(0) == -1)
fatal("Unable to regain privileges");
-@@ -775,7 +775,7 @@
+@@ -771,7 +771,7 @@
if (connector == NULL && modem && devnam[0] != 0) {
int i;
for (;;) {
@@ -169,9 +157,9 @@ diff -Naur pppd.orig/tty.c pppd/tty.c
if (errno != EINTR) {
error("Failed to reopen %s: %m", devnam);
diff -Naur pppd.orig/utils.c pppd/utils.c
---- pppd.orig/utils.c 2024-09-18 06:30:31.000000000 +0200
-+++ pppd/utils.c 2024-10-07 16:32:37.780775463 +0200
-@@ -926,14 +926,14 @@
+--- pppd.orig/utils.c 2026-10-31 00:02:07.000000000 +0100
++++ pppd/utils.c 2026-11-12 11:28:57.716524818 +0100
+@@ -1034,14 +1034,14 @@
slprintf(lock_file, sizeof(lock_file), "%s/LCK..%s", PPP_PATH_LOCKDIR, dev);
#endif
@@ -188,7 +176,7 @@ diff -Naur pppd.orig/utils.c pppd/utils.c
if (fd < 0) {
if (errno == ENOENT) /* This is just a timing problem. */
continue;
-@@ -1016,7 +1016,7 @@
+@@ -1124,7 +1124,7 @@
if (lock_file[0] == 0)
return -1;
similarity index 76%
rename from src/patches/ppp/ppp-2.5.1-3-everywhere-use-SOCK_CLOEXEC-when-creating-socket.patch
rename to src/patches/ppp/ppp-2.5.5-3-everywhere-use-SOCK_CLOEXEC-when-creating-socket.patch
@@ -1,6 +1,6 @@
diff -Naur pppd.orig/plugins/pppoatm/pppoatm.c pppd/plugins/pppoatm/pppoatm.c
---- pppd.orig/plugins/pppoatm/pppoatm.c 2023-03-25 05:38:30.000000000 +0100
-+++ pppd/plugins/pppoatm/pppoatm.c 2023-06-30 13:21:33.397378347 +0200
+--- pppd.orig/plugins/pppoatm/pppoatm.c 2026-10-31 00:02:07.000000000 +0100
++++ pppd/plugins/pppoatm/pppoatm.c 2026-11-12 12:29:52.914103725 +0100
@@ -146,7 +146,7 @@
if (!device_got_set)
@@ -11,11 +11,11 @@ diff -Naur pppd.orig/plugins/pppoatm/pppoatm.c pppd/plugins/pppoatm/pppoatm.c
fatal("failed to create socket: %m");
memset(&qos, 0, sizeof qos);
diff -Naur pppd.orig/plugins/pppoe/if.c pppd/plugins/pppoe/if.c
---- pppd.orig/plugins/pppoe/if.c 2022-12-30 02:12:39.000000000 +0100
-+++ pppd/plugins/pppoe/if.c 2023-06-30 13:24:11.372183452 +0200
-@@ -116,7 +116,7 @@
- stype = SOCK_PACKET;
- #endif
+--- pppd.orig/plugins/pppoe/if.c 2026-10-31 00:02:07.000000000 +0100
++++ pppd/plugins/pppoe/if.c 2026-11-12 12:30:40.688340967 +0100
+@@ -121,7 +121,7 @@
+ return -1;
+ }
- if ((fd = socket(domain, stype, htons(type))) < 0) {
+ if ((fd = socket(domain, stype | SOCK_CLOEXEC, htons(type))) < 0) {
@@ -23,9 +23,9 @@ diff -Naur pppd.orig/plugins/pppoe/if.c pppd/plugins/pppoe/if.c
if (errno == EPERM) {
fatal("Cannot create raw socket -- pppoe must be run as root.");
diff -Naur pppd.orig/plugins/pppoe/plugin.c pppd/plugins/pppoe/plugin.c
---- pppd.orig/plugins/pppoe/plugin.c 2023-03-25 05:38:30.000000000 +0100
-+++ pppd/plugins/pppoe/plugin.c 2023-06-30 13:25:58.798782323 +0200
-@@ -155,7 +155,7 @@
+--- pppd.orig/plugins/pppoe/plugin.c 2026-10-31 00:02:07.000000000 +0100
++++ pppd/plugins/pppoe/plugin.c 2026-11-12 12:32:19.848885925 +0100
+@@ -150,7 +150,7 @@
/* server equipment). */
/* Opening this socket just before waitForPADS in the discovery() */
/* function would be more appropriate, but it would mess-up the code */
@@ -34,7 +34,7 @@ diff -Naur pppd.orig/plugins/pppoe/plugin.c pppd/plugins/pppoe/plugin.c
if (conn->sessionSocket < 0) {
error("Failed to create PPPoE socket: %m");
return -1;
-@@ -166,7 +166,7 @@
+@@ -161,7 +161,7 @@
lcp_wantoptions[0].mru = conn->mru = conn->storedmru;
/* Update maximum MRU */
@@ -43,7 +43,7 @@ diff -Naur pppd.orig/plugins/pppoe/plugin.c pppd/plugins/pppoe/plugin.c
if (s < 0) {
error("Can't get MTU for %s: %m", conn->ifName);
goto errout;
-@@ -364,7 +364,7 @@
+@@ -366,7 +366,7 @@
}
/* Open a socket */
@@ -53,9 +53,9 @@ diff -Naur pppd.orig/plugins/pppoe/plugin.c pppd/plugins/pppoe/plugin.c
}
diff -Naur pppd.orig/plugins/pppol2tp/openl2tp.c pppd/plugins/pppol2tp/openl2tp.c
---- pppd.orig/plugins/pppol2tp/openl2tp.c 2023-03-10 02:50:41.000000000 +0100
-+++ pppd/plugins/pppol2tp/openl2tp.c 2023-06-30 13:22:30.055768865 +0200
-@@ -93,7 +93,7 @@
+--- pppd.orig/plugins/pppol2tp/openl2tp.c 2026-10-31 00:02:07.000000000 +0100
++++ pppd/plugins/pppol2tp/openl2tp.c 2026-11-12 12:32:57.130835623 +0100
+@@ -92,7 +92,7 @@
int result;
if (openl2tp_fd < 0) {
@@ -65,9 +65,9 @@ diff -Naur pppd.orig/plugins/pppol2tp/openl2tp.c pppd/plugins/pppol2tp/openl2tp.
error("openl2tp connection create: %m");
return -ENOTCONN;
diff -Naur pppd.orig/plugins/pppol2tp/pppol2tp.c pppd/plugins/pppol2tp/pppol2tp.c
---- pppd.orig/plugins/pppol2tp/pppol2tp.c 2022-12-30 02:12:39.000000000 +0100
-+++ pppd/plugins/pppol2tp/pppol2tp.c 2023-06-30 13:23:13.493756755 +0200
-@@ -220,7 +220,7 @@
+--- pppd.orig/plugins/pppol2tp/pppol2tp.c 2026-10-31 00:02:07.000000000 +0100
++++ pppd/plugins/pppol2tp/pppol2tp.c 2026-11-12 12:33:36.408832408 +0100
+@@ -221,7 +221,7 @@
struct ifreq ifr;
int fd;
@@ -77,9 +77,9 @@ diff -Naur pppd.orig/plugins/pppol2tp/pppol2tp.c pppd/plugins/pppol2tp/pppol2tp.
memset (&ifr, '\0', sizeof (ifr));
ppp_get_ifname(ifr.ifr_name, sizeof(ifr.ifr_name));
diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
---- pppd.orig/sys-linux.c 2023-06-30 13:11:25.715511251 +0200
-+++ pppd/sys-linux.c 2023-06-30 13:32:50.021272249 +0200
-@@ -499,12 +499,12 @@
+--- pppd.orig/sys-linux.c 2026-10-31 00:02:07.000000000 +0100
++++ pppd/sys-linux.c 2026-11-12 12:36:15.477835260 +0100
+@@ -483,12 +483,12 @@
void sys_init(void)
{
/* Get an internet socket for doing socket ioctls. */
@@ -94,7 +94,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
if (sock6_fd < 0)
sock6_fd = -errno; /* save errno for later */
#endif
-@@ -2675,7 +2675,7 @@
+@@ -2671,7 +2671,7 @@
struct ifreq ifreq;
int ret, sock_fd;
@@ -103,7 +103,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
if (sock_fd < 0)
return -1;
memset(&ifreq.ifr_hwaddr, 0, sizeof(struct sockaddr));
-@@ -2698,7 +2698,7 @@
+@@ -2694,7 +2694,7 @@
struct ifreq ifreq;
int ret, sock_fd;
@@ -112,7 +112,7 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
if (sock_fd < 0)
return -1;
-@@ -2915,7 +2915,7 @@
+@@ -2942,7 +2942,7 @@
/*
* Open a socket for doing the ioctl operations.
*/
@@ -122,9 +122,9 @@ diff -Naur pppd.orig/sys-linux.c pppd/sys-linux.c
return 0;
diff -Naur pppd.orig/tty.c pppd/tty.c
---- pppd.orig/tty.c 2023-06-30 13:14:06.450418113 +0200
-+++ pppd/tty.c 2023-06-30 13:33:31.285858278 +0200
-@@ -942,7 +942,7 @@
+--- pppd.orig/tty.c 2026-10-31 00:02:07.000000000 +0100
++++ pppd/tty.c 2026-11-12 12:36:47.785642537 +0100
+@@ -938,7 +938,7 @@
*sep = ':';
/* get a socket and connect it to the other end */
similarity index 64%
rename from src/patches/ppp/ppp-2.5.1-4-increase-max-padi-attempts.patch
rename to src/patches/ppp/ppp-2.5.5-4-increase-max-padi-attempts.patch
@@ -1,7 +1,7 @@
diff -Naur pppd.orig/plugins/pppoe/pppoe.h pppd/plugins/pppoe/pppoe.h
---- pppd.orig/plugins/pppoe/pppoe.h 2022-12-30 02:12:39.000000000 +0100
-+++ pppd/plugins/pppoe/pppoe.h 2023-06-30 13:37:07.189078090 +0200
-@@ -143,7 +143,7 @@
+--- pppd.orig/plugins/pppoe/pppoe.h 2026-10-31 00:02:07.000000000 +0100
++++ pppd/plugins/pppoe/pppoe.h 2026-11-12 12:39:37.389855386 +0100
+@@ -141,7 +141,7 @@
#define STATE_TERMINATED 4
/* How many PADI/PADS attempts? */
similarity index 60%
rename from src/patches/ppp/ppp-2.5.1-5-headers_4.9.patch
rename to src/patches/ppp/ppp-2.5.5-5-headers.patch
@@ -1,7 +1,7 @@
diff -Naur pppd.orig/plugins/pppoe/plugin.c pppd/plugins/pppoe/plugin.c
---- pppd.orig/plugins/pppoe/plugin.c 2023-06-30 13:25:58.798782323 +0200
-+++ pppd/plugins/pppoe/plugin.c 2023-06-30 13:50:23.150026201 +0200
-@@ -46,6 +46,8 @@
+--- pppd.orig/plugins/pppoe/plugin.c 2026-10-31 00:02:07.000000000 +0100
++++ pppd/plugins/pppoe/plugin.c 2026-11-12 12:42:29.523097123 +0100
+@@ -43,6 +43,8 @@
#include <signal.h>
#include <net/if_arp.h>
#include <linux/ppp_defs.h>