Better DNS slave handling
[hcoop/domtool2.git] / src / domain.sig
index 0d74a54..c4fc329 100644 (file)
  * You should have received a copy of the GNU General Public License
  * along with this program; if not, write to the Free Software
  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
-*)
+ *)
 
 (* Domain-related primitive actions *)
 
 signature DOMAIN = sig
 
+    val isIdent : char -> bool
+    val validHost : string -> bool
+    val validDomain : string -> bool
+
     val registerBefore : (string -> unit) -> unit
     val registerAfter : (string -> unit) -> unit
     (* Register handlers to run just before and after entering a domain
      * block. *)
 
+    val currentDomain : unit -> string
+
+    val domainFile : {node : string, name : string} -> TextIO.outstream
+    (* Open one of the current domain's configuration files for a particular
+     * node. *)
+
+    val dnsMaster : unit -> string option
+    (* Name of the node that is the DNS master for the current domain, if there
+     * is one *)
+
+    val nodes : string list
+    (* Names of all system nodes *)
+    val nodeMap : string Ast.StringMap.map
+    (* Map node names to IP addresses *)
 end