1
0
mirror of https://git.FreeBSD.org/ports.git synced 2024-11-25 00:51:21 +00:00

net/dhcpd: Add option to disable PF support

While here, remove unneeded USERS and GROUPS lines.

PR:		229490
Submitted by:	Nikola Kolev <koue@chaosophia.net> (maintainer)
This commit is contained in:
Steve Wills 2018-07-04 14:21:07 +00:00
parent e068c0966a
commit 3af863882f
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=473889
5 changed files with 130 additions and 3 deletions

View File

@ -2,7 +2,7 @@
PORTNAME= dhcpd
PORTVERSION= 6.0.20170207
PORTREVISION= 1
PORTREVISION= 2
CATEGORIES= net
MAINTAINER= koue@chaosophia.net
@ -24,8 +24,17 @@ CFLAGS+= -Wall
MAKE_ARGS+= BINDIR=${PREFIX}/sbin MANDIR=${PREFIX}/man/man
USERS= dhcpd
GROUPS= dhcpd
OPTIONS_DEFINE= NOPF
NOPF_DESC= Disable PF support
OPTIONS_SUB= yes
NOPF_CFLAGS= -DNO_PF=1
NOPF_EXTRA_PATCHES= ${PATCHDIR}/extra-patch-dhcp.c \
${PATCHDIR}/extra-patch-dhcpd.c \
${PATCHDIR}/extra-patch-memory.c \
${PATCHDIR}/extra-patch-pfutils.c
post-patch:
@${REINPLACE_CMD} -e "s|/etc/dhcpd.conf|${PREFIX}/etc/dhcpd.conf|" \

View File

@ -0,0 +1,18 @@
--- dhcp.c.orig 2018-06-06 09:10:04 UTC
+++ dhcp.c
@@ -154,6 +154,7 @@ dhcpdiscover(struct packet *packet)
* If we can't find an unabandoned lease,
* reclaim the abandoned lease.
*/
+#ifndef NO_PF
if ((lease->flags & ABANDONED_LEASE)) {
warning("Reclaiming abandoned IP address %s.",
piaddr(lease->ip_addr));
@@ -161,6 +162,7 @@ dhcpdiscover(struct packet *packet)
pfmsg('L', lease); /* unabandon address */
}
+#endif /* NO_PF */
}
/* Try to find a host_decl that matches the client

View File

@ -0,0 +1,50 @@
--- dhcpd.c.orig 2018-06-06 09:12:11 UTC
+++ dhcpd.c
@@ -74,11 +74,15 @@ u_int16_t client_port;
struct passwd *pw;
int log_priority;
int log_perror = 0;
+#ifndef NO_PF
int pfpipe[2];
+#endif /* NO_PF */
int gotpipe = 0;
int syncrecv;
int syncsend;
+#ifndef NO_PF
pid_t pfproc_pid = -1;
+#endif /* NO_PF */
char *path_dhcpd_conf = _PATH_DHCPD_CONF;
char *path_dhcpd_db = _PATH_DHCPD_DB;
char *abandoned_tab = NULL;
@@ -225,6 +229,7 @@ main(int argc, char *argv[])
if ((pw = getpwnam("_dhcp")) == NULL)
error("user \"_dhcp\" not found");
+#ifndef NO_PF
/* don't go near /dev/pf unless we actually intend to use it */
if ((abandoned_tab != NULL) ||
(changedmac_tab != NULL) ||
@@ -248,6 +253,7 @@ main(int argc, char *argv[])
break;
}
}
+#endif /* NO_PF */
if (udpsockmode)
udpsock_startup(udpaddr);
@@ -386,6 +392,7 @@ periodic_scan(void *p)
if (y < 1)
y = 1;
+#ifndef NO_PF
/* walk across all leases to find the exired ones */
for (n = subnets; n; n = n->next_subnet)
for (g = n->group; g; g = g->next)
@@ -394,6 +401,7 @@ periodic_scan(void *p)
if (cur_time >= l->ends)
if (l->ends > last_scan)
pfmsg('R', l);
+#endif /* NO_PF */
last_scan = cur_time;
add_timeout(cur_time + y, periodic_scan, NULL);

View File

@ -0,0 +1,34 @@
--- memory.c.orig 2018-06-06 09:14:19 UTC
+++ memory.c
@@ -619,9 +619,11 @@ supersede_lease(struct lease *comp, stru
comp->ends = lease->ends;
}
+#ifndef NO_PF
pfmsg('L', lease); /* address is leased. remove from purgatory */
if (do_pftable) /* address changed hwaddr. remove from overload */
pfmsg('C', lease);
+#endif /* NO_PF */
/* Return zero if we didn't commit the lease to permanent storage;
nonzero if we did. */
@@ -641,7 +643,9 @@ release_lease(struct lease *lease)
supersede_lease(lease, &lt, 1);
note("Released lease for IP address %s",
piaddr(lease->ip_addr));
+#ifndef NO_PF
pfmsg('R', lease);
+#endif /* NO_PF */
}
}
@@ -669,7 +673,9 @@ abandon_lease(struct lease *lease, char
lt.uid_len = 0;
supersede_lease(lease, &lt, 1);
+#ifndef NO_PF
pfmsg('A', lease); /* address is abandoned. send to purgatory */
+#endif /* NO_PF */
return;
}

View File

@ -0,0 +1,16 @@
--- pfutils.c.orig 2018-06-06 08:53:18 UTC
+++ pfutils.c
@@ -15,6 +15,8 @@
* OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
*/
+#ifndef NO_PF /* No need of PF support */
+
#include <sys/types.h>
#include <sys/ioctl.h>
#include <sys/socket.h>
@@ -254,3 +256,4 @@ pfmsg(char c, struct lease *lp)
break;
}
}
+#endif /* NO_PF */