From b519f6c57f1e2ca2155fffad9210387302ea6abc Mon Sep 17 00:00:00 2001 From: Michiel Broek Date: Wed, 31 Aug 2005 19:48:45 +0000 Subject: [PATCH] added possible OpenBSD solution --- unix/mbuseradd.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/unix/mbuseradd.c b/unix/mbuseradd.c index b2267111..b0c50594 100644 --- a/unix/mbuseradd.c +++ b/unix/mbuseradd.c @@ -222,7 +222,26 @@ int main(int argc, char *argv[]) */ temp = calloc(PATH_MAX, sizeof(char)); #if defined(__OpenBSD__) -// FIXME: no /proc on OpenBSD +#define ARG_SIZE 60 + static char **s, buf[ARG_SIZE]; + size_t siz = 100; + char **p; + int mib[4]; + + mib[0] = CTL_KERN; + mib[1] = KERN_PROC_ARGS; + mib[2] = ppid; + mib[3] = KERN_PROC_ARGV; + if (sysctl(mib, 4, s, &siz, NULL, 0) == 0) + break; + buf[0] = '\0'; + s = malloc(size, sizeof(char *)); + for (p = s; *p != NULL; p++) { + if (p != s) + strlcat(buf, " ", sizeof(buf)); + strlcat(buf, *p, sizeof(buf)); + } + fprintf("%s\n", buf); #else ppid = getppid(); snprintf(temp, PATH_MAX, "/proc/%d/cmdline", ppid);