 1775 Vagrant Cascadian	2010-08-27
      revision-id:vagrant@freegeek.org-20100827192540-vml50wb2jqieaafg
      ignore nameserver of 0.0.0.0 returned via dhcp, which ipconfig may return if
      both nameservers aren't specified. still allows specifying DNS_SERVER=0.0.0.0
      via lts.conf if the admin really wants that.

 1773 Vagrant Cascadian	2010-08-20
      revision-id:vagrant@freegeek.org-20100820210406-2g1afxhfi6ekemg0
      initramfs-tools nfs-bottom hook: configure DNS from DHCP values.
      http://bugs.debian.org/593770

=== modified file 'client/initramfs/scripts/nfs-bottom/ltsp'
--- ltsp-5.2.4/client/initramfs/scripts/nfs-bottom/ltsp	2010-02-12 07:18:44 +0000
+++ ltsp-5.2.4.new/client/initramfs/scripts/nfs-bottom/ltsp	2010-08-27 19:09:44 +0000
@@ -20,18 +20,36 @@
 
 # set hostname to ltsp if none is received from dhcp
 
-read HOSTNAME < /proc/sys/kernel/hostname
-if [ "${HOSTNAME}" = "(none)" ]; then
-    HOSTNAME_BASE="ltsp"
-    # get networking configuration
-    . /tmp/net-*.conf
-    if [ -f ${rootmnt}/etc/lts.conf ] && [ -x ${rootmnt}/usr/bin/getltscfg ]; then
-        # get defaults from lts.conf
-        eval $(chroot ${rootmnt} /usr/bin/getltscfg -a)
-    fi
+# get networking configuration
+. /tmp/net-*.conf
+
+# set to defaults from DHCP if not specified in lts.conf
+if [ -z "$DNS_SERVER" ]; then
+    for dns in $IPV4DNS0 $IPV4DNS1 ; do
+        # ignore nameserver of 0.0.0.0, which ipconfig may return if both
+        # nameservers aren't specified.
+        if [ "$dns" != "0.0.0.0" ]; then
+            DNS_SERVER="$DNS_SERVER $dns"
+        fi
+    done
+fi
+
+if [ -z "$SEARCH_DOMAIN" ] && [ -n "$DNSDOMAIN" ]; then
+    SEARCH_DOMAIN="$DNSDOMAIN"
+fi
+
+if [ -f ${rootmnt}/etc/lts.conf ] && [ -x ${rootmnt}/usr/bin/getltscfg ]; then
+    # get defaults from lts.conf
+    eval $(chroot ${rootmnt} /usr/bin/getltscfg -a)
+fi
+
+# check if hostname is set
+read TEMP_HOSTNAME < /proc/sys/kernel/hostname
+if [ "${TEMP_HOSTNAME}" = "(none)" ]; then
+    HOSTNAME_BASE=${HOSTNAME_BASE:-ltsp}
     # if HOSTNAME was not defined in lts.conf,
     # or if it has been nulled by /tmp/net-*.conf
-    if [ "$HOSTNAME" = "(none)" ] || [ -z "$HOSTNAME" ]; then
+    if [ -z "$HOSTNAME" ]; then
         case "$HOSTNAME_EXTRA" in
             mac)
                 HOSTNAME_EXTRA=$(ip link show $DEVICE | awk '/ether/{print $2}' | tr ':' '-')

