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); }
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 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); }