<<>> <> <> <> <> DIRECTORY CrRPC, CHNameP2V0, AuthenticationP14V2, CHOpsP2V3, BulkDataP0V1, CHACLOpsP127V1; CHACLOpsP127V1ClientImpl: CEDAR PROGRAM IMPORTS CrRPC EXPORTS CHACLOpsP127V1 ~ { OPEN CHACLOpsP127V1; <> PropertyError: PUBLIC PropertyErrorType ~ CODE; ArgumentError: PUBLIC ArgumentErrorType ~ CODE; CallError: PUBLIC CallErrorType ~ CODE; UpdateError: PUBLIC UpdateErrorType ~ CODE; ListNotFound: PUBLIC ListNotFoundType ~ CODE; AuthenticationError: PUBLIC AuthenticationErrorType ~ CODE; WrongServer: PUBLIC WrongServerType ~ CODE; <> GetError: CrRPC.GetErrorProc ~ { SELECT errNum FROM 3 => { problem: CHOpsP2V3.PropertyProblem; distinguishedObject: CHNameP2V0.ThreePartName; problem ¬ VAL[CrRPC.GetCard16[s]]; distinguishedObject.organization ¬ CrRPC.GetRope[s]; distinguishedObject.domain ¬ CrRPC.GetRope[s]; distinguishedObject.object ¬ CrRPC.GetRope[s]; ERROR PropertyError[problem, distinguishedObject] }; 2 => { problem: CHOpsP2V3.ArgumentProblem; which: CHOpsP2V3.WhichArgument; problem ¬ VAL[CrRPC.GetCard16[s]]; which ¬ VAL[CrRPC.GetCard16[s]]; ERROR ArgumentError[problem, which] }; 1 => { problem: CHOpsP2V3.CallProblem; problem ¬ VAL[CrRPC.GetCard16[s]]; ERROR CallError[problem] }; 4 => { problem: CHOpsP2V3.UpdateProblem; found: BOOLEAN; which: CHOpsP2V3.WhichArgument; distinguishedObject: CHNameP2V0.ThreePartName; problem ¬ VAL[CrRPC.GetCard16[s]]; found ¬ CrRPC.GetBool[s]; which ¬ VAL[CrRPC.GetCard16[s]]; distinguishedObject.organization ¬ CrRPC.GetRope[s]; distinguishedObject.domain ¬ CrRPC.GetRope[s]; distinguishedObject.object ¬ CrRPC.GetRope[s]; ERROR UpdateError[problem, found, which, distinguishedObject] }; 7 => ERROR ListNotFound[]; 6 => { problem: AuthenticationP14V2.Problem; problem ¬ VAL[CrRPC.GetCard16[s]]; ERROR AuthenticationError[problem] }; 5 => { hint: CHNameP2V0.ThreePartName; hint.organization ¬ CrRPC.GetRope[s]; hint.domain ¬ CrRPC.GetRope[s]; hint.object ¬ CrRPC.GetRope[s]; ERROR WrongServer[hint] }; ENDCASE => { ERROR CrRPC.Error[h, remoteError, "Unexpected Remote Error"]; }; }; <> IsInDomainACL: PUBLIC IsInDomainACLType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, domain.organization]; CrRPC.PutRope[s, domain.domain]; CrRPC.PutCard16[s, ORD[acl]]; CrRPC.PutCard32[s, secondaryProperty]; CrRPC.PutRope[s, member.organization]; CrRPC.PutRope[s, member.domain]; CrRPC.PutRope[s, member.object]; CrRPC.PutCard16[s, ORD[agent.credentials.type]]; MProc1[h, s, agent.credentials.value]; MProc1[h, s, agent.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { inACL ¬ CrRPC.GetBool[s]; }; CrRPC.Call[h~h, remotePgm~127, remotePgmVersion~1, remoteProc~37 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; AddMemberToPropertyACL: PUBLIC AddMemberToPropertyACLType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, name.organization]; CrRPC.PutRope[s, name.domain]; CrRPC.PutRope[s, name.object]; CrRPC.PutCard32[s, property]; CrRPC.PutCard16[s, ORD[acl]]; CrRPC.PutRope[s, newMember.organization]; CrRPC.PutRope[s, newMember.domain]; CrRPC.PutRope[s, newMember.object]; CrRPC.PutCard16[s, ORD[agent.credentials.type]]; MProc1[h, s, agent.credentials.value]; MProc1[h, s, agent.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { distinguishedObject.organization ¬ CrRPC.GetRope[s]; distinguishedObject.domain ¬ CrRPC.GetRope[s]; distinguishedObject.object ¬ CrRPC.GetRope[s]; }; CrRPC.Call[h~h, remotePgm~127, remotePgmVersion~1, remoteProc~31 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; RetrievePropertyACL: PUBLIC RetrievePropertyACLType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, name.organization]; CrRPC.PutRope[s, name.domain]; CrRPC.PutRope[s, name.object]; CrRPC.PutCard32[s, property]; CrRPC.PutCard16[s, ORD[acl]]; CrRPC.PutBulkDataSink[h, s, membership]; CrRPC.PutCard16[s, ORD[agent.credentials.type]]; MProc1[h, s, agent.credentials.value]; MProc1[h, s, agent.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { distinguishedObject.organization ¬ CrRPC.GetRope[s]; distinguishedObject.domain ¬ CrRPC.GetRope[s]; distinguishedObject.object ¬ CrRPC.GetRope[s]; }; CrRPC.Call[h~h, remotePgm~127, remotePgmVersion~1, remoteProc~30 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; IsInPropertyACL: PUBLIC IsInPropertyACLType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, name.organization]; CrRPC.PutRope[s, name.domain]; CrRPC.PutRope[s, name.object]; CrRPC.PutCard32[s, property]; CrRPC.PutCard16[s, ORD[acl]]; CrRPC.PutCard32[s, secondaryProperty]; CrRPC.PutRope[s, member.organization]; CrRPC.PutRope[s, member.domain]; CrRPC.PutRope[s, member.object]; CrRPC.PutCard16[s, ORD[agent.credentials.type]]; MProc1[h, s, agent.credentials.value]; MProc1[h, s, agent.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { inACL ¬ CrRPC.GetBool[s]; distinguishedObject.organization ¬ CrRPC.GetRope[s]; distinguishedObject.domain ¬ CrRPC.GetRope[s]; distinguishedObject.object ¬ CrRPC.GetRope[s]; }; CrRPC.Call[h~h, remotePgm~127, remotePgmVersion~1, remoteProc~33 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; RetrieveOrganizationACL: PUBLIC RetrieveOrganizationACLType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, organization]; CrRPC.PutCard16[s, ORD[acl]]; CrRPC.PutBulkDataSink[h, s, membership]; CrRPC.PutCard16[s, ORD[agent.credentials.type]]; MProc1[h, s, agent.credentials.value]; MProc1[h, s, agent.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~127, remotePgmVersion~1, remoteProc~38 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; DeleteMemberFromOrganizationACL: PUBLIC DeleteMemberFromOrganizationACLType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, organization]; CrRPC.PutCard16[s, ORD[acl]]; CrRPC.PutRope[s, member.organization]; CrRPC.PutRope[s, member.domain]; CrRPC.PutRope[s, member.object]; CrRPC.PutCard16[s, ORD[agent.credentials.type]]; MProc1[h, s, agent.credentials.value]; MProc1[h, s, agent.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~127, remotePgmVersion~1, remoteProc~40 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; AddMemberToDomainACL: PUBLIC AddMemberToDomainACLType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, domain.organization]; CrRPC.PutRope[s, domain.domain]; CrRPC.PutCard16[s, ORD[acl]]; CrRPC.PutRope[s, newMember.organization]; CrRPC.PutRope[s, newMember.domain]; CrRPC.PutRope[s, newMember.object]; CrRPC.PutCard16[s, ORD[agent.credentials.type]]; MProc1[h, s, agent.credentials.value]; MProc1[h, s, agent.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~127, remotePgmVersion~1, remoteProc~35 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; DeleteMemberFromDomainACL: PUBLIC DeleteMemberFromDomainACLType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, domain.organization]; CrRPC.PutRope[s, domain.domain]; CrRPC.PutCard16[s, ORD[acl]]; CrRPC.PutRope[s, member.organization]; CrRPC.PutRope[s, member.domain]; CrRPC.PutRope[s, member.object]; CrRPC.PutCard16[s, ORD[agent.credentials.type]]; MProc1[h, s, agent.credentials.value]; MProc1[h, s, agent.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~127, remotePgmVersion~1, remoteProc~36 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; RetrieveDomainACL: PUBLIC RetrieveDomainACLType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, domain.organization]; CrRPC.PutRope[s, domain.domain]; CrRPC.PutCard16[s, ORD[acl]]; CrRPC.PutBulkDataSink[h, s, membership]; CrRPC.PutCard16[s, ORD[agent.credentials.type]]; MProc1[h, s, agent.credentials.value]; MProc1[h, s, agent.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { distinguishedObject.organization ¬ CrRPC.GetRope[s]; distinguishedObject.domain ¬ CrRPC.GetRope[s]; distinguishedObject.object ¬ CrRPC.GetRope[s]; }; CrRPC.Call[h~h, remotePgm~127, remotePgmVersion~1, remoteProc~34 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; IsInOrganizationACL: PUBLIC IsInOrganizationACLType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, organization]; CrRPC.PutCard16[s, ORD[acl]]; CrRPC.PutCard32[s, secondaryProperty]; CrRPC.PutRope[s, member.organization]; CrRPC.PutRope[s, member.domain]; CrRPC.PutRope[s, member.object]; CrRPC.PutCard16[s, ORD[agent.credentials.type]]; MProc1[h, s, agent.credentials.value]; MProc1[h, s, agent.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { inACL ¬ CrRPC.GetBool[s]; }; CrRPC.Call[h~h, remotePgm~127, remotePgmVersion~1, remoteProc~41 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; DeleteMemberFromPropertyACL: PUBLIC DeleteMemberFromPropertyACLType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, name.organization]; CrRPC.PutRope[s, name.domain]; CrRPC.PutRope[s, name.object]; CrRPC.PutCard32[s, property]; CrRPC.PutCard16[s, ORD[acl]]; CrRPC.PutRope[s, member.organization]; CrRPC.PutRope[s, member.domain]; CrRPC.PutRope[s, member.object]; CrRPC.PutCard16[s, ORD[agent.credentials.type]]; MProc1[h, s, agent.credentials.value]; MProc1[h, s, agent.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { distinguishedObject.organization ¬ CrRPC.GetRope[s]; distinguishedObject.domain ¬ CrRPC.GetRope[s]; distinguishedObject.object ¬ CrRPC.GetRope[s]; }; CrRPC.Call[h~h, remotePgm~127, remotePgmVersion~1, remoteProc~32 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; AddMemberToOrganizationACL: PUBLIC AddMemberToOrganizationACLType ~ { PutArgs: CrRPC.PutArgsProc ~ { CrRPC.PutRope[s, organization]; CrRPC.PutCard16[s, ORD[acl]]; CrRPC.PutRope[s, newMember.organization]; CrRPC.PutRope[s, newMember.domain]; CrRPC.PutRope[s, newMember.object]; CrRPC.PutCard16[s, ORD[agent.credentials.type]]; MProc1[h, s, agent.credentials.value]; MProc1[h, s, agent.verifier]; }; GetResults: CrRPC.GetResultsProc ~ { NULL }; CrRPC.Call[h~h, remotePgm~127, remotePgmVersion~1, remoteProc~39 , putArgs~PutArgs, getResults~GetResults, getError~GetError]; }; <> MProc1: PROC [h: CrRPC.Handle, s: CrRPC.STREAM, val: AuthenticationP14V2.SeqWords] ~ { CrRPC.PutCard16[s, val.length]; FOR i2: CARDINAL IN [0..val.length) DO CrRPC.PutCard16[s, val.body[i2]]; ENDLOOP; }; }...