X-Git-Url: https://git.hcoop.net/hcoop/domtool2.git/blobdiff_plain/64e85bae9da8de223cef4e12a7e659f6d7938638..5ee41dd039e304ae374a5f1265e32839204f14ff:/src/msg.sml?ds=inline diff --git a/src/msg.sml b/src/msg.sml index 4dcc3ff..43b6386 100644 --- a/src/msg.sml +++ b/src/msg.sml @@ -31,6 +31,16 @@ val i2a = fn 0 => Add | 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) @@ -45,6 +55,8 @@ fun send (bio, m) = 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 @@ -70,6 +82,9 @@ fun recv bio = file = file}) | _ => NONE) | 5 => SOME MsgDoFiles + | 6 => (case recvAcl bio of + SOME acl => SOME (MsgGrant acl) + | _ => NONE) | _ => NONE) end