OpenSSL.writeString (bio, domain))
| MsgMailboxes users =>
(OpenSSL.writeInt (bio, 22);
- sendList OpenSSL.writeString (bio, users))
+ sendList (fn (bio, {user, mailbox}) =>
+ (OpenSSL.writeString (bio, user);
+ OpenSSL.writeString (bio, mailbox)))
+ (bio, users))
fun checkIt v =
case v of
SOME (MsgRmMailbox {domain = domain, user = user})
| _ => NONE)
| 21 => Option.map MsgListMailboxes (OpenSSL.readString bio)
- | 22 => Option.map MsgMailboxes (recvList OpenSSL.readString bio)
+ | 22 => Option.map MsgMailboxes (recvList
+ (fn bio =>
+ case (OpenSSL.readString bio,
+ OpenSSL.readString bio) of
+ (SOME user, SOME mailbox) =>
+ SOME {user = user, mailbox = mailbox}
+ | _ => NONE)
+ bio)
| _ => NONE)
end