From 7f9f75c0d30cc11694aa793b568c0098fb0db1de Mon Sep 17 00:00:00 2001 From: Jason Thorpe Date: Sat, 2 Mar 2024 18:54:11 -0800 Subject: [PATCH] Tweak the FreeBSD version of proc_self_dirname() to work on NetBSD and use it. Resolves issue #1298. --- common/kernel/command.cc | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/common/kernel/command.cc b/common/kernel/command.cc index 087af5b3..ae14ceac 100644 --- a/common/kernel/command.cc +++ b/common/kernel/command.cc @@ -61,7 +61,7 @@ #include #endif -#ifdef __FreeBSD__ +#if defined(__FreeBSD__) || defined(__NetBSD__) #include #endif @@ -90,10 +90,14 @@ std::string proc_self_dirname() buflen--; return std::string(path, buflen); } -#elif defined(__FreeBSD__) +#elif defined(__FreeBSD__) || defined(__NetBSD__) std::string proc_self_dirname() { +#ifdef __NetBSD__ + int mib[4] = {CTL_KERN, KERN_PROC_ARGS, getpid(), KERN_PROC_PATHNAME}; +#else int mib[4] = {CTL_KERN, KERN_PROC, KERN_PROC_PATHNAME, -1}; +#endif size_t buflen; char *buffer; std::string path;