diff options
author | Patrick J Volkerding <volkerdi@slackware.com> | 2023-04-15 19:39:47 +0000 |
---|---|---|
committer | Eric Hameleers <alien@slackware.com> | 2023-04-15 22:41:41 +0200 |
commit | 5aaa927dee46ee4c028394f63916cf1edac1c0ad (patch) | |
tree | 481c838754efab92bfa36fa2b204f922aabde9d4 /source/n/dhcpcd/patches/257259dd79d103f23342b1f0a3d608571a0ad549.patch | |
parent | e03738f60beba09a9ce5573ce00b38c2a3ac55c9 (diff) | |
download | current-5aaa927dee46ee4c028394f63916cf1edac1c0ad.tar.gz current-5aaa927dee46ee4c028394f63916cf1edac1c0ad.tar.xz |
Sat Apr 15 19:39:47 UTC 202320230415193947
d/pahole-1.25-x86_64-1.txz: Upgraded.
kde/digikam-8.0.0-x86_64-2.txz: Rebuilt.
Do not require SSE4.1 or SSE4.2. Thanks to BroX.
n/dhcpcd-10.0.0-x86_64-1.txz: Upgraded.
Diffstat (limited to '')
-rw-r--r-- | source/n/dhcpcd/patches/257259dd79d103f23342b1f0a3d608571a0ad549.patch | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/source/n/dhcpcd/patches/257259dd79d103f23342b1f0a3d608571a0ad549.patch b/source/n/dhcpcd/patches/257259dd79d103f23342b1f0a3d608571a0ad549.patch new file mode 100644 index 000000000..0ce8fa817 --- /dev/null +++ b/source/n/dhcpcd/patches/257259dd79d103f23342b1f0a3d608571a0ad549.patch @@ -0,0 +1,75 @@ +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; |