diff options
author | Wojciech A. Koszek <wkoszek@FreeBSD.org> | 2007-05-12 19:38:18 +0000 |
---|---|---|
committer | Wojciech A. Koszek <wkoszek@FreeBSD.org> | 2007-05-12 19:38:18 +0000 |
commit | 744b947ef84848227ce1a826167ada052973c82a (patch) | |
tree | 7df0bae947c0e7aa57e02e7373440d236848d9d0 /sys/kern/kern_mib.c | |
parent | fbe4fc2ec0af84e67e9b0ade975d2d2603962ee3 (diff) | |
download | src-744b947ef84848227ce1a826167ada052973c82a.tar.gz src-744b947ef84848227ce1a826167ada052973c82a.zip |
Notes
Diffstat (limited to 'sys/kern/kern_mib.c')
-rw-r--r-- | sys/kern/kern_mib.c | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/sys/kern/kern_mib.c b/sys/kern/kern_mib.c index 0a5220df3535..2ccb207c5933 100644 --- a/sys/kern/kern_mib.c +++ b/sys/kern/kern_mib.c @@ -42,6 +42,7 @@ __FBSDID("$FreeBSD$"); #include <sys/param.h> #include <sys/kernel.h> +#include <sys/sbuf.h> #include <sys/systm.h> #include <sys/sysctl.h> #include <sys/proc.h> @@ -295,6 +296,38 @@ SYSCTL_PROC(_kern, KERN_SECURELVL, securelevel, CTLTYPE_INT|CTLFLAG_RW|CTLFLAG_PRISON, 0, 0, sysctl_kern_securelvl, "I", "Current secure level"); +/* Actual kernel configuration options. */ +extern char kernconfstring[]; + +static int +sysctl_kern_config(SYSCTL_HANDLER_ARGS) +{ + struct sbuf *sb; + int error; + char *p; + + sb = sbuf_new(NULL, NULL, 2048, SBUF_AUTOEXTEND); + if (sb == NULL) + return (ENOMEM); + sbuf_clear(sb); + p = kernconfstring; + if (p == NULL || *p == '\0') { + sbuf_printf(sb, "No kernel configuration\n"); + } else { + sbuf_printf(sb, "%s", p); + } + sbuf_trim(sb); + sbuf_putc(sb, '\n'); + sbuf_finish(sb); + error = sysctl_handle_string(oidp, sbuf_data(sb), sbuf_len(sb), req); + if (error) + return (error); + sbuf_delete(sb); + return (error); +} +SYSCTL_PROC(_kern, OID_AUTO, conftxt, CTLTYPE_STRING|CTLFLAG_RW, + 0, 0, sysctl_kern_config, "", "Kernel configuration file"); + char domainname[MAXHOSTNAMELEN]; SYSCTL_STRING(_kern, KERN_NISDOMAINNAME, domainname, CTLFLAG_RW, &domainname, sizeof(domainname), "Name of the current YP/NIS domain"); |