diff options
| author | Anton Berezin <tobez@FreeBSD.org> | 2004-03-23 12:16:48 +0000 |
|---|---|---|
| committer | Anton Berezin <tobez@FreeBSD.org> | 2004-03-23 12:16:48 +0000 |
| commit | 70d92a380218cddf9a8f55db76931fc63a586c09 (patch) | |
| tree | 211d1ac4ddf8fd41ee12d67241a17ba5d9b14f7e /sys/compat/linux | |
| parent | cadec8d42eac963d957397d3c584ca8c7031bbd7 (diff) | |
Notes
Diffstat (limited to 'sys/compat/linux')
| -rw-r--r-- | sys/compat/linux/linux_misc.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/sys/compat/linux/linux_misc.c b/sys/compat/linux/linux_misc.c index 758d882a001d..b5b2a4b96f0e 100644 --- a/sys/compat/linux/linux_misc.c +++ b/sys/compat/linux/linux_misc.c @@ -686,6 +686,8 @@ linux_newuname(struct proc *p, struct linux_newuname_args *args) { struct l_new_utsname utsname; char *osrelease, *osname; + int name[2]; + int error, plen, olen; #ifdef DEBUG if (ldebug(newuname)) @@ -697,7 +699,14 @@ linux_newuname(struct proc *p, struct linux_newuname_args *args) bzero(&utsname, sizeof(utsname)); strncpy(utsname.sysname, osname, LINUX_MAX_UTSNAME-1); - strncpy(utsname.nodename, hostname, LINUX_MAX_UTSNAME-1); + + name[0] = CTL_KERN; + name[1] = KERN_HOSTNAME; + olen = LINUX_MAX_UTSNAME-1; + error = kernel_sysctl(p, name, 2, utsname.nodename, &olen, NULL, 0, &plen); + if (error) + strncpy(utsname.nodename, hostname, LINUX_MAX_UTSNAME-1); + strncpy(utsname.release, osrelease, LINUX_MAX_UTSNAME-1); strncpy(utsname.version, version, LINUX_MAX_UTSNAME-1); strncpy(utsname.machine, machine, LINUX_MAX_UTSNAME-1); |
