1 (* HCoop
Domtool (http
://hcoop
.sourceforge
.net
/)
2 * Copyright (c
) 2006, Adam Chlipala
4 * This program is free software
; you can redistribute it
and/or
5 * modify it under the terms
of the GNU General Public License
6 * as published by the Free Software Foundation
; either version
2
7 * of the License
, or (at your option
) any later version
.
9 * This program is distributed
in the hope that it will be useful
,
10 * but WITHOUT ANY WARRANTY
; without even the implied warranty
of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE
. See the
12 * GNU General Public License for more details
.
14 * You should have received a copy
of the GNU General Public License
15 * along
with this program
; if not
, write to the Free Software
16 * Foundation
, Inc
., 51 Franklin Street
, Fifth Floor
, Boston
, MA
02110-1301, USA
.
19 (* Network message data structures
*)
21 structure MsgTypes
= struct
25 (* Is this apt package installed?
*)
27 (* Is this user allowed to use cron?
*)
29 (* Is this user allowed to use FTP?
*)
30 | QTrustedPath
of string
31 (* Is this user restricted to trusted
-path executables?
*)
35 (* Your request was processed successfully
. *)
37 (* Your request went wrong
in some way
. *)
39 (* Configuration source code
*)
40 | MsgFile
of Slave
.file_status
41 (* The status
of a configuration file has changed
. *)
43 (* Perform the actions associated
with the MsgFiles sent previously
. *)
45 (* Grant a permission
*)
46 | MsgRevoke
of Acl
.acl
47 (* Revoke a permission
*)
48 | MsgListPerms
of string
49 (* List all
of a user
's permissions
*)
50 | MsgPerms
of (string * string list
) list
51 (* A response to MsgListPerms
, giving a permission class
and all values
52 * for which the user is authorized
in that class
*)
53 | MsgWhoHas
of {class
: string, value
: string}
54 (* Which users have this permission?
*)
55 | MsgWhoHasResponse
of string list
56 (* These are the users
! *)
57 | MsgMultiConfig
of string list
58 (* Multiple Domtool sources
in dependency order
*)
59 | MsgRmdom
of string list
60 (* Remove all configuration associated
with some domains
and revoke
61 * rights to those domains from all users
. *)
63 (* Make a clean slate
of it
and reprocess all configuration from scratch
. *)
65 (* Remove all ACL entries for a user
, and remove all domains to which
66 * that user
and no one
else has rights
. *)
67 | MsgCreateDbUser
of {dbtype
: string, passwd
: string option
}
68 (* Request creation
of a user for the named DBMS
type *)
69 | MsgCreateDbTable
of {dbtype
: string, dbname
: string}
70 (* Request creation
of a DBMS table
*)
71 | MsgNewMailbox
of {domain
: string, user
: string,
72 passwd
: string, mailbox
: string}
73 (* Request creation
of a new vmail mapping
*)
74 | MsgPasswdMailbox
of {domain
: string, user
: string, passwd
: string}
75 (* Change a vmail account
's password
*)
76 | MsgRmMailbox
of {domain
: string, user
: string}
77 (* Remove a vmail mapping
*)
78 | MsgListMailboxes
of string
79 (* List all mailboxes for a domain
*)
80 | MsgMailboxes
of {user
: string, mailbox
: string} list
81 (* Reply to MsgListMailboxes
*)
82 | MsgSaQuery
of string
83 (* Check on the SpamAsssassin filtering status
of a user or e
-mail address
*)
85 (* Response to MsgSaQuery
*)
86 | MsgSaSet
of string * bool
87 (* Set the filtering status
of a user or e
-mail address
*)
88 | MsgSmtpLogReq
of string
89 (* Request all current SMTP log lines about a domain
*)
90 | MsgSmtpLogRes
of string
91 (* One line
of a response to MsgSmtpLogReq
*)
92 | MsgDbPasswd
of {dbtype
: string, passwd
: string}
93 (* Change a DBMS user
's password
*)
98 (* Answers to boolean queries
*)
100 (* Ask for host
-specific information
*)