enable local DNS server that can provide minimal forward DNS resolution for MyPLC...
authorMark Huang <mlhuang@cs.princeton.edu>
Tue, 23 May 2006 18:10:08 +0000 (18:10 +0000)
committerMark Huang <mlhuang@cs.princeton.edu>
Tue, 23 May 2006 18:10:08 +0000 (18:10 +0000)
plc.d/dns [new file with mode: 0755]
plc.d/network

diff --git a/plc.d/dns b/plc.d/dns
new file mode 100755 (executable)
index 0000000..446c21f
--- /dev/null
+++ b/plc.d/dns
@@ -0,0 +1,60 @@
+#!/bin/bash
+#
+# priority: 850
+#
+# Start local DNS server to provide minimal DNS forward resolution for
+# ourselves and our nodes.
+#
+# Mark Huang <mlhuang@cs.princeton.edu>
+# Copyright (C) 2006 The Trustees of Princeton University
+#
+# $Id: mail,v 1.2 2006/04/25 21:18:19 mlhuang Exp $
+#
+
+# Source function library and configuration
+. /etc/plc.d/functions
+. /etc/planetlab/plc_config
+
+case "$1" in
+    start)
+       if [ "$PLC_DNS_ENABLED" != "1" ] ; then
+           exit 0
+       fi
+
+       MESSAGE=$"Starting DNS server"
+       dialog "$MESSAGE"
+
+       # From the default dnsmasq.conf configuration file:
+       #
+       # The [domain-needed and bogus-priv] options make you a better
+       # netizen, since they tell dnsmasq to filter out queries which
+       # the public DNS cannot answer, and which load the servers
+       # (especially the root servers) uneccessarily.
+       #
+       # The api-config bootstrap script writes node hostnames to
+       # /etc/plc_hosts.
+       #
+       cat >/etc/dnsmasq.conf <<EOF
+domain-needed
+bogus-priv
+addn-hosts=/etc/plc_hosts
+EOF
+
+       plc_daemon dnsmasq
+       check
+
+       result "$MESSAGE"
+       ;;
+
+    stop)
+       MESSAGE=$"Stopping DNS server"
+       dialog "$MESSAGE"
+
+       killproc plc_dnsmasq
+       check
+
+       result "$MESSAGE"
+       ;;
+esac
+
+exit $ERRORS
index 88ffec0..f84d9aa 100755 (executable)
@@ -7,7 +7,7 @@
 # Mark Huang <mlhuang@cs.princeton.edu>
 # Copyright (C) 2006 The Trustees of Princeton University
 #
-# $Id: network,v 1.2 2006/04/25 21:18:19 mlhuang Exp $
+# $Id: network,v 1.3 2006/05/16 17:09:34 mlhuang Exp $
 #
 
 # Source function library and configuration
@@ -24,9 +24,14 @@ case "$1" in
        (
            for server in API BOOT WWW ; do
                hostname=PLC_${server}_HOST
-               ip=$(gethostbyname ${!hostname})
-               if [ -n "$ip" ] ; then
-                   echo "$ip   ${!hostname}"
+               ip=PLC_${server}_IP
+               if [ -n "${!ip}" ] ; then
+                   echo "${!ip}        ${!hostname}"
+               else
+                   ip=$(gethostbyname ${!hostname})
+                   if [ -n "$ip" ] ; then
+                       echo "$ip       ${!hostname}"
+                   fi
                fi
            done
        ) >>/etc/hosts