summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSimon Rettberg2019-11-26 16:31:05 +0100
committerSimon Rettberg2019-11-26 16:31:05 +0100
commit10e77b6e08c07cb6f66fc8932a49a45edb3dd8c5 (patch)
tree9dfc04a739d6d7f0d951c557f2b200009531f842
parent[rootfs-stage32] Keep original perms/owner of files intact (diff)
downloadmltk-10e77b6e08c07cb6f66fc8932a49a45edb3dd8c5.tar.gz
mltk-10e77b6e08c07cb6f66fc8932a49a45edb3dd8c5.tar.xz
mltk-10e77b6e08c07cb6f66fc8932a49a45edb3dd8c5.zip
[rootfs-stage31] Actually request hostname via DHCP...
-rw-r--r--core/rootfs/rootfs-stage31/data/inc/setup_network2
-rw-r--r--core/rootfs/rootfs-stage31/data/inc/setup_network_retry4
-rwxr-xr-xcore/rootfs/rootfs-stage31/data/inc/udhcpc-trigger10
3 files changed, 11 insertions, 5 deletions
diff --git a/core/rootfs/rootfs-stage31/data/inc/setup_network b/core/rootfs/rootfs-stage31/data/inc/setup_network
index 4f4c8a02..6b97fb18 100644
--- a/core/rootfs/rootfs-stage31/data/inc/setup_network
+++ b/core/rootfs/rootfs-stage31/data/inc/setup_network
@@ -114,7 +114,7 @@ echo "GATEWAY=$GATEWAY" >> /run/network.conf
echo "BRIDGE=$BRIDGE" >> /run/network.conf
echo "UID=$UID" >> /run/network.conf
-udhcpc $PARAM -O ntpsrv -O domain -O search -t 5 -T 3 -A 4 -s "/inc/udhcpc-trigger" -f -n -q -i "$BRIDGE"
+udhcpc $PARAM -O hostname -O ntpsrv -O domain -O search -t 5 -T 3 -A 4 -s "/inc/udhcpc-trigger" -f -n -q -i "$BRIDGE"
URET=$?
# if these were empty before, udhcpc might have filled them in
[ -z "$CLIENTIP" ] && CLIENTIP=$(cat /run/firstip)
diff --git a/core/rootfs/rootfs-stage31/data/inc/setup_network_retry b/core/rootfs/rootfs-stage31/data/inc/setup_network_retry
index 76923703..c1fff39d 100644
--- a/core/rootfs/rootfs-stage31/data/inc/setup_network_retry
+++ b/core/rootfs/rootfs-stage31/data/inc/setup_network_retry
@@ -33,8 +33,8 @@ for i in 1 2 3 4 5 6 7 8; do
wait_for_iface "$BRIDGE" 10
usleep 100000
- udhcpc $PARAM -O ntpsrv -O domain -O search -t "$(( 2 + i / 2 ))" -T "$(( 4 + i ))" -s "/inc/udhcpc-trigger" -f -n -q -i "$BRIDGE" \
- || udhcpc $PARAM -O ntpsrv -O domain -O search -t "$(( 2 + i / 2 ))" -T "$(( 4 + i ))" -s "/inc/udhcpc-trigger" -f -n -q -i "$BRIDGE"
+ udhcpc $PARAM -O hostname -O ntpsrv -O domain -O search -t "$(( 2 + i / 2 ))" -T "$(( 4 + i ))" -s "/inc/udhcpc-trigger" -f -n -q -i "$BRIDGE" \
+ || udhcpc $PARAM -O hostname -O ntpsrv -O domain -O search -t "$(( 2 + i / 2 ))" -T "$(( 4 + i ))" -s "/inc/udhcpc-trigger" -f -n -q -i "$BRIDGE"
RET="$?"
if [ "$RET" -eq 0 ]; then
diff --git a/core/rootfs/rootfs-stage31/data/inc/udhcpc-trigger b/core/rootfs/rootfs-stage31/data/inc/udhcpc-trigger
index 15fb59bf..795dd8a0 100755
--- a/core/rootfs/rootfs-stage31/data/inc/udhcpc-trigger
+++ b/core/rootfs/rootfs-stage31/data/inc/udhcpc-trigger
@@ -72,6 +72,8 @@ if [ -n "$domain" ] && [ -n "$search" ]; then
elif [ -n "$domain" ]; then
search="$domain"
fi
+# Sanitize: domain must not be list
+domain="${domain%% *}"
# Write out
if [ -n "$domain" ]; then
echo "domain $domain" >> "/etc/resolv.conf"
@@ -93,10 +95,14 @@ if [ -z "$hostname" ]; then
[ -z "$fqdn" ] && fqdn=$(timeout -t 3 nslookup "$ip" | grep -E "^Address +[0-9]+: +$ip " | head -n 1 | awk '{print $4}')
hostname="${fqdn%%.*}"
elif [ -n "$domain" ]; then
- fqdn="${hostname}.${domain%% *}" # in case domain is a list
+ fqdn="${hostname}.${domain}"
+fi
+# Fallback tp IP
+if [ -z "$hostname" ]; then
+ hostname="noname-${ip//./-}"
+ fqdn="${hostname}.invalid"
fi
if [ -n "$hostname" ]; then
- [ -z "$fqdn" ] && fqdn="$hostname"
echo "..setting hostname $hostname (fqdn: $fqdn).."
echo "$hostname" > "/proc/sys/kernel/hostname"
echo "$hostname" > "/etc/hostname"