diff options
-rw-r--r-- | net-dialup/rp-pppoe/Manifest | 2 | ||||
-rw-r--r-- | net-dialup/rp-pppoe/files/rp-pppoe-3.15-no_max_interfaces.patch | 91 | ||||
-rw-r--r-- | net-dialup/rp-pppoe/rp-pppoe-3.15-r2.ebuild | 94 |
3 files changed, 0 insertions, 187 deletions
diff --git a/net-dialup/rp-pppoe/Manifest b/net-dialup/rp-pppoe/Manifest index 5b877da0c975..4f51e9b0b243 100644 --- a/net-dialup/rp-pppoe/Manifest +++ b/net-dialup/rp-pppoe/Manifest @@ -1,3 +1 @@ -DIST rp-pppoe-3.14-patches-01.tar.xz 4708 BLAKE2B d0c294490f5c4c8f3f81fccb8234d5eec2257350a41206bf05882aa7e2aa0e2cb0944a962d77e23451f604376168298d5ef99c70b134989c35261bae6046b882 SHA512 0ae0f91e8b9cfcd7d1a1af6cb55f7972e9bc029cd4b10469d5be696ae750d6aabb5f59426e9bf6f700d5a56decd3ddf85a097bb98ae1d06f0b167967b5b8b8ea -DIST rp-pppoe-3.15.tar.gz 224966 BLAKE2B 85eda606677b71e35ed3b9389db0d01ac1f16c7b40cc31b3adf31946b18454b77867a5e8822386e9fb08455399733242c4c074c2fee6f1c4d62fe23b44e82707 SHA512 a156c084e57361ab6a464c3205ffb85cf86d02f71f17f92c9567f1ab0ed300f10030832fd232084699dc842ac4891efc8c54c8165587bfc7b4c92724318a60d9 DIST rp-pppoe-4.0.tar.gz 139539 BLAKE2B ba9f11e547dafdacf6fc4d525488a4ac0279b06d545e0c116e568c92a45eb8ab558ca9112f1debecacde5401cb5974eacdf972b1b4cd813711589b8181e918de SHA512 faebe543988b1ffacd4d9bf55a3ec21f3a541f9232ba6c7b6fa0e8103d6c2b7b1c358e7f7bc8f99bebb24b2f7bdcc2f46ba1ef4c23e6dd34062f8f28114e7aea diff --git a/net-dialup/rp-pppoe/files/rp-pppoe-3.15-no_max_interfaces.patch b/net-dialup/rp-pppoe/files/rp-pppoe-3.15-no_max_interfaces.patch deleted file mode 100644 index ecf70f09ddc6..000000000000 --- a/net-dialup/rp-pppoe/files/rp-pppoe-3.15-no_max_interfaces.patch +++ /dev/null @@ -1,91 +0,0 @@ -pppoe-server: MAX_INTERFACES 64 is a problem for ULS. - -We currently require 77 interfaces, this code just lifts the limit entirely and -will keep adding interfaces for as much RAM as you have to store an array as -required. - -Signed-off-by: Jaco Kroon <jaco@uls.co.za> - -diff -rau rp-pppoe-3.15/src.o/pppoe-server.c rp-pppoe-3.15/src/pppoe-server.c ---- rp-pppoe-3.15.o/src/pppoe-server.c 2021-05-07 15:18:00.000000000 +0200 -+++ rp-pppoe-3.15/src/pppoe-server.c 2021-12-07 21:53:46.755693003 +0200 -@@ -115,8 +115,9 @@ - ClientSession *BusySessions = NULL; - - /* Interfaces we're listening on */ --Interface interfaces[MAX_INTERFACES]; -+Interface *interfaces = NULL; - int NumInterfaces = 0; -+int MaxInterfaces = 0; - - /* The number of session slots */ - size_t NumSessionSlots; -@@ -1235,11 +1236,16 @@ - exit(1); - } - -- memset(interfaces, 0, sizeof(interfaces)); -- - /* Initialize syslog */ - openlog("pppoe-server", LOG_PID, LOG_DAEMON); - -+ MaxInterfaces = INIT_INTERFACES; -+ interfaces = malloc(sizeof(*interfaces) * INIT_INTERFACES); -+ if (!interfaces) { -+ fprintf(stderr, "Out of memory allocating initial interfaces.\n"); -+ exit(1); -+ } -+ - /* Default number of session slots */ - NumSessionSlots = DEFAULT_MAX_SESSIONS; - MaxSessionsPerMac = 0; /* No limit */ -@@ -1406,10 +1412,14 @@ - break; - - case 'I': -- if (NumInterfaces >= MAX_INTERFACES) { -- fprintf(stderr, "Too many -I options (max %d)\n", -- MAX_INTERFACES); -- exit(EXIT_FAILURE); -+ if (NumInterfaces >= MaxInterfaces) { -+ MaxInterfaces *= 2; -+ interfaces = realloc(interfaces, sizeof(*interfaces) * MaxInterfaces); -+ if (!interfaces) { -+ fprintf(stderr, "Memory allocation failure trying to increase MaxInterfaces to %d\n", -+ MaxInterfaces); -+ exit(EXIT_FAILURE); -+ } - } - found = 0; - for (i=0; i<NumInterfaces; i++) { -@@ -1419,6 +1429,7 @@ - } - } - if (!found) { -+ memset(&interfaces[NumInterfaces], 0, sizeof(*interfaces)); - strncpy(interfaces[NumInterfaces].name, optarg, IFNAMSIZ); - NumInterfaces++; - } -diff -rau rp-pppoe-3.15/src.o/pppoe-server.h rp-pppoe-3.15/src/pppoe-server.h ---- rp-pppoe-3.15/src.o/pppoe-server.h 2021-05-07 15:18:00.000000000 +0200 -+++ rp-pppoe-3.15/src/pppoe-server.h 2021-12-07 21:44:09.945578094 +0200 -@@ -97,8 +97,8 @@ - /* Hack for daemonizing */ - #define CLOSEFD 64 - --/* Max. number of interfaces to listen on */ --#define MAX_INTERFACES 64 -+/* Initial Max. number of interfaces to listen on */ -+#define INIT_INTERFACES 8 - - /* Max. 64 sessions by default */ - #define DEFAULT_MAX_SESSIONS 64 -@@ -107,7 +107,7 @@ - extern ClientSession *Sessions; - - /* Interfaces we're listening on */ --extern Interface interfaces[MAX_INTERFACES]; -+extern Interface *interfaces; - extern int NumInterfaces; - - /* The number of session slots */ diff --git a/net-dialup/rp-pppoe/rp-pppoe-3.15-r2.ebuild b/net-dialup/rp-pppoe/rp-pppoe-3.15-r2.ebuild deleted file mode 100644 index b893af0a1d57..000000000000 --- a/net-dialup/rp-pppoe/rp-pppoe-3.15-r2.ebuild +++ /dev/null @@ -1,94 +0,0 @@ -# Copyright 1999-2023 Gentoo Authors -# Distributed under the terms of the GNU General Public License v2 - -EAPI=7 - -inherit autotools readme.gentoo-r1 toolchain-funcs - -PATCHSET="${PN}-3.14-patches-01" -PATCHES=( - "${FILESDIR}/rp-pppoe-3.15-no_max_interfaces.patch" -) - -DESCRIPTION="A user-mode PPPoE client and server suite for Linux" -HOMEPAGE="https://dianne.skoll.ca/projects/rp-pppoe/ https://salsa.debian.org/dskoll/rp-pppoe" -SRC_URI="https://dianne.skoll.ca/projects/rp-pppoe/download/${P}.tar.gz - https://dev.gentoo.org/~polynomial-c/dist/${PATCHSET}.tar.xz" - -LICENSE="GPL-2" -SLOT="0" -KEYWORDS="~alpha amd64 arm arm64 ~hppa ~loong ~mips ppc ppc64 ~riscv sparc x86" -IUSE="tk" - -RDEPEND=" - <net-dialup/ppp-2.5:= - sys-apps/iproute2 - tk? ( dev-lang/tk:= ) -" -DEPEND=">=sys-kernel/linux-headers-2.6.25 - elibc_musl? ( net-libs/ppp-defs ) - ${RDEPEND}" - -DOC_CONTENTS="Use pppoe-setup to configure your dialup connection" - -pkg_setup() { - # This is needed in multiple phases - PPPD_VER="$(best_version net-dialup/ppp)" - PPPD_VER="${PPPD_VER#*/*-}" #reduce it to ${PV}-${PR} - PPPD_VER="${PPPD_VER%%-*}" #reduce it to ${PV} - - PPPD_PLUGIN_DIR="/usr/$(get_libdir)/pppd/${PPPD_VER}" -} - -src_prepare() { - if ! use elibc_musl ; then - rm "${WORKDIR}/patches/${PN}-3.14-musl.patch" || die - fi - - rm "${WORKDIR}/patches/${PN}-3.14-ifconfig-path.patch" || die - - eapply "${WORKDIR}/patches" - eapply "${PATCHES[@]}" - eapply_user - - cd "${S}"/src || die - eautoreconf -} - -src_configure() { - addpredict /dev/ppp - - cd src || die - - econf --enable-plugin=/usr/include/pppd -} - -src_compile() { - cd src || die - emake AR="$(tc-getAR)" PLUGIN_PATH=rp-pppoe.so PLUGIN_DIR="${PPPD_PLUGIN_DIR}" - - if use tk ; then - emake -C "${S}/gui" - fi -} - -src_install() { - cd src || die - emake DESTDIR="${D}" docdir="/usr/share/doc/${PF}" PLUGIN_DIR="${PPPD_PLUGIN_DIR}" install - - # We don't need this README file here. - rm "${ED}${PPPD_PLUGIN_DIR}/README" || die "Error removing ${PPPD_PLUGIN_DIR}/README from installation" - - if use tk ; then - emake -C "${S}/gui" \ - DESTDIR="${D}" \ - datadir=/usr/share/doc/${PF}/ \ - install - dosym doc/${PF}/tkpppoe /usr/share/tkpppoe - fi - - newinitd "${FILESDIR}"/pppoe-server.initd pppoe-server - newconfd "${FILESDIR}"/pppoe-server.confd pppoe-server - - readme.gentoo_create_doc -} |