private ProtocolInformationFlags GetProtocolInformationFlags()
        {
            ProtocolInformationFlags flags = (ProtocolInformationFlags)0;

            if (this.state.Config.PortConfiguration.SupportingTokensEnabled)
            {
                flags = (ProtocolInformationFlags)((byte)(flags | ProtocolInformationFlags.IssuedTokensEnabled));
            }
            if (this.state.TransactionManager.Settings.NetworkInboundAccess)
            {
                flags = (ProtocolInformationFlags)((byte)(flags | ProtocolInformationFlags.NetworkInboundAccess));
            }
            if (this.state.TransactionManager.Settings.NetworkOutboundAccess)
            {
                flags = (ProtocolInformationFlags)((byte)(flags | ProtocolInformationFlags.NetworkOutboundAccess));
            }
            if (this.state.TransactionManager.Settings.NetworkClientAccess)
            {
                flags = (ProtocolInformationFlags)((byte)(flags | ProtocolInformationFlags.NetworkClientAccess));
            }
            if (this.state.TransactionManager.Settings.IsClustered)
            {
                flags = (ProtocolInformationFlags)((byte)(flags | ProtocolInformationFlags.IsClustered));
            }
            return(flags);
        }
Example #2
0
        private void ReadProtocolInformation(MemoryStream mem)
        {
            ProtocolInformationMajorVersion version = (ProtocolInformationMajorVersion)((byte)mem.ReadByte());

            if (version != ProtocolInformationMajorVersion.v1)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SerializationException(Microsoft.Transactions.SR.GetString("ProtocolInfoUnsupportedVersion", new object[] { version })));
            }
            ProtocolInformationMinorVersion version2 = (ProtocolInformationMinorVersion)((byte)mem.ReadByte());

            this.flags = (ProtocolInformationFlags)((byte)mem.ReadByte());
            this.CheckFlags(this.flags);
            this.httpsPort = SerializationUtils.ReadInt(mem);
            if ((this.httpsPort < 0) || (this.httpsPort > 0xffff))
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SerializationException(Microsoft.Transactions.SR.GetString("ProtocolInfoInvalidHttpsPort", new object[] { this.httpsPort })));
            }
            this.maxTimeout = SerializationUtils.ReadTimeout(mem);
            if (this.maxTimeout < TimeSpan.Zero)
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SerializationException(Microsoft.Transactions.SR.GetString("ProtocolInfoInvalidMaxTimeout", new object[] { this.maxTimeout })));
            }
            this.hostName = SerializationUtils.ReadString(mem);
            if (string.IsNullOrEmpty(this.hostName))
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SerializationException(Microsoft.Transactions.SR.GetString("ProtocolInfoInvalidHostName")));
            }
            this.basePath = SerializationUtils.ReadString(mem);
            if (string.IsNullOrEmpty(this.basePath))
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SerializationException(Microsoft.Transactions.SR.GetString("ProtocolInfoInvalidBasePath")));
            }
            this.nodeName = SerializationUtils.ReadString(mem);
            if (string.IsNullOrEmpty(this.nodeName))
            {
                throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SerializationException(Microsoft.Transactions.SR.GetString("ProtocolInfoInvalidNodeName")));
            }
            byte num = 2;

            if (version2 >= num)
            {
                ProtocolVersion version3 = (ProtocolVersion)SerializationUtils.ReadUShort(mem);
                if (((ushort)(version3 & ProtocolVersion.Version10)) != 0)
                {
                    this.isV10Enabled = true;
                }
                if (((ushort)(version3 & ProtocolVersion.Version11)) != 0)
                {
                    this.isV11Enabled = true;
                }
            }
            else
            {
                this.isV10Enabled = true;
            }
        }
Example #3
0
 private void CheckFlags(ProtocolInformationFlags flags)
 {
     if (((byte)(flags | (ProtocolInformationFlags.IsClustered | ProtocolInformationFlags.IssuedTokensEnabled | ProtocolInformationFlags.NetworkClientAccess | ProtocolInformationFlags.NetworkInboundAccess | ProtocolInformationFlags.NetworkOutboundAccess))) != 0x1f)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SerializationException(Microsoft.Transactions.SR.GetString("ProtocolInfoInvalidFlags", new object[] { flags })));
     }
     if (((byte)(flags & (ProtocolInformationFlags.NetworkInboundAccess | ProtocolInformationFlags.NetworkOutboundAccess))) == 0)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SerializationException(Microsoft.Transactions.SR.GetString("ProtocolInfoInvalidFlags", new object[] { flags })));
     }
 }
 private void CheckFlags(ProtocolInformationFlags flags)
 {
     if (((byte) (flags | (ProtocolInformationFlags.IsClustered | ProtocolInformationFlags.IssuedTokensEnabled | ProtocolInformationFlags.NetworkClientAccess | ProtocolInformationFlags.NetworkInboundAccess | ProtocolInformationFlags.NetworkOutboundAccess))) != 0x1f)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SerializationException(Microsoft.Transactions.SR.GetString("ProtocolInfoInvalidFlags", new object[] { flags })));
     }
     if (((byte) (flags & (ProtocolInformationFlags.NetworkInboundAccess | ProtocolInformationFlags.NetworkOutboundAccess))) == 0)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SerializationException(Microsoft.Transactions.SR.GetString("ProtocolInfoInvalidFlags", new object[] { flags })));
     }
 }
 private void ReadProtocolInformation(MemoryStream mem)
 {
     ProtocolInformationMajorVersion version = (ProtocolInformationMajorVersion) ((byte) mem.ReadByte());
     if (version != ProtocolInformationMajorVersion.v1)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SerializationException(Microsoft.Transactions.SR.GetString("ProtocolInfoUnsupportedVersion", new object[] { version })));
     }
     ProtocolInformationMinorVersion version2 = (ProtocolInformationMinorVersion) ((byte) mem.ReadByte());
     this.flags = (ProtocolInformationFlags) ((byte) mem.ReadByte());
     this.CheckFlags(this.flags);
     this.httpsPort = SerializationUtils.ReadInt(mem);
     if ((this.httpsPort < 0) || (this.httpsPort > 0xffff))
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SerializationException(Microsoft.Transactions.SR.GetString("ProtocolInfoInvalidHttpsPort", new object[] { this.httpsPort })));
     }
     this.maxTimeout = SerializationUtils.ReadTimeout(mem);
     if (this.maxTimeout < TimeSpan.Zero)
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SerializationException(Microsoft.Transactions.SR.GetString("ProtocolInfoInvalidMaxTimeout", new object[] { this.maxTimeout })));
     }
     this.hostName = SerializationUtils.ReadString(mem);
     if (string.IsNullOrEmpty(this.hostName))
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SerializationException(Microsoft.Transactions.SR.GetString("ProtocolInfoInvalidHostName")));
     }
     this.basePath = SerializationUtils.ReadString(mem);
     if (string.IsNullOrEmpty(this.basePath))
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SerializationException(Microsoft.Transactions.SR.GetString("ProtocolInfoInvalidBasePath")));
     }
     this.nodeName = SerializationUtils.ReadString(mem);
     if (string.IsNullOrEmpty(this.nodeName))
     {
         throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new SerializationException(Microsoft.Transactions.SR.GetString("ProtocolInfoInvalidNodeName")));
     }
     byte num = 2;
     if (version2 >= num)
     {
         ProtocolVersion version3 = (ProtocolVersion) SerializationUtils.ReadUShort(mem);
         if (((ushort) (version3 & ProtocolVersion.Version10)) != 0)
         {
             this.isV10Enabled = true;
         }
         if (((ushort) (version3 & ProtocolVersion.Version11)) != 0)
         {
             this.isV11Enabled = true;
         }
     }
     else
     {
         this.isV10Enabled = true;
     }
 }
        private void WriteProtocolInformation(MemoryStream mem)
        {
            ProtocolInformationFlags protocolInformationFlags = this.GetProtocolInformationFlags();

            mem.WriteByte(1);
            mem.WriteByte(2);
            mem.WriteByte((byte)protocolInformationFlags);
            SerializationUtils.WriteInt(mem, this.state.Config.PortConfiguration.HttpsPort);
            SerializationUtils.WriteTimeout(mem, this.state.Config.MaxTimeout);
            SerializationUtils.WriteString(mem, this.state.Config.PortConfiguration.HostName);
            SerializationUtils.WriteString(mem, this.state.Config.PortConfiguration.BasePath);
            SerializationUtils.WriteString(mem, Environment.MachineName);
            SerializationUtils.WriteUShort(mem, 3);
        }