From: Roy Marples Date: Mon, 5 Mar 2012 11:11:49 +0000 (+0000) Subject: Try to emulate hostname(1) if it doens't exist. X-Git-Tag: v5.5.5~12 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=c37989c4aa92fa076d8a7602811de5e8c60b9679;p=thirdparty%2Fdhcpcd.git Try to emulate hostname(1) if it doens't exist. --- 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