diff options
| author | Simon Rettberg | 2014-01-29 15:14:11 +0100 |
|---|---|---|
| committer | Simon Rettberg | 2014-01-29 15:14:11 +0100 |
| commit | 892efe3aaa4a10f7fa8ff2748c3262853aed06a9 (patch) | |
| tree | db296610b31f0f736105a759ab48625a23cf0d7d /remote/rootfs | |
| parent | [pam] Compatibility for openSuse 13.1 (diff) | |
| download | tm-scripts-892efe3aaa4a10f7fa8ff2748c3262853aed06a9.tar.gz tm-scripts-892efe3aaa4a10f7fa8ff2748c3262853aed06a9.tar.xz tm-scripts-892efe3aaa4a10f7fa8ff2748c3262853aed06a9.zip | |
[rfs-stage31] Fix resolving, set hostname
Diffstat (limited to 'remote/rootfs')
4 files changed, 34 insertions, 11 deletions
diff --git a/remote/rootfs/rootfs-stage31/data/inc/setup_network b/remote/rootfs/rootfs-stage31/data/inc/setup_network index 3de48057..ed29050f 100755 --- a/remote/rootfs/rootfs-stage31/data/inc/setup_network +++ b/remote/rootfs/rootfs-stage31/data/inc/setup_network @@ -86,6 +86,5 @@ if [ -n "$CLIENTIP" ]; then fi echo -n "$CLIENTIP" > "/run/firstip" echo -n "$GATEWAY" > "/run/firstgw" -echo -n "$FUTURE_ROOT" > "/run/future_root" udhcpc $PARAM -O domain -O nissrv -O nisdomain -O wpad -t 5 -T 2 -s "/inc/udhcpc-trigger" -f -n -q -i "$BRIDGE" diff --git a/remote/rootfs/rootfs-stage31/data/inc/setup_stage32 b/remote/rootfs/rootfs-stage31/data/inc/setup_stage32 index 4e19fb3a..09ff7f3e 100755 --- a/remote/rootfs/rootfs-stage31/data/inc/setup_stage32 +++ b/remote/rootfs/rootfs-stage31/data/inc/setup_stage32 @@ -43,6 +43,9 @@ mkdir -p /mnt/opt/openslx/uniontmp /mnt/tmp busybox mount -n --move "$FUTURE_ROOT" /mnt/opt/openslx/uniontmp || drop_shell "Problem moving uniontmp." FUTURE_ROOT="/mnt" +# Move network stuff +cp /etc/hostname /etc/hosts /etc/resolv.conf "${FUTURE_ROOT}" + # "Delete" addon hook-script in aufs view touch "/mnt/opt/openslx/uniontmp/.wh.addon-init" diff --git a/remote/rootfs/rootfs-stage31/data/inc/udhcpc-trigger b/remote/rootfs/rootfs-stage31/data/inc/udhcpc-trigger index 7a8eaf0b..ea4d002d 100755 --- a/remote/rootfs/rootfs-stage31/data/inc/udhcpc-trigger +++ b/remote/rootfs/rootfs-stage31/data/inc/udhcpc-trigger @@ -42,18 +42,39 @@ if [ -n "${router}" ]; then echo -n "$router" > "/run/firstgw" fi -RESOLV=$(cat "/run/future_root") -RESOLV="${RESOLV}/etc/resolv.conf" -rm -f -- "$RESOLV" +rm -f -- "/etc/resolv.conf" # DNS/domain? -if [ -n "$domain" ]; then - echo "domain $domain" >> "$RESOLV" - echo "search $domain" >> "$RESOLV" -fi [ -n "$dns" ] && echo "..got DNS.." for serv in $dns; do - echo "nameserver $serv" >> "$RESOLV" + echo "nameserver $serv" >> "/etc/resolv.conf" done -cp "$RESOLV" "/etc/resolv.conf" 2>/dev/null +if [ -z "$domain" ]; then + # try to get domain via reverse lookup if empty + echo "..trying to get domain via DNS, as DHCP didn't supply one.." + fqdn=$(nslookup "$ip" | grep -E "^Address +[0-9]+: +$ip " | head -n 1 | awk '{print $4}') + domain="${fqdn#*.}" +fi +if [ -n "$domain" ]; then + echo "domain $domain" >> "/etc/resolv.conf" + echo "search $domain" >> "/etc/resolv.conf" # TODO: patch busybox +fi + + +# Hostname +if [ -z "$hostname" ]; then + # as with domain, if there's no hostname, try to get via DNS + echo "..trying to get hostname via DNS, as DHCP didn't supply one.." + [ -z "$fqdn" ] && fqdn=$(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 +fi +if [ -n "$hostname" ]; then + [ -z "$fqdn" ] && fqdn="$hostname" + echo "..setting hostname $hostname (fqdn: $fqdn).." + echo "$fqdn" > "/proc/sys/kernel/hostname" + echo "$fqdn" > "/etc/hostname" + echo "$ip $fqdn $hostname" > "/etc/hosts" +fi diff --git a/remote/rootfs/rootfs-stage31/rootfs-stage31.build b/remote/rootfs/rootfs-stage31/rootfs-stage31.build index 82477940..f3eab5b6 100644 --- a/remote/rootfs/rootfs-stage31/rootfs-stage31.build +++ b/remote/rootfs/rootfs-stage31/rootfs-stage31.build @@ -16,7 +16,7 @@ build() { done mkdir -p "$MODULE_BUILD_DIR/lib" - find /lib /lib64 /usr/lib /usr/lib64 \( -name "libnss_dns*" -o -name "libresolv*" \) -exec cp {} "$MODULE_BUILD_DIR/lib" \; + find /lib /lib64 /usr/lib /usr/lib64 \( -name "libnss_dns*" -o -name "libresolv*" \) -exec cp -a {} "$MODULE_BUILD_DIR/lib/" \; tarcopy "$(cat "$COPYLIST" | sort -u)" "$MODULE_BUILD_DIR" } |
