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:
parent
e068c0966a
commit
3af863882f
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=473889
@ -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|" \
|
||||
|
18
net/dhcpd/files/extra-patch-dhcp.c
Normal file
18
net/dhcpd/files/extra-patch-dhcp.c
Normal 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
|
50
net/dhcpd/files/extra-patch-dhcpd.c
Normal file
50
net/dhcpd/files/extra-patch-dhcpd.c
Normal 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);
|
34
net/dhcpd/files/extra-patch-memory.c
Normal file
34
net/dhcpd/files/extra-patch-memory.c
Normal 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, <, 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, <, 1);
|
||||
|
||||
+#ifndef NO_PF
|
||||
pfmsg('A', lease); /* address is abandoned. send to purgatory */
|
||||
+#endif /* NO_PF */
|
||||
return;
|
||||
}
|
||||
|
16
net/dhcpd/files/extra-patch-pfutils.c
Normal file
16
net/dhcpd/files/extra-patch-pfutils.c
Normal 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 */
|
Loading…
Reference in New Issue
Block a user