Microsoft.Protocols.TestSuites.Rdpbcgr.RdpbcgrTestSuite.GetFailureCode_RDP_NEG_FAILURE C# (CSharp) Method

GetFailureCode_RDP_NEG_FAILURE() private method

Return a reasonable failureCode according to the receving Client_X_224_Connection_Request_Pdu.
private GetFailureCode_RDP_NEG_FAILURE ( Client_X_224_Connection_Request_Pdu pdu ) : failureCode_Values
pdu Microsoft.Protocols.TestTools.StackSdk.RemoteDesktop.Rdpbcgr.Client_X_224_Connection_Request_Pdu the Client_X_224_Connection_Request_Pdu
return failureCode_Values
        private failureCode_Values GetFailureCode_RDP_NEG_FAILURE(Client_X_224_Connection_Request_Pdu pdu)
        {
            failureCode_Values result = failureCode_Values.NO_FAILURE;
            if (pdu == null)
                return result;

            bool has_PROTOCOL_RDP_FLAG = pdu.rdpNegData.requestedProtocols.HasFlag(requestedProtocols_Values.PROTOCOL_RDP_FLAG);
            bool has_PROTOCOL_SSL_FLAG = pdu.rdpNegData.requestedProtocols.HasFlag(requestedProtocols_Values.PROTOCOL_RDP_FLAG);
            bool has_PROTOCOL_HYBRID_FLAG = pdu.rdpNegData.requestedProtocols.HasFlag(requestedProtocols_Values.PROTOCOL_HYBRID_FLAG);
            bool has_PROTOCOL_HYBRID_EX = pdu.rdpNegData.requestedProtocols.HasFlag(requestedProtocols_Values.PROTOCOL_HYBRID_EX);

            if (!has_PROTOCOL_HYBRID_EX && !has_PROTOCOL_HYBRID_FLAG && has_PROTOCOL_SSL_FLAG)
            {
                // 0000 | 0001
                result = failureCode_Values.SSL_REQUIRED_BY_SERVER;
            }
            else if (!has_PROTOCOL_HYBRID_EX && !has_PROTOCOL_HYBRID_FLAG)
            {
                // 0010 | 0011
                result = failureCode_Values.HYBRID_REQUIRED_BY_SERVER;
            }
            else if (!has_PROTOCOL_SSL_FLAG)
            {
                // 1000 | 0100 | 1101 | 1100 | 1001 | 0101 | 1100
                result = failureCode_Values.SSL_WITH_USER_AUTH_REQUIRED_BY_SERVER;
            }
            else if (!has_PROTOCOL_RDP_FLAG)
            {
                // 1010 | 0110 | 1110
                result = failureCode_Values.SSL_CERT_NOT_ON_SERVER;
            }
            else
            {
                // 1011 | 0111 | 1111
                result = failureCode_Values.INCONSISTENT_FLAGS;
            }

            return result;
        }
    
RdpbcgrTestSuite