bug-inetutils
[Top][All Lists]
Advanced

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

hostname vs uname


From: Simon Josefsson
Subject: hostname vs uname
Date: Thu, 28 Jan 2021 09:32:35 +0100
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/26.1 (gnu/linux)

Hi!

I got failures from tests/hostname on one machine:

Failed to get same hostname as uname does (runner-z3wu8uu--project-23901891 vs 
runner-z3wu8uu--project-23901891-concurrent-0).

The self-test compares output from our hostname with that from the
system's uname -n.  Quoting uname(2):

NOTES
       This  is a system call, and the operating system presumably knows its 
name, release and version.  It
       also knows what hardware it runs on.  So, four of the fields of the 
struct are meaningful.   On  the
       other  hand, the field nodename is meaningless: it gives the name of the 
present machine in some un‐
       defined network, but typically machines are in more than one network and 
have several names.   More‐
       over,  the kernel has no way of knowing about such things, so it has to 
be told what to answer here.
       The same holds for the additional domainname field.

       To this end, Linux uses the system calls sethostname(2) and 
setdomainname(2).  Note that there is no
       standard  that says that the hostname set by sethostname(2) is the same 
string as the nodename field
       of the struct returned by uname() (indeed, some systems allow a  
256-byte  hostname  and  an  8-byte
       nodename), but this is true on Linux.  The same holds for 
setdomainname(2) and the domainname field.

So using uname nodename seems just wrong.  Thoughts?

I pushed this change, to use the system's hostname binary for comparison
instead.

/Simon
From f88570bae1dc1aab658dc138fa874f63d63ee7eb Mon Sep 17 00:00:00 2001
From: Simon Josefsson <simon@josefsson.org>
Date: Thu, 28 Jan 2021 09:27:14 +0100
Subject: [PATCH] tests/hostname.sh: Use system hostname, not system uname, for
 comparison.

---
 ChangeLog         | 5 +++++
 tests/hostname.sh | 4 ++--
 2 files changed, 7 insertions(+), 2 deletions(-)

diff --git a/ChangeLog b/ChangeLog
index 203f11c8..b58669ad 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2021-01-28  Simon Josefsson  <simon@josefsson.org>
+
+       * tests/hostname.sh: Use system hostname, not system uname, for
+       comparison.
+
 2021-01-28  Simon Josefsson  <simon@josefsson.org>
 
        * configure.ac: Don't call gl_FUNC_READLINE.  Not needed since we
diff --git a/tests/hostname.sh b/tests/hostname.sh
index 70b06063..56720610 100755
--- a/tests/hostname.sh
+++ b/tests/hostname.sh
@@ -45,8 +45,8 @@ $hostname || errno=$?
 test $errno -eq 0 || echo "Failed to get hostname." >&2
 test $errno -eq 0 || exit $errno
 
-test `$hostname` = `uname -n` || errno=$?
-test $errno -eq 0 || echo "Failed to get same hostname as uname does 
(`$hostname` vs `uname -n`)." >&2
+test `$hostname` = `hostname` || errno=$?
+test $errno -eq 0 || echo "Failed to get same hostname as system (`$hostname` 
vs `hostname`)." >&2
 test $errno -eq 0 || exit $errno
 
 if test `func_id_uid` != 0; then
-- 
2.20.1

Attachment: signature.asc
Description: PGP signature


reply via email to

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