diff mbox

uts: Make default hostname configurable, rather than always using "(none)"

Message ID 20110530223847.GA29245@leaf
State Not Applicable, archived
Delegated to: David Miller
Headers show

Commit Message

Josh Triplett May 30, 2011, 10:38 p.m. UTC
The "hostname" tool falls back to setting the hostname to "localhost" if
/etc/hostname does not exist.  Distribution init scripts have the same
fallback.  However, if userspace never calls sethostname, such as when
booting with init=/bin/sh, or otherwise booting a minimal system without
the usual init scripts, the default hostname of "(none)" remains,
unhelpfully appearing in various places such as prompts
("root@(none):~#") and logs.  Furthermore, "(none)" doesn't typically
resolve to anything useful.

Make the default hostname configurable.  This removes the need for the
standard fallback, provides a useful default for systems that never call
sethostname, and makes minimal systems that much more useful with less
configuration.  Distributions could choose to use "localhost" here to
avoid the fallback, while embedded systems may wish to use a specific
target hostname.

Signed-off-by: Josh Triplett <josh@joshtriplett.org>
---

Revised from my original patch that just changed the default to
"localhost"; this patch makes the default configurable, and leaves the
default default as "(none)".

 include/linux/uts.h |    2 +-
 init/Kconfig        |    9 +++++++++
 2 files changed, 10 insertions(+), 1 deletions(-)

Comments

Linus Torvalds May 31, 2011, 11:35 a.m. UTC | #1
On Tue, May 31, 2011 at 7:38 AM, Josh Triplett <josh@joshtriplett.org> wrote:
>
> The "hostname" tool falls back to setting the hostname to "localhost" if
> /etc/hostname does not exist.  Distribution init scripts have the same
> fallback.  However, if userspace never calls sethostname, such as when
> booting with init=/bin/sh, or otherwise booting a minimal system without
> the usual init scripts, the default hostname of "(none)" remains,
> unhelpfully appearing in various places such as prompts
> ("root@(none):~#") and logs.  Furthermore, "(none)" doesn't typically
> resolve to anything useful.

Ok, I'm fine with this. So Ack as far as I'm concerned.

Does this make most sense through the networking tree, or what?

              Linus
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
David Miller May 31, 2011, 7:46 p.m. UTC | #2
From: Linus Torvalds <torvalds@linux-foundation.org>
Date: Tue, 31 May 2011 20:35:37 +0900

> On Tue, May 31, 2011 at 7:38 AM, Josh Triplett <josh@joshtriplett.org> wrote:
>>
>> The "hostname" tool falls back to setting the hostname to "localhost" if
>> /etc/hostname does not exist.  Distribution init scripts have the same
>> fallback.  However, if userspace never calls sethostname, such as when
>> booting with init=/bin/sh, or otherwise booting a minimal system without
>> the usual init scripts, the default hostname of "(none)" remains,
>> unhelpfully appearing in various places such as prompts
>> ("root@(none):~#") and logs.  Furthermore, "(none)" doesn't typically
>> resolve to anything useful.
> 
> Ok, I'm fine with this. So Ack as far as I'm concerned.
> 
> Does this make most sense through the networking tree, or what?

Linus, you can just apply this directly.

Thanks!
--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/include/linux/uts.h b/include/linux/uts.h
index 73eb1ed..6ddbd86 100644
--- a/include/linux/uts.h
+++ b/include/linux/uts.h
@@ -9,7 +9,7 @@ 
 #endif
 
 #ifndef UTS_NODENAME
-#define UTS_NODENAME "(none)"	/* set by sethostname() */
+#define UTS_NODENAME CONFIG_DEFAULT_HOSTNAME /* set by sethostname() */
 #endif
 
 #ifndef UTS_DOMAINNAME
diff --git a/init/Kconfig b/init/Kconfig
index ebafac4..e0a22e4 100644
--- a/init/Kconfig
+++ b/init/Kconfig
@@ -204,6 +204,15 @@  config KERNEL_LZO
 
 endchoice
 
+config DEFAULT_HOSTNAME
+	string "Default hostname"
+	default "(none)"
+	help
+	  This option determines the default system hostname before userspace
+	  calls sethostname(2). The kernel traditionally uses "(none)" here,
+	  but you may wish to use a different default here to make a minimal
+	  system more usable with less configuration.
+
 config SWAP
 	bool "Support for paging of anonymous memory (swap)"
 	depends on MMU && BLOCK