summaryrefslogtreecommitdiffstats
path: root/source/n/dhcpcd/patches/257259dd79d103f23342b1f0a3d608571a0ad549.patch
diff options
context:
space:
mode:
Diffstat (limited to 'source/n/dhcpcd/patches/257259dd79d103f23342b1f0a3d608571a0ad549.patch')
-rw-r--r--source/n/dhcpcd/patches/257259dd79d103f23342b1f0a3d608571a0ad549.patch75
1 files changed, 0 insertions, 75 deletions
diff --git a/source/n/dhcpcd/patches/257259dd79d103f23342b1f0a3d608571a0ad549.patch b/source/n/dhcpcd/patches/257259dd79d103f23342b1f0a3d608571a0ad549.patch
deleted file mode 100644
index 0ce8fa817..000000000
--- a/source/n/dhcpcd/patches/257259dd79d103f23342b1f0a3d608571a0ad549.patch
+++ /dev/null
@@ -1,75 +0,0 @@
-From 257259dd79d103f23342b1f0a3d608571a0ad549 Mon Sep 17 00:00:00 2001
-From: Roy Marples <roy@marples.name>
-Date: Thu, 13 Apr 2023 17:43:11 +0100
-Subject: [PATCH] bpf: Always open /dev/bpf directly
-
-Ignore _PATH_BPF as that's really a NetBSDism.
-If /dev/bpf throws a wobbly then try /dev/bpfN for older kernels.
-
-This allows cloning BPF on more BSD systems.
----
- src/bpf.c | 36 +++++++++++++++++-------------------
- 1 file changed, 17 insertions(+), 19 deletions(-)
-
-diff --git a/src/bpf.c b/src/bpf.c
-index e4b56f3d..b75bfb04 100644
---- a/src/bpf.c
-+++ b/src/bpf.c
-@@ -45,7 +45,6 @@
-
- #include <errno.h>
- #include <fcntl.h>
--#include <paths.h>
- #include <stddef.h>
- #include <stdlib.h>
- #include <string.h>
-@@ -155,6 +154,11 @@ bpf_open(const struct interface *ifp,
- struct bpf_version pv = { .bv_major = 0, .bv_minor = 0 };
- struct ifreq ifr = { .ifr_flags = 0 };
- int ibuf_len = 0;
-+#ifdef O_CLOEXEC
-+#define BPF_OPEN_FLAGS O_RDWR | O_NONBLOCK | O_CLOEXEC
-+#else
-+#define BPF_OPEN_FLAGS O_RDWR | O_NONBLOCK
-+#endif
- #ifdef BIOCIMMEDIATE
- unsigned int flags;
- #endif
-@@ -167,25 +171,19 @@ bpf_open(const struct interface *ifp,
- return NULL;
- bpf->bpf_ifp = ifp;
-
--#ifdef _PATH_BPF
-- bpf->bpf_fd = open(_PATH_BPF, O_RDWR | O_NONBLOCK
--#ifdef O_CLOEXEC
-- | O_CLOEXEC
--#endif
-- );
--#else
-- char device[32];
-- int n = 0;
-+ /* /dev/bpf is a cloner on modern kernels */
-+ bpf->bpf_fd = open("/dev/bpf", BPF_OPEN_FLAGS);
-
-- do {
-- snprintf(device, sizeof(device), "/dev/bpf%d", n++);
-- bpf->bpf_fd = open(device, O_RDWR | O_NONBLOCK
--#ifdef O_CLOEXEC
-- | O_CLOEXEC
--#endif
-- );
-- } while (bpf->bpf_fd == -1 && errno == EBUSY);
--#endif
-+ /* Support older kernels where /dev/bpf is not a cloner */
-+ if (bpf->bpf_fd == -1) {
-+ char device[32];
-+ int n = 0;
-+
-+ do {
-+ snprintf(device, sizeof(device), "/dev/bpf%d", n++);
-+ bpf->bpf_fd = open(device, BPF_OPEN_FLAGS);
-+ } while (bpf->bpf_fd == -1 && errno == EBUSY);
-+ }
-
- if (bpf->bpf_fd == -1)
- goto eexit;