bug-gnulib
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: gethostname


From: Simon Josefsson
Subject: Re: gethostname
Date: Mon, 11 Aug 2008 23:23:24 +0200
User-agent: Gnus/5.110011 (No Gnus v0.11) Emacs/22.2 (gnu/linux)

Sam Steingold <address@hidden> writes:

> gnulib/lib/gethostname.c says:
>
> #ifdef HAVE_UNAME
> # include <sys/utsname.h>
> #endif
>
> 1. why aren't you testing for HAVE_SYS_UTSNAME_H instead?
>
> 2. are there really systems without uname & <sys/utsname.h>, given
> that these are in posix?
> http://www.opengroup.org/onlinepubs/009695399/functions/uname.html

I think the right solution here should be to apply the patch below.  If
there are problems on any system caused by that, the solution to that
problem should be to create a module for sys/utsname.h and uname.  The
gethostname module shouldn't depend on such modules, they need to be
added manually by maintainers who want compatibility with non-POSIX
systems.  Thoughts?

/Simon

diff --git a/ChangeLog b/ChangeLog
index 8d92122..b911473 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,10 @@
+2008-08-11  Simon Josefsson  <address@hidden>
+
+       * lib/gethostname.c: Unconditionally include sys/utsname.h and
+       call uname.
+
+       * m4/gethostname.m4: Assume uname exists.
+
 2008-08-07  Paolo Bonzini  <address@hidden>
 
        * lib/lock.c (glthread_recursive_lock_init_multithreaded)
diff --git a/lib/gethostname.c b/lib/gethostname.c
index 169dd4e..c9624f0 100644
--- a/lib/gethostname.c
+++ b/lib/gethostname.c
@@ -19,9 +19,7 @@
 
 #include <config.h>
 
-#ifdef HAVE_UNAME
-# include <sys/utsname.h>
-#endif
+#include <sys/utsname.h>
 
 #include <string.h>
 
@@ -34,7 +32,6 @@
 int
 gethostname (char *name, size_t len)
 {
-#ifdef HAVE_UNAME
   struct utsname uts;
 
   if (uname (&uts) == -1)
@@ -46,8 +43,6 @@ gethostname (char *name, size_t len)
       len = sizeof (uts.nodename);
     }
   strncpy (name, uts.nodename, len);
-#else
-  strcpy (name, "");           /* Hardcode your system name if you want.  */
-#endif
+
   return 0;
 }
diff --git a/m4/gethostname.m4 b/m4/gethostname.m4
index 1e9749d..616f9e4 100644
--- a/m4/gethostname.m4
+++ b/m4/gethostname.m4
@@ -1,5 +1,5 @@
-# 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.
@@ -14,5 +14,5 @@ AC_DEFUN([gl_FUNC_GETHOSTNAME],
 
 # Prerequisites of lib/gethostname.c.
 AC_DEFUN([gl_PREREQ_GETHOSTNAME], [
-  AC_CHECK_FUNCS(uname)
+  :
 ])




reply via email to

[Prev in Thread] Current Thread [Next in Thread]