| 2 => Modify
| _ => raise OpenSSL.OpenSSL "Bad action number to deserialize"
+fun sendAcl (bio, {user, class, value}) =
+ (OpenSSL.writeString (bio, user);
+ OpenSSL.writeString (bio, class);
+ OpenSSL.writeString (bio, value))
+
+fun recvAcl bio =
+ case (OpenSSL.readString bio, OpenSSL.readString bio, OpenSSL.readString bio) of
+ (SOME user, SOME class, SOME value) => SOME {user = user, class = class, value = value}
+ | _ => NONE
+
fun send (bio, m) =
case m of
MsgOk => OpenSSL.writeInt (bio, 1)
OpenSSL.writeString (bio, dir);
OpenSSL.writeString (bio, file))
| MsgDoFiles => OpenSSL.writeInt (bio, 5)
+ | MsgGrant acl => (OpenSSL.writeInt (bio, 6);
+ sendAcl (bio, acl))
fun checkIt v =
case v of
file = file})
| _ => NONE)
| 5 => SOME MsgDoFiles
+ | 6 => (case recvAcl bio of
+ SOME acl => SOME (MsgGrant acl)
+ | _ => NONE)
| _ => NONE)
end