From c37989c4aa92fa076d8a7602811de5e8c60b9679 Mon Sep 17 00:00:00 2001 From: Roy Marples Date: Mon, 5 Mar 2012 11:11:49 +0000 Subject: [PATCH] Try to emulate hostname(1) if it doens't exist. --- dhcpcd-hooks/30-hostname | 29 +++++++++++++++++++++++------ 1 file changed, 23 insertions(+), 6 deletions(-) diff --git a/dhcpcd-hooks/30-hostname b/dhcpcd-hooks/30-hostname index f2b35b46..7cfeb6fc 100644 --- a/dhcpcd-hooks/30-hostname +++ b/dhcpcd-hooks/30-hostname @@ -1,12 +1,33 @@ # Set the hostname from DHCP data if required +# Some systems don't have hostname(1) +_hostname() +{ + local name= + + if [ -z "$1" ]; then + if [ -r /proc/sys/kernel/hostname ]; then + read name /proc/sys/kernel/hostname + else + hostname "$1" + fi +} + need_hostname() { local hostname="" case "$force_hostname" in [Yy][Ee][Ss]|[Tt][Rr][Uu][Ee]|1) ;; - *) hostname="$(hostname)";; + *) hostname="$(_hostname)";; esac case "$hostname" in ""|"(none)"|localhost|localhost.localdomain) @@ -21,11 +42,7 @@ need_hostname() try_hostname() { if valid_domainname "$1"; then - if [ -w /proc/sys/kernel/hostname ]; then - echo "$1" >/proc/sys/kernel/hostname - else - hostname "$1" - fi + _hostname "$1" else syslog err "Invalid hostname: $1" fi -- 2.47.2