Release new version 0.105.0
[grml-terminalserver.git] / templates / dhcpd_config
index 34fe065..5bf9ded 100644 (file)
@@ -1,5 +1,3 @@
-#!/bin/sh i like colors :)
-#
 # the following variables are available in the template:
 #
 # $INTERFACE_     (interface for the terminalserver)
 
 date_=`execute date warn`
 
+# insert commas when having multiple nameservers
+if [ -n "$NAMESERVERS_" ]; then
+       DNS_LINE_="option domain-name-servers $(echo "$NAMESERVERS_" | sed -e 's/\([0-9]\) \([0-9]\)/\1, \2/g');"
+fi
+# note: we don't support multiple routers options
+if [ -n "$GW_" ]; then
+       ROUTERS_LINE_="option routers $GW_;"
+fi
+
 cat >"$DHCPD_CONFIG_FILE_" <<EOT
 # ${DHCPD_CONFIG_FILE_##/*/} for GRML terminalserver
 # created on $date_
+# THIS IS A GENERATED CONFIG FROM GRML-TERMINALSERVER, DO NOT EDIT!!!
+# better adapt $TEMPLATE_CONFIG_DIR_/dhcpd_config to your needs and update config
+# with grml-terminalserver config dhcp
+#
+# If you really want to edit _this_ file remove the next line
+# __PLEASE_UPDATE_THIS_FILE__
 
 # global settings
 allow booting;
 allow bootp;
-#option option-150 code 150 = text ;
-#option T150 code 150 = string;
 default-lease-time 600;
 max-lease-time 7200;
 
+# UEFI boot with DHCPv4
+option architecture-type code 93 = unsigned integer 16;
+
 subnet $NETWORK_ netmask $NETMASK_ {
   next-server $IP_;
-  if substring (option vendor-class-identifier, 0, 9) = "Etherboot" { filename "etherboot.nbi"; }
-  else { filename "pxelinux.0"; }
 #  option subnet-mask $NETMASK_;
   range $IPRANGE_FROM_ $IPRANGE_TO_;
-#  option T150 "/menu.lst";
-#  option option-150 "(nd)/menu.lst";
+  $ROUTERS_LINE_
+  $DNS_LINE_
+
+  class "pxeclients" {
+    match if substring (option vendor-class-identifier, 0 ,9) = "PXEClient";
+    if option architecture-type = 00:07 {
+      filename "shim.efi";
+    } else {
+      filename "pxelinux.0";
+    }
+  }
 }
 
 EOT