X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/a3698041b3521c3cb17b3546ecdc08ba101c788a..36e42cb86393a7b9e333ecd7edfbdd16c7d9a1ac:/src/domain.sig diff --git a/src/domain.sig b/src/domain.sig index 0d74a54..7ea6689 100644 --- a/src/domain.sig +++ b/src/domain.sig @@ -14,15 +14,49 @@ * 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 *) + val nodeIp : string -> string + (* Look up a node in nodeMap *) + + val setUser : string -> unit + val getUser : unit -> string + (* Name of the UNIX user providing this configuration *) + + val your_domains : unit -> DataStructures.StringSet.set + (* The domains the current user may configure *) + + val your_users : unit -> DataStructures.StringSet.set + val your_groups : unit -> DataStructures.StringSet.set + val your_paths : unit -> DataStructures.StringSet.set + (* UNIX users, groups, and paths the user may act with *) + + val set_context : OpenSSL.context -> unit end