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
23 datatype socket_permission
=
31 (* Is this apt package installed?
*)
33 (* Is this user allowed to use cron?
*)
35 (* Is this user allowed to use FTP?
*)
36 | QTrustedPath
of string
37 (* Is this user restricted to trusted
-path executables?
*)
39 (* What socket permissions does this user have?
*)
41 (* What firewall rules does this user have?
*)
45 (* Your request was processed successfully
. *)
47 (* Your request went wrong
in some way
. *)
49 (* Configuration source code
*)
50 | MsgFile
of Slave
.file_status
51 (* The status
of a configuration file has changed
. *)
53 (* Perform the actions associated
with the MsgFiles sent previously
. *)
55 (* Grant a permission
*)
56 | MsgRevoke
of Acl
.acl
57 (* Revoke a permission
*)
58 | MsgListPerms
of string
59 (* List all
of a user
's permissions
*)
60 | MsgPerms
of (string * string list
) list
61 (* A response to MsgListPerms
, giving a permission class
and all values
62 * for which the user is authorized
in that class
*)
63 | MsgWhoHas
of {class
: string, value
: string}
64 (* Which users have this permission?
*)
65 | MsgWhoHasResponse
of string list
66 (* These are the users
! *)
67 | MsgMultiConfig
of string list
68 (* Multiple Domtool sources
in dependency order
*)
69 | MsgRmdom
of string list
70 (* Remove all configuration associated
with some domains
and revoke
71 * rights to those domains from all users
. *)
73 (* Make a clean slate
of it
and reprocess all configuration from scratch
. *)
75 (* Remove all ACL entries for a user
, and remove all domains to which
76 * that user
and no one
else has rights
. *)
77 | MsgCreateDbUser
of {dbtype
: string, passwd
: string option
}
78 (* Request creation
of a user for the named DBMS
type *)
79 | MsgCreateDb
of {dbtype
: string, dbname
: string}
80 (* Request creation
of a DBMS database
*)
81 | MsgDropDb
of {dbtype
: string, dbname
: string}
82 (* Request dropping
of a DBMS database
*)
83 | MsgNewMailbox
of {domain
: string, user
: string,
84 passwd
: string, mailbox
: string}
85 (* Request creation
of a new vmail mapping
*)
86 | MsgPasswdMailbox
of {domain
: string, user
: string, passwd
: string}
87 (* Change a vmail account
's password
*)
88 | MsgRmMailbox
of {domain
: string, user
: string}
89 (* Remove a vmail mapping
*)
90 | MsgListMailboxes
of string
91 (* List all mailboxes for a domain
*)
92 | MsgMailboxes
of {user
: string, mailbox
: string} list
93 (* Reply to MsgListMailboxes
*)
94 | MsgSaQuery
of string
95 (* Check on the SpamAsssassin filtering status
of a user or e
-mail address
*)
97 (* Response to MsgSaQuery
*)
98 | MsgSaSet
of string * bool
99 (* Set the filtering status
of a user or e
-mail address
*)
100 | MsgSmtpLogReq
of string
101 (* Request all current SMTP log lines about a domain
*)
102 | MsgSmtpLogRes
of string
103 (* One line
of a response to MsgSmtpLogReq
*)
104 | MsgDbPasswd
of {dbtype
: string, passwd
: string}
105 (* Change a DBMS user
's password
*)
107 (* Halt the server
*)
110 (* Answers to boolean queries
*)
112 (* Ask for host
-specific information
*)
113 | MsgSocket
of socket_permission
114 (* Answer to a QSocket query
*)
115 | MsgFirewall
of string list
116 (* Answer to a QFirewall query
*)
118 (* MsgRegenerate without actual publishing
of configuration
*)
119 | MsgGrantDb
of {dbtype
: string, dbname
: string}
120 (* Grant all allowed privileges on a DBMS database to the user
*)
122 (* Run the script to grant DROP privileges on MySQL tables to owning users
*)
123 | MsgDescribe
of string
124 (* Ask for a listing
of all
of a domain
's
real configuration
*)
125 | MsgDescription
of string
126 (* Reply to MsgDescribe
*)