예제 #1
0
        protected internal static void SendRejectedReply(RpcCall call, EndPoint remoteAddress
                                                         , ChannelHandlerContext ctx)
        {
            XDR            @out  = new XDR();
            RpcDeniedReply reply = new RpcDeniedReply(call.GetXid(), RpcReply.ReplyState.MsgDenied
                                                      , RpcDeniedReply.RejectState.AuthError, new VerifierNone());

            reply.Write(@out);
            ChannelBuffer buf = ChannelBuffers.WrappedBuffer(@out.AsReadOnlyWrap().Buffer());
            RpcResponse   rsp = new RpcResponse(buf, remoteAddress);

            RpcUtil.SendRpcResponse(ctx, rsp);
        }
예제 #2
0
        private void SendAcceptedReply(RpcCall call, EndPoint remoteAddress, RpcAcceptedReply.AcceptState
                                       acceptState, ChannelHandlerContext ctx)
        {
            RpcAcceptedReply reply = RpcAcceptedReply.GetInstance(call.GetXid(), acceptState,
                                                                  Verifier.VerifierNone);
            XDR @out = new XDR();

            reply.Write(@out);
            if (acceptState == RpcAcceptedReply.AcceptState.ProgMismatch)
            {
                @out.WriteInt(lowProgVersion);
                @out.WriteInt(highProgVersion);
            }
            ChannelBuffer b   = ChannelBuffers.WrappedBuffer(@out.AsReadOnlyWrap().Buffer());
            RpcResponse   rsp = new RpcResponse(b, remoteAddress);

            RpcUtil.SendRpcResponse(ctx, rsp);
        }
예제 #3
0
        public virtual void TestConstructor()
        {
            Credentials credential = new CredentialsNone();
            Verifier    verifier   = new VerifierNone();
            int         rpcVersion = RpcCall.RpcVersion;
            int         program    = 2;
            int         version    = 3;
            int         procedure  = 4;
            RpcCall     call       = new RpcCall(0, RpcMessage.Type.RpcCall, rpcVersion, program, version
                                                 , procedure, credential, verifier);

            Assert.Equal(0, call.GetXid());
            Assert.Equal(RpcMessage.Type.RpcCall, call.GetMessageType());
            Assert.Equal(rpcVersion, call.GetRpcVersion());
            Assert.Equal(program, call.GetProgram());
            Assert.Equal(version, call.GetVersion());
            Assert.Equal(procedure, call.GetProcedure());
            Assert.Equal(credential, call.GetCredential());
            Assert.Equal(verifier, call.GetVerifier());
        }