void OnConnectionModeKnown(ListenerConnectionModeReader modeReader) { lock (ThisLock) { if (isDisposed) { return; } connectionReaders.Remove(modeReader); } try { FramingMode framingMode = modeReader.GetConnectionMode(); switch (framingMode) { case FramingMode.Duplex: OnDuplexConnection(modeReader); break; case FramingMode.Singleton: OnSingletonConnection(modeReader); break; default: { Exception inner = new InvalidDataException(SR.GetString( SR.FramingModeNotSupported, framingMode)); Exception exception = new ProtocolException(inner.Message, inner); FramingEncodingString.AddFaultString(exception, FramingEncodingString.UnsupportedModeFault); throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(exception); } } } catch (ProtocolException exception) { DiagnosticUtility.TraceHandledException(exception, TraceEventType.Information); modeReader.Dispose(); } catch (Exception exception) { if (Fx.IsFatal(exception)) { throw; } DiagnosticUtility.TraceHandledException(exception, TraceEventType.Error); // containment -- abort the errant reader modeReader.Dispose(); } }
public override int Decode(ReadOnlySequence <byte> buffer) { DecoderHelper.ValidateSize(buffer.Length); var data = buffer.First.Span; try { int bytesConsumed; switch (currentState) { case State.ReadingVersionRecord: ValidateRecordType(FramingRecordType.Version, (FramingRecordType)data[0]); currentState = State.ReadingMajorVersion; bytesConsumed = 1; break; case State.ReadingMajorVersion: majorVersion = data[0]; ValidateMajorVersion(majorVersion); currentState = State.ReadingMinorVersion; bytesConsumed = 1; break; case State.ReadingMinorVersion: minorVersion = data[0]; currentState = State.ReadingModeRecord; bytesConsumed = 1; break; case State.ReadingModeRecord: ValidateRecordType(FramingRecordType.Mode, (FramingRecordType)data[0]); currentState = State.ReadingModeValue; bytesConsumed = 1; break; case State.ReadingModeValue: mode = (FramingMode)data[0]; ValidateFramingMode(mode); currentState = State.Done; bytesConsumed = 1; break; default: throw DiagnosticUtility.ExceptionUtility.ThrowHelperError( CreateException(new InvalidDataException(SR.InvalidDecoderStateMachine))); } return(bytesConsumed); } catch (InvalidDataException e) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateException(e)); } }
public int Decode(byte[] bytes, int offset, int size) { int num2; DecoderHelper.ValidateSize(size); try { int num; switch (this.currentState) { case State.ReadingVersionRecord: base.ValidateRecordType(FramingRecordType.Version, (FramingRecordType)bytes[offset]); this.currentState = State.ReadingMajorVersion; num = 1; break; case State.ReadingMajorVersion: this.majorVersion = bytes[offset]; base.ValidateMajorVersion(this.majorVersion); this.currentState = State.ReadingMinorVersion; num = 1; break; case State.ReadingMinorVersion: this.minorVersion = bytes[offset]; this.currentState = State.ReadingModeRecord; num = 1; break; case State.ReadingModeRecord: base.ValidateRecordType(FramingRecordType.Mode, (FramingRecordType)bytes[offset]); this.currentState = State.ReadingModeValue; num = 1; break; case State.ReadingModeValue: this.mode = (FramingMode)bytes[offset]; base.ValidateFramingMode(this.mode); this.currentState = State.Done; num = 1; break; default: throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(base.CreateException(new InvalidDataException(System.ServiceModel.SR.GetString("InvalidDecoderStateMachine")))); } base.StreamPosition += num; num2 = num; } catch (InvalidDataException exception) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(base.CreateException(exception)); } return(num2); }
public int Decode(byte[] bytes, int offset, int size) { int num2; DecoderHelper.ValidateSize(size); try { int num; switch (this.currentState) { case State.ReadingVersionRecord: base.ValidateRecordType(FramingRecordType.Version, (FramingRecordType) bytes[offset]); this.currentState = State.ReadingMajorVersion; num = 1; break; case State.ReadingMajorVersion: this.majorVersion = bytes[offset]; base.ValidateMajorVersion(this.majorVersion); this.currentState = State.ReadingMinorVersion; num = 1; break; case State.ReadingMinorVersion: this.minorVersion = bytes[offset]; this.currentState = State.ReadingModeRecord; num = 1; break; case State.ReadingModeRecord: base.ValidateRecordType(FramingRecordType.Mode, (FramingRecordType) bytes[offset]); this.currentState = State.ReadingModeValue; num = 1; break; case State.ReadingModeValue: this.mode = (FramingMode) bytes[offset]; base.ValidateFramingMode(this.mode); this.currentState = State.Done; num = 1; break; default: throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(base.CreateException(new InvalidDataException(System.ServiceModel.SR.GetString("InvalidDecoderStateMachine")))); } base.StreamPosition += num; num2 = num; } catch (InvalidDataException exception) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(base.CreateException(exception)); } return num2; }
protected void ValidateFramingMode(FramingMode mode) { switch (mode) { case FramingMode.Singleton: case FramingMode.Duplex: case FramingMode.Simplex: case FramingMode.SingletonSized: return; } Exception exception = this.CreateException(new InvalidDataException(System.ServiceModel.SR.GetString("FramingModeNotSupported", new object[] { mode.ToString() })), "http://schemas.microsoft.com/ws/2006/05/framing/faults/UnsupportedMode"); throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(exception); }
protected void ValidateFramingMode(FramingMode mode) { switch (mode) { case FramingMode.Singleton: case FramingMode.Duplex: case FramingMode.Simplex: case FramingMode.SingletonSized: break; default: { Exception exception = CreateException(new InvalidDataException(string.Format( SRServiceModel.FramingModeNotSupported, mode.ToString())), FramingEncodingString.UnsupportedModeFault); throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(exception); } } }
protected void ValidateFramingMode(FramingMode mode) { switch (mode) { case FramingMode.Singleton: case FramingMode.Duplex: case FramingMode.Simplex: case FramingMode.SingletonSized: { return; } default: { string framingModeNotSupported = Resources.FramingModeNotSupported; object[] str = new object[] { mode.ToString() }; Exception exception = this.CreateException(new InvalidDataException(Microsoft.ServiceBus.SR.GetString(framingModeNotSupported, str)), "http://schemas.microsoft.com/ws/2006/05/framing/faults/UnsupportedMode"); throw Microsoft.ServiceBus.Diagnostics.DiagnosticUtility.ExceptionUtility.ThrowHelperError(exception); } } }
public int Decode(byte[] bytes, int offset, int size) { int num; int num1; DecoderHelper.ValidateSize(size); try { switch (this.currentState) { case ServerModeDecoder.State.ReadingVersionRecord: { base.ValidateRecordType(FramingRecordType.Version, (FramingRecordType)bytes[offset]); this.currentState = ServerModeDecoder.State.ReadingMajorVersion; num = 1; break; } case ServerModeDecoder.State.ReadingMajorVersion: { this.majorVersion = bytes[offset]; base.ValidateMajorVersion(this.majorVersion); this.currentState = ServerModeDecoder.State.ReadingMinorVersion; num = 1; break; } case ServerModeDecoder.State.ReadingMinorVersion: { this.minorVersion = bytes[offset]; this.currentState = ServerModeDecoder.State.ReadingModeRecord; num = 1; break; } case ServerModeDecoder.State.ReadingModeRecord: { base.ValidateRecordType(FramingRecordType.Mode, (FramingRecordType)bytes[offset]); this.currentState = ServerModeDecoder.State.ReadingModeValue; num = 1; break; } case ServerModeDecoder.State.ReadingModeValue: { this.mode = (FramingMode)bytes[offset]; base.ValidateFramingMode(this.mode); this.currentState = ServerModeDecoder.State.Done; num = 1; break; } default: { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(base.CreateException(new InvalidDataException(Microsoft.ServiceBus.SR.GetString(Resources.InvalidDecoderStateMachine, new object[0])))); } } ServerModeDecoder streamPosition = this; streamPosition.StreamPosition = streamPosition.StreamPosition + (long)num; num1 = num; } catch (InvalidDataException invalidDataException) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(base.CreateException(invalidDataException)); } return(num1); }
public int Decode(byte[] bytes, int offset, int size) { DecoderHelper.ValidateSize(size); try { int bytesConsumed; switch (currentState) { case State.ReadingVersionRecord: ValidateRecordType(FramingRecordType.Version, (FramingRecordType)bytes[offset]); currentState = State.ReadingMajorVersion; bytesConsumed = 1; break; case State.ReadingMajorVersion: majorVersion = bytes[offset]; ValidateMajorVersion(majorVersion); currentState = State.ReadingMinorVersion; bytesConsumed = 1; break; case State.ReadingMinorVersion: minorVersion = bytes[offset]; currentState = State.ReadingModeRecord; bytesConsumed = 1; break; case State.ReadingModeRecord: ValidateRecordType(FramingRecordType.Mode, (FramingRecordType)bytes[offset]); currentState = State.ReadingModeValue; bytesConsumed = 1; break; case State.ReadingModeValue: mode = (FramingMode)bytes[offset]; ValidateFramingMode(mode); currentState = State.Done; bytesConsumed = 1; break; default: throw DiagnosticUtility.ExceptionUtility.ThrowHelperError( CreateException(new InvalidDataException(SR.GetString(SR.InvalidDecoderStateMachine)))); } StreamPosition += bytesConsumed; return bytesConsumed; } catch (InvalidDataException e) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(CreateException(e)); } }
protected void ValidateFramingMode(FramingMode mode) { switch (mode) { case FramingMode.Singleton: case FramingMode.Duplex: case FramingMode.Simplex: case FramingMode.SingletonSized: break; default: { Exception exception = CreateException(new InvalidDataException(SR.GetString( SR.FramingModeNotSupported, mode.ToString())), FramingEncodingString.UnsupportedModeFault); throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(exception); } } }