about summary refs log tree commit diff
path: root/sysdeps/mach/hurd/gethostname.c
diff options
context:
space:
mode:
authorRoland McGrath <roland@gnu.org>1996-06-16 03:49:40 +0000
committerRoland McGrath <roland@gnu.org>1996-06-16 03:49:40 +0000
commit5fbef188648f5150617e0a14f1011e600f1b3a0f (patch)
tree81334ea044e87bc2cf489cc8cb49adab73b9d6dd /sysdeps/mach/hurd/gethostname.c
parentf9496a7b54c27580d4b30cc2b2b40e86738b2b81 (diff)
downloadglibc-5fbef188648f5150617e0a14f1011e600f1b3a0f.tar.gz
glibc-5fbef188648f5150617e0a14f1011e600f1b3a0f.tar.xz
glibc-5fbef188648f5150617e0a14f1011e600f1b3a0f.zip
* hurd/Makefile (routines): Add get-host, set-host.
	(distribute): Add hurdhost.h.
	* hurd/hurdhost.h: New file.
	* sysdeps/mach/hurd/gethostname.c: Use _hurd_get_host_config.
	* sysdeps/mach/hurd/gethostid.c: Likewise.
	* sysdeps/mach/hurd/sethostname.c: Use _hurd_set_host_config.
	* sysdeps/mach/hurd/sethostid.c: Likewise.
	* hurd/get-host.c: New file.
	* hurd/set-host.c: New file.

	* math/Makefile (headers): Add fpu_control.h.
	(aux): New variable, list fpu_control and setfpucw.
	* sysdeps/generic/fpu_control.c: New file.
	* sysdeps/stub/fpu_control.h: New file.
	* sysdeps/unix/sysv/linux/m68k/fpu_control.h: Moved to ...
	* sysdeps/m68k/fpu_control.h: here.
	* sysdeps/unix/sysv/linux/i386/fpu_control.h: Moved to ...
	* sysdeps/i386/fpu_control.h: here.
	* sysdeps/unix/sysv/linux/alpha/fpu_control.h: Moved to ...
	* sysdeps/alpha/fpu/fpu_control.h: here.  Fixed copyright.
	* sysdeps/unix/sysv/linux/alpha/Makefile (sysdep_routines): Remove
	setfpucw, fpu_control.
	* sysdeps/unix/sysv/linux/alpha/fpu_control.c: File removed.
	* sysdeps/unix/sysv/linux/setfpucw.c: Moved to ...
	* sysdeps/generic/setfpucw.c: here.
	(__fpu_control): Variable removed.
	(__setfpucw): Use SET even if zero.
Diffstat (limited to 'sysdeps/mach/hurd/gethostname.c')
-rw-r--r--sysdeps/mach/hurd/gethostname.c23
1 files changed, 5 insertions, 18 deletions
diff --git a/sysdeps/mach/hurd/gethostname.c b/sysdeps/mach/hurd/gethostname.c
index 94a0537d91..06703ead6a 100644
--- a/sysdeps/mach/hurd/gethostname.c
+++ b/sysdeps/mach/hurd/gethostname.c
@@ -1,4 +1,4 @@
-/* Copyright (C) 1991, 1992, 1993, 1994, 1995 Free Software Foundation, Inc.
+/* Copyright (C) 1991, 92, 93, 94, 95, 96 Free Software Foundation, Inc.
 This file is part of the GNU C Library.
 
 The GNU C Library is free software; you can redistribute it and/or
@@ -17,11 +17,8 @@ not, write to the Free Software Foundation, Inc., 675 Mass Ave,
 Cambridge, MA 02139, USA.  */
 
 #include <ansidecl.h>
-#include <errno.h>
 #include <unistd.h>
-#include <hurd.h>
-#include <hurd/port.h>
-#include <string.h>
+#include "hurdhost.h"
 
 /* Put the name of the current host in no more than LEN bytes of NAME.
    The result is null-terminated if LEN is large enough for the full
@@ -30,19 +27,9 @@ int
 DEFUN(__gethostname, (name, len),
       char *name AND size_t len)
 {
-  error_t err;
-  char *buf = name;
-  mach_msg_type_number_t buflen = len;
-  if (err = __USEPORT (PROC, __proc_gethostname (port, &buf, &buflen)))
-    return __hurd_fail (err);
-  if (buf != name)
-    {
-      memcpy (name, buf, len < buflen ? len : buflen);
-      __vm_deallocate (__mach_task_self (), (vm_address_t) buf, buflen);
-    }
-  if (buflen > len)
-    return __hurd_fail (ENAMETOOLONG);
-  return 0;
+  /* The host name is just the contents of the file /etc/hostname.  */
+  ssize_t n = _hurd_get_host_config ("/etc/hostname", name, len);
+  return n < 0 ? -1 : 0;
 }
 
 weak_alias (__gethostname, gethostname)