From 33e4c65a6c10bebe8dc3b2865305f45a006ff92d Mon Sep 17 00:00:00 2001 From: Patrick J Volkerding Date: Thu, 28 May 2020 18:20:36 +0000 Subject: Thu May 28 18:20:36 UTC 2020 a/cryptsetup-2.3.3-x86_64-1.txz: Upgraded. a/kernel-generic-5.4.43-x86_64-1.txz: Upgraded. a/kernel-huge-5.4.43-x86_64-1.txz: Upgraded. a/kernel-modules-5.4.43-x86_64-1.txz: Upgraded. d/cmake-3.17.3-x86_64-1.txz: Upgraded. d/kernel-headers-5.4.43-x86-1.txz: Upgraded. d/python-setuptools-47.1.0-x86_64-1.txz: Upgraded. k/kernel-source-5.4.43-noarch-1.txz: Upgraded. l/babl-0.1.76-x86_64-1.txz: Upgraded. n/openssh-8.3p1-x86_64-1.txz: Upgraded. n/rp-pppoe-3.14-x86_64-1.txz: Upgraded. x/libdrm-2.4.102-x86_64-1.txz: Upgraded. x/mesa-20.1.0-x86_64-1.txz: Upgraded. isolinux/initrd.img: Rebuilt. kernels/*: Upgraded. usb-and-pxe-installers/usbboot.img: Rebuilt. --- .../n/rp-pppoe/rp-pppoe-3.14-ip-allocation.patch | 109 +++++++++++++++++++++ 1 file changed, 109 insertions(+) create mode 100644 source/n/rp-pppoe/rp-pppoe-3.14-ip-allocation.patch (limited to 'source/n/rp-pppoe/rp-pppoe-3.14-ip-allocation.patch') diff --git a/source/n/rp-pppoe/rp-pppoe-3.14-ip-allocation.patch b/source/n/rp-pppoe/rp-pppoe-3.14-ip-allocation.patch new file mode 100644 index 000000000..0fc03e753 --- /dev/null +++ b/source/n/rp-pppoe/rp-pppoe-3.14-ip-allocation.patch @@ -0,0 +1,109 @@ +--- ./man/pppoe-server.8.orig 2020-05-26 19:29:37.000000000 -0500 ++++ ./man/pppoe-server.8 2020-05-27 17:54:43.214892590 -0500 +@@ -96,6 +96,11 @@ + of 10.67.15.1 is used. + + .TP ++.B \-D ++Delegate the allocation of IP addresses to \fBpppd\fR. If specified, no ++local and remote addresses passed to pppd. ++ ++.TP + .B \-N \fInum\fR + Allows at most \fInum\fR concurrent PPPoE sessions. If not specified, + the default is 64. +--- ./src/pppoe-server.c.orig 2020-05-26 19:29:37.000000000 -0500 ++++ ./src/pppoe-server.c 2020-05-27 17:56:43.228890338 -0500 +@@ -182,6 +182,9 @@ + unsigned char LocalIP[IPV4ALEN] = {10, 0, 0, 1}; /* Counter optionally STARTS here */ + unsigned char RemoteIP[IPV4ALEN] = {10, 67, 15, 1}; /* Counter STARTS here */ + ++/* Delegates the allocation of IP addresses to pppd (as the pptpd doing) */ ++int DelegateIPAllocation = 0; ++ + /* Do we increment local IP for each connection? */ + int IncrLocalIP = 0; + +@@ -247,8 +250,8 @@ + + memset(&conn, 0, sizeof(conn)); + conn.hostUniq = NULL; +- +- syslog(LOG_INFO, ++ if (!DelegateIPAllocation) { ++ syslog(LOG_INFO, + "Session %u closed for client " + "%02x:%02x:%02x:%02x:%02x:%02x (%d.%d.%d.%d) on %s", + (unsigned int) ntohs(session->sess), +@@ -257,6 +260,15 @@ + (int) session->realpeerip[0], (int) session->realpeerip[1], + (int) session->realpeerip[2], (int) session->realpeerip[3], + session->ethif->name); ++ } else { ++ syslog(LOG_INFO, ++ "Session %u closed for client " ++ "%02x:%02x:%02x:%02x:%02x:%02x on %s", ++ (unsigned int) ntohs(session->sess), ++ session->eth[0], session->eth[1], session->eth[2], ++ session->eth[3], session->eth[4], session->eth[5], ++ session->ethif->name); ++ } + memcpy(conn.myEth, session->ethif->mac, ETH_ALEN); + conn.discoverySocket = session->ethif->sock; + conn.session = session->sess; +@@ -1155,6 +1167,7 @@ + fprintf(stderr, " -L ip -- Set local IP address.\n"); + fprintf(stderr, " -l -- Increment local IP address for each session.\n"); + fprintf(stderr, " -R ip -- Set start address of remote IP pool.\n"); ++ fprintf(stderr, " -D -- Delegates the allocation of IP addresses to pppd.\n"); + fprintf(stderr, " -S name -- Advertise specified service-name.\n"); + fprintf(stderr, " -O fname -- Use PPPD options from specified file\n"); + fprintf(stderr, " (default %s).\n", PPPOE_SERVER_OPTIONS); +@@ -1224,9 +1237,9 @@ + #endif + + #ifndef HAVE_LINUX_KERNEL_PPPOE +- char *options = "X:ix:hI:C:L:R:T:m:FN:f:O:o:sp:lrudPc:S:1q:Q:H:M:"; ++ char *options = "X:ix:hI:C:L:R:DT:m:FN:f:O:o:sp:lrudPc:S:1q:Q:H:M:"; + #else +- char *options = "X:ix:hI:C:L:R:T:m:FN:f:O:o:skp:lrudPc:S:1q:Q:H:M:"; ++ char *options = "X:ix:hI:C:L:R:DT:m:FN:f:O:o:skp:lrudPc:S:1q:Q:H:M:"; + #endif + + if (getuid() != geteuid() || +@@ -1448,6 +1461,10 @@ + } + break; + ++ case 'D': ++ DelegateIPAllocation = 1; ++ break; ++ + case 'T': + case 'm': + /* These just get passed to pppoe */ +@@ -2056,6 +2073,7 @@ + argv[c++] = "file"; + argv[c++] = pppoptfile; + ++ if (!DelegateIPAllocation) { + snprintf(buffer, SMALLBUF, "%d.%d.%d.%d:%d.%d.%d.%d", + (int) session->myip[0], (int) session->myip[1], + (int) session->myip[2], (int) session->myip[3], +@@ -2071,6 +2089,16 @@ + session->ethif->name, + session->serviceName); + argv[c++] = strdup(buffer); ++ } else { ++ syslog(LOG_INFO, ++ "Session %u created for client %02x:%02x:%02x:%02x:%02x:%02x on %s using Service-Name '%s'", ++ (unsigned int) ntohs(session->sess), ++ session->eth[0], session->eth[1], session->eth[2], ++ session->eth[3], session->eth[4], session->eth[5], ++ session->ethif->name, ++ session->serviceName); ++ } ++ + if (!argv[c-1]) { + /* TODO: Send a PADT */ + exit(EXIT_FAILURE); -- cgit v1.2.3