summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rwxr-xr-xcore/modules/dhcpc-busybox/data/opt/openslx/scripts/udhcpc-openslx4
-rw-r--r--core/rootfs/rootfs-stage31/data/inc/setup_stage321
-rw-r--r--core/rootfs/rootfs-stage31/data/inc/setup_stage41
-rwxr-xr-xcore/rootfs/rootfs-stage31/data/inc/udhcpc-trigger15
-rwxr-xr-xcore/rootfs/rootfs-stage31/data/init18
5 files changed, 30 insertions, 9 deletions
diff --git a/core/modules/dhcpc-busybox/data/opt/openslx/scripts/udhcpc-openslx b/core/modules/dhcpc-busybox/data/opt/openslx/scripts/udhcpc-openslx
index 13de9ff4..d0fb2410 100755
--- a/core/modules/dhcpc-busybox/data/opt/openslx/scripts/udhcpc-openslx
+++ b/core/modules/dhcpc-busybox/data/opt/openslx/scripts/udhcpc-openslx
@@ -112,8 +112,8 @@ case "$1" in
# Search domains
if [ -n "$search" ]; then
printf -v CONF "${CONF}search $search\n"
- elif [ -n "$SLX_SEARCH_DOMAIN" ]; then
- printf -v CONF "${CONF}search $SLX_SEARCH_DOMAIN\n"
+ elif [ -n "$SLX_NET_SEARCH" ]; then
+ printf -v CONF "${CONF}search $SLX_NET_SEARCH\n"
elif [ -n "$SLX_NET_DOMAIN" ]; then
printf -v CONF "${CONF}search $SLX_NET_DOMAIN\n"
fi
diff --git a/core/rootfs/rootfs-stage31/data/inc/setup_stage32 b/core/rootfs/rootfs-stage31/data/inc/setup_stage32
index 6568fb7d..81a3da16 100644
--- a/core/rootfs/rootfs-stage31/data/inc/setup_stage32
+++ b/core/rootfs/rootfs-stage31/data/inc/setup_stage32
@@ -47,7 +47,6 @@ FUTURE_ROOT="/mnt"
# Move network stuff
cp /etc/hostname /etc/hosts "${FUTURE_ROOT}/etc/"
cp /etc/resolv.conf "${FUTURE_ROOT}/opt/openslx/"
-[ -s "/run/config" ] && cat "/run/config" >> "${FUTURE_ROOT}/opt/openslx/config"
# if booting with splash, suppress kernel output in stage32
if [ $SPLASH -eq 1 ]; then
diff --git a/core/rootfs/rootfs-stage31/data/inc/setup_stage4 b/core/rootfs/rootfs-stage31/data/inc/setup_stage4
index 585627c2..a00117f2 100644
--- a/core/rootfs/rootfs-stage31/data/inc/setup_stage4
+++ b/core/rootfs/rootfs-stage31/data/inc/setup_stage4
@@ -48,7 +48,6 @@ FUTURE_ROOT="/mnt"
cp /etc/hostname /etc/hosts "${FUTURE_ROOT}/etc/"
cp /etc/resolv.conf "${FUTURE_ROOT}/opt/openslx/"
-[ -s "/run/config" ] && cat "/run/config" >> "${FUTURE_ROOT}/opt/openslx/config"
# if booting with splash, suppress kernel output in stage32
if [ $SPLASH -eq 1 ]; then
diff --git a/core/rootfs/rootfs-stage31/data/inc/udhcpc-trigger b/core/rootfs/rootfs-stage31/data/inc/udhcpc-trigger
index 02987f21..7e7e65f2 100755
--- a/core/rootfs/rootfs-stage31/data/inc/udhcpc-trigger
+++ b/core/rootfs/rootfs-stage31/data/inc/udhcpc-trigger
@@ -62,13 +62,24 @@ if [ -z "$domain" ]; then
fqdn=$(timeout -t 3 nslookup "$ip" | grep -E "^Address +[0-9]+: +$ip " | head -n 1 | awk '{print $4}')
domain="${fqdn#*.}"
fi
+# Add domain to list of search domains if not in there yet
+if [ -n "$domain" ] && [ -n "$search" ]; then
+ FOUND=no
+ for sd in $search; do
+ [ "x$sd" = "x$domain" ] && FOUND=yes
+ done
+ [ "$FOUND" = "no" ] && search="$domain $search"
+elif [ -n "$domain" ]; then
+ search="$domain"
+fi
+# Write out
if [ -n "$domain" ]; then
echo "domain $domain" >> "/etc/resolv.conf"
+ echo "SLX_NET_DOMAIN='$domain'" >> /run/config
fi
if [ -n "$search" ]; then
echo "search $search" >> "/etc/resolv.conf"
-elif [ -n "$domain" ]; then
- echo "search $domain" >> "/etc/resolv.conf"
+ echo "SLX_NET_SEARCH='$search'" >> /run/config
fi
diff --git a/core/rootfs/rootfs-stage31/data/init b/core/rootfs/rootfs-stage31/data/init
index 44124e46..d191b06f 100755
--- a/core/rootfs/rootfs-stage31/data/init
+++ b/core/rootfs/rootfs-stage31/data/init
@@ -140,9 +140,6 @@ if [ ! -z "$SLX_DEMO_PASS" ]; then
sed -i "s#^demo:[^:]*:#demo:$SLX_DEMO_PASS:#" "${FUTURE_ROOT}/etc/shadow"
fi
-# one last debug shell if activated
-[ $DEBUG -ge 1 ] && drop_shell "Requested Debug Shell: before switch_root."
-
# Activate debug shell after switchroot?
[ -n "$DEBUG_SHELL" ] && ln -s "../debug-shell.service" "${FUTURE_ROOT}/usr/lib/systemd/system/sysinit.target.wants/debug-shell.service"
@@ -198,6 +195,21 @@ EOF
ln -s "../exam.service" "${FUTURE_ROOT}/etc/systemd/system/sysinit.target.wants/exam.service"
fi
+# Merge freshly generated config to stage32
+if [ -s "/run/config" ]; then
+ line=
+ while read -r line || [ -n "$line" ]; do
+ [ "${line:0:1}" = '#' ] && continue
+ var="${line%%=*}"
+ [ "$var" = "$line" ] && continue
+ sed -i -r "s/^(${var}=)/#<s31>\\1/" "${FUTURE_ROOT}/opt/openslx/config"
+ done < "/run/config"
+ cat "/run/config" >> "${FUTURE_ROOT}/opt/openslx/config"
+fi
+
+# one last debug shell if activated
+[ $DEBUG -ge 1 ] && drop_shell "Requested Debug Shell: before switch_root."
+
# unmount filesystems
for mnt in run tmp; do
busybox umount -f -l "/$mnt" 2>/dev/null