structure MsgTypes = struct
+datatype socket_permission =
+ Any
+ | Client
+ | Server
+ | Nada
+
+datatype query =
+ QApt of string
+ (* Is this apt package installed? *)
+ | QCron of string
+ (* Is this user allowed to use cron? *)
+ | QFtp of string
+ (* Is this user allowed to use FTP? *)
+ | QTrustedPath of string
+ (* Is this user restricted to trusted-path executables? *)
+ | QSocket of string
+ (* What socket permissions does this user have? *)
+ | QFirewall of string
+ (* What firewall rules does this user have? *)
+
datatype msg =
MsgOk
(* Your request was processed successfully. *)
(* Remove a vmail mapping *)
| MsgListMailboxes of string
(* List all mailboxes for a domain *)
- | MsgMailboxes of string list
+ | MsgMailboxes of {user : string, mailbox : string} list
(* Reply to MsgListMailboxes *)
+ | MsgSaQuery of string
+ (* Check on the SpamAsssassin filtering status of a user or e-mail address *)
+ | MsgSaStatus of bool
+ (* Response to MsgSaQuery *)
+ | MsgSaSet of string * bool
+ (* Set the filtering status of a user or e-mail address *)
+ | MsgSmtpLogReq of string
+ (* Request all current SMTP log lines about a domain *)
+ | MsgSmtpLogRes of string
+ (* One line of a response to MsgSmtpLogReq *)
+ | MsgDbPasswd of {dbtype : string, passwd : string}
+ (* Change a DBMS user's password *)
+ | MsgShutdown
+ (* Halt the server *)
+ | MsgYes
+ | MsgNo
+ (* Answers to boolean queries *)
+ | MsgQuery of query
+ (* Ask for host-specific information *)
+ | MsgSocket of socket_permission
+ (* Answer to a QSocket query *)
+ | MsgFirewall of string list
+ (* Answer to a QFirewall query *)
end