+ | 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);
+ app (fn (class, values) =>
+ (OpenSSL.writeInt (bio, 1);
+ OpenSSL.writeString (bio, class);
+ app (fn value =>
+ (OpenSSL.writeInt (bio, 1);
+ OpenSSL.writeString (bio, value))) values;
+ OpenSSL.writeInt (bio, 0))) classes;
+ OpenSSL.writeInt (bio, 0))
+ | MsgWhoHas {class, value} => (OpenSSL.writeInt (bio, 10);
+ OpenSSL.writeString (bio, class);
+ OpenSSL.writeString (bio, value))
+ | MsgWhoHasResponse users => (OpenSSL.writeInt (bio, 11);
+ app (fn user =>
+ (OpenSSL.writeInt (bio, 1);
+ OpenSSL.writeString (bio, user))) users;
+ OpenSSL.writeInt (bio, 0))