Add gethostname() declaration to <unistd.h>.
authorBruno Haible <bruno@clisp.org>
Tue, 21 Oct 2008 11:13:09 +0000 (13:13 +0200)
committerBruno Haible <bruno@clisp.org>
Tue, 21 Oct 2008 11:13:09 +0000 (13:13 +0200)
ChangeLog
lib/gethostname.c
lib/unistd.in.h
m4/gethostname.m4
m4/unistd_h.m4
modules/gethostname
modules/unistd
tests/test-gethostname.c

index 29976d1..1b7bbfa 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,21 @@
 2008-10-21  Bruno Haible  <bruno@clisp.org>
 
+       Add gethostname() declaration to <unistd.h>.
+       * lib/unistd.in.h (gethostname): New declaration.
+       * lib/gethostname.c: Include <unistd.h>.
+       * m4/gethostname.m4 (gl_FUNC_GETHOSTNAME): Require
+       gl_UNISTD_H_DEFAULTS. Set HAVE_GETHOSTNAME.
+       * m4/unistd_h.m4 (gl_UNISTD_H_DEFAULTS): Initialize GNULIB_GETHOSTNAME
+       and HAVE_GETHOSTNAME.
+       * modules/gethostname (Depends-on): Add unistd.
+       (configure.ac): Invoke gl_UNISTD_MODULE_INDICATOR.
+       (Include): Specify <unistd.h>.
+       * modules/unistd (Makefile.am): Substitute GNULIB_GETHOSTNAME and
+       HAVE_GETHOSTNAME.
+       * tests/test-gethostname.c: Include <unistd.h> first.
+
+2008-10-21  Bruno Haible  <bruno@clisp.org>
+
        * modules/poll-tests (Depends-on): Add sys_ioctl, ioctl.
        * modules/select-tests (Depends-on): Likewise.
        Reported by Simon Josefsson.
index 169dd4e..acff351 100644 (file)
@@ -19,6 +19,9 @@
 
 #include <config.h>
 
+/* Specification.  */
+#include <unistd.h>
+
 #ifdef HAVE_UNAME
 # include <sys/utsname.h>
 #endif
index 3700958..bfa3d49 100644 (file)
@@ -272,6 +272,26 @@ extern int getdtablesize (void);
 #endif
 
 
+#if @GNULIB_GETHOSTNAME@
+/* Return the standard host name of the machine.
+   WARNING! The host name may or may not be fully qualified.
+
+   Put up to LEN bytes of the host name into NAME.
+   Null terminate it if the name is shorter than LEN.
+   If the host name is longer than LEN, set errno = EINVAL and return -1.
+   Return 0 if successful, otherwise set errno and return -1.  */
+# if !@HAVE_GETHOSTNAME@
+extern int gethostname(char *name, size_t len);
+# endif
+#elif defined GNULIB_POSIXCHECK
+# undef gethostname
+# define gethostname(n,l) \
+    (GL_LINK_WARNING ("gethostname is unportable - " \
+                      "use gnulib module gethostname for portability"), \
+     gethostname (n, l))
+#endif
+
+
 #if @GNULIB_GETLOGIN_R@
 /* Copies the user's login name to NAME.
    The array pointed to by NAME has room for SIZE bytes.
index 1e9749d..b8c4e2a 100644 (file)
@@ -1,13 +1,15 @@
-# gethostname.m4 serial 2
-dnl Copyright (C) 2002 Free Software Foundation, Inc.
+# gethostname.m4 serial 3
+dnl Copyright (C) 2002, 2008 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
 dnl with or without modifications, as long as this notice is preserved.
 
 AC_DEFUN([gl_FUNC_GETHOSTNAME],
 [
+  AC_REQUIRE([gl_UNISTD_H_DEFAULTS])
   AC_REPLACE_FUNCS(gethostname)
   if test $ac_cv_func_gethostname = no; then
+    HAVE_GETHOSTNAME=0
     gl_PREREQ_GETHOSTNAME
   fi
 ])
index 7a3798b..5685273 100644 (file)
@@ -1,4 +1,4 @@
-# unistd_h.m4 serial 15
+# unistd_h.m4 serial 16
 dnl Copyright (C) 2006-2008 Free Software Foundation, Inc.
 dnl This file is free software; the Free Software Foundation
 dnl gives unlimited permission to copy and/or distribute it,
@@ -43,6 +43,7 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS],
   GNULIB_GETCWD=0;           AC_SUBST([GNULIB_GETCWD])
   GNULIB_GETDOMAINNAME=0;    AC_SUBST([GNULIB_GETDOMAINNAME])
   GNULIB_GETDTABLESIZE=0;    AC_SUBST([GNULIB_GETDTABLESIZE])
+  GNULIB_GETHOSTNAME=0;      AC_SUBST([GNULIB_GETHOSTNAME])
   GNULIB_GETLOGIN_R=0;       AC_SUBST([GNULIB_GETLOGIN_R])
   GNULIB_GETPAGESIZE=0;      AC_SUBST([GNULIB_GETPAGESIZE])
   GNULIB_GETUSERSHELL=0;     AC_SUBST([GNULIB_GETUSERSHELL])
@@ -59,6 +60,7 @@ AC_DEFUN([gl_UNISTD_H_DEFAULTS],
   HAVE_FTRUNCATE=1;       AC_SUBST([HAVE_FTRUNCATE])
   HAVE_GETDOMAINNAME=1;   AC_SUBST([HAVE_GETDOMAINNAME])
   HAVE_GETDTABLESIZE=1;   AC_SUBST([HAVE_GETDTABLESIZE])
+  HAVE_GETHOSTNAME=1;     AC_SUBST([HAVE_GETHOSTNAME])
   HAVE_GETPAGESIZE=1;     AC_SUBST([HAVE_GETPAGESIZE])
   HAVE_GETUSERSHELL=1;    AC_SUBST([HAVE_GETUSERSHELL])
   HAVE_READLINK=1;        AC_SUBST([HAVE_READLINK])
index 7c13807..2fffbb1 100644 (file)
@@ -6,13 +6,16 @@ lib/gethostname.c
 m4/gethostname.m4
 
 Depends-on:
+unistd
 
 configure.ac:
 gl_FUNC_GETHOSTNAME
+gl_UNISTD_MODULE_INDICATOR([gethostname])
 
 Makefile.am:
 
 Include:
+<unistd.h>
 
 License:
 LGPL
index 2f1c0aa..225abf9 100644 (file)
@@ -35,6 +35,7 @@ unistd.h: unistd.in.h
              -e 's|@''GNULIB_GETCWD''@|$(GNULIB_GETCWD)|g' \
              -e 's|@''GNULIB_GETDOMAINNAME''@|$(GNULIB_GETDOMAINNAME)|g' \
              -e 's|@''GNULIB_GETDTABLESIZE''@|$(GNULIB_GETDTABLESIZE)|g' \
+             -e 's|@''GNULIB_GETHOSTNAME''@|$(GNULIB_GETHOSTNAME)|g' \
              -e 's|@''GNULIB_GETLOGIN_R''@|$(GNULIB_GETLOGIN_R)|g' \
              -e 's|@''GNULIB_GETPAGESIZE''@|$(GNULIB_GETPAGESIZE)|g' \
              -e 's|@''GNULIB_GETUSERSHELL''@|$(GNULIB_GETUSERSHELL)|g' \
@@ -50,6 +51,7 @@ unistd.h: unistd.in.h
              -e 's|@''HAVE_FTRUNCATE''@|$(HAVE_FTRUNCATE)|g' \
              -e 's|@''HAVE_GETDOMAINNAME''@|$(HAVE_GETDOMAINNAME)|g' \
              -e 's|@''HAVE_GETDTABLESIZE''@|$(HAVE_GETDTABLESIZE)|g' \
+             -e 's|@''HAVE_GETHOSTNAME''@|$(HAVE_GETHOSTNAME)|g' \
              -e 's|@''HAVE_GETPAGESIZE''@|$(HAVE_GETPAGESIZE)|g' \
              -e 's|@''HAVE_GETUSERSHELL''@|$(HAVE_GETUSERSHELL)|g' \
              -e 's|@''HAVE_READLINK''@|$(HAVE_READLINK)|g' \
index 01f9369..ef50953 100644 (file)
 
 #include <config.h>
 
+#include <unistd.h>
+
 #include <stdio.h>
 #include <string.h>
 #include <errno.h>
-#include <unistd.h>
 
 #define NOHOSTNAME "magic-gnulib-test-string"