+ | MsgGrant acl => (OpenSSL.writeInt (bio, 6);
+ sendAcl (bio, acl))
+ | MsgRevoke acl => (OpenSSL.writeInt (bio, 7);
+ sendAcl (bio, acl))
+ | MsgListPerms user => (OpenSSL.writeInt (bio, 8);
+ OpenSSL.writeString (bio, user))
+ | MsgPerms classes => (OpenSSL.writeInt (bio, 9);
+ sendList (fn (bio, (class, values)) =>
+ (OpenSSL.writeString (bio, class);
+ sendList OpenSSL.writeString (bio, values)))
+ (bio, classes))
+ | MsgWhoHas {class, value} => (OpenSSL.writeInt (bio, 10);
+ OpenSSL.writeString (bio, class);
+ OpenSSL.writeString (bio, value))
+ | MsgWhoHasResponse users => (OpenSSL.writeInt (bio, 11);
+ sendList OpenSSL.writeString (bio, users))
+ | MsgMultiConfig codes => (OpenSSL.writeInt (bio, 12);
+ sendList OpenSSL.writeString (bio, codes))
+ | MsgRmdom doms => (OpenSSL.writeInt (bio, 13);
+ sendList OpenSSL.writeString (bio, doms))
+ | MsgRegenerate => OpenSSL.writeInt (bio, 14)
+ | MsgRmuser dom => (OpenSSL.writeInt (bio, 15);
+ OpenSSL.writeString (bio, dom))
+ | MsgCreateDbUser {dbtype, passwd} => (OpenSSL.writeInt (bio, 16);
+ OpenSSL.writeString (bio, dbtype);
+ sendOption OpenSSL.writeString (bio, passwd))
+ | MsgCreateDb {dbtype, dbname, encoding} => (OpenSSL.writeInt (bio, 17);
+ OpenSSL.writeString (bio, dbtype);
+ OpenSSL.writeString (bio, dbname);
+ sendOption OpenSSL.writeString (bio, encoding))
+ | MsgNewMailbox {domain, user, passwd, mailbox} =>
+ (OpenSSL.writeInt (bio, 18);
+ OpenSSL.writeString (bio, domain);
+ OpenSSL.writeString (bio, user);
+ OpenSSL.writeString (bio, passwd);
+ OpenSSL.writeString (bio, mailbox))
+ | MsgPasswdMailbox {domain, user, passwd} =>
+ (OpenSSL.writeInt (bio, 19);
+ OpenSSL.writeString (bio, domain);
+ OpenSSL.writeString (bio, user);
+ OpenSSL.writeString (bio, passwd))
+ | MsgRmMailbox {domain, user} =>
+ (OpenSSL.writeInt (bio, 20);
+ OpenSSL.writeString (bio, domain);
+ OpenSSL.writeString (bio, user))
+ | MsgListMailboxes domain =>
+ (OpenSSL.writeInt (bio, 21);
+ OpenSSL.writeString (bio, domain))
+ | MsgMailboxes users =>
+ (OpenSSL.writeInt (bio, 22);
+ sendList (fn (bio, {user, mailbox}) =>
+ (OpenSSL.writeString (bio, user);
+ OpenSSL.writeString (bio, mailbox)))
+ (bio, users))
+ | MsgSaQuery addr => (OpenSSL.writeInt (bio, 23);
+ OpenSSL.writeString (bio, addr))
+ | MsgSaStatus b => (OpenSSL.writeInt (bio, 24);
+ sendBool (bio, b))
+ | MsgSaSet (addr, b) => (OpenSSL.writeInt (bio, 25);
+ OpenSSL.writeString (bio, addr);
+ sendBool (bio, b))
+ | MsgSmtpLogReq domain => (OpenSSL.writeInt (bio, 26);
+ OpenSSL.writeString (bio, domain))
+ | MsgSmtpLogRes domain => (OpenSSL.writeInt (bio, 27);
+ OpenSSL.writeString (bio, domain))
+ | MsgDbPasswd {dbtype, passwd} => (OpenSSL.writeInt (bio, 28);
+ OpenSSL.writeString (bio, dbtype);
+ OpenSSL.writeString (bio, passwd))
+ | MsgShutdown => OpenSSL.writeInt (bio, 29)
+ | MsgYes => OpenSSL.writeInt (bio, 30)
+ | MsgNo => OpenSSL.writeInt (bio, 31)
+ | MsgQuery q => (OpenSSL.writeInt (bio, 32);
+ sendQuery (bio, q))
+ | MsgSocket p => (OpenSSL.writeInt (bio, 33);
+ sendSockPerm (bio, p))
+ | MsgFirewall ls => (OpenSSL.writeInt (bio, 34);
+ sendList OpenSSL.writeString (bio, ls))
+ | MsgRegenerateTc => OpenSSL.writeInt (bio, 35)
+ | MsgDropDb {dbtype, dbname} => (OpenSSL.writeInt (bio, 36);
+ OpenSSL.writeString (bio, dbtype);
+ OpenSSL.writeString (bio, dbname))
+ | MsgGrantDb {dbtype, dbname} => (OpenSSL.writeInt (bio, 37);
+ OpenSSL.writeString (bio, dbtype);
+ OpenSSL.writeString (bio, dbname))
+ | MsgMysqlFixperms => OpenSSL.writeInt (bio, 38)
+ | MsgDescribe dom => (OpenSSL.writeInt (bio, 39);
+ OpenSSL.writeString (bio, dom))
+ | MsgDescription s => (OpenSSL.writeInt (bio, 40);
+ OpenSSL.writeString (bio, s))
+ | MsgReUsers => OpenSSL.writeInt (bio, 41)
+ | MsgVmailChanged => OpenSSL.writeInt (bio, 42)
+ | MsgFirewallRegen => OpenSSL.writeInt (bio, 43)
+ | MsgAptQuery {section, description} => (OpenSSL.writeInt (bio, 44);
+ OpenSSL.writeString (bio, section);
+ OpenSSL.writeString (bio, description))