+ 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))
+ | MsgSaChanged => OpenSSL.writeInt (bio, 45)