private bool BufferEnd() { if (this.maxOffset != 0) { return(false); } if (this.readState != MimeHeaderReader.ReadState.ReadWS && this.readState != MimeHeaderReader.ReadState.ReadValue) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new FormatException(SR.GetString("MimeReaderMalformedHeader", new object[0]))); } this.readState = MimeHeaderReader.ReadState.EOF; return(true); }
public void Reset(Stream inputStream) { if (inputStream == null) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperArgumentNull("inputStream"); } if (this.readState != MimeHeaderReader.ReadState.EOF) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new InvalidOperationException(SR.GetString("MimeReaderResetCalledBeforeEOF", new object[0]))); } this.stream = inputStream; this.readState = MimeHeaderReader.ReadState.ReadName; this.maxOffset = 0; this.offset = 0; }
private bool ProcessBuffer(int maxBuffer, ref int remaining) { int num = this.offset; int num2 = this.maxOffset; int i = num; switch (this.readState) { case MimeHeaderReader.ReadState.ReadName: while (i < num2) { byte b = this.buffer[i]; if (b == 58) { this.AppendName(Encoding.UTF8.GetString(this.buffer, num, i - num), maxBuffer, ref remaining); i++; goto IL_177; } if (b >= 65 && b <= 90) { b += 32; this.buffer[i] = b; } else if (b < 33 || b > 126) { if (this.name != null || b != 13) { string arg_118_0 = "MimeHeaderInvalidCharacter"; object[] array = new object[2]; array[0] = this.buffer[i]; object[] arg_115_0 = array; int arg_115_1 = 1; int num3 = (int)this.buffer[i]; arg_115_0[arg_115_1] = num3.ToString("X", CultureInfo.InvariantCulture); throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new FormatException(SR.GetString(arg_118_0, array))); } i++; if (i >= num2 || this.buffer[i] != 10) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new FormatException(SR.GetString("MimeReaderMalformedHeader", new object[0]))); } goto IL_283; } i++; } this.AppendName(Encoding.UTF8.GetString(this.buffer, num, i - num), maxBuffer, ref remaining); this.readState = MimeHeaderReader.ReadState.ReadName; goto IL_293; case MimeHeaderReader.ReadState.SkipWS: break; case MimeHeaderReader.ReadState.ReadValue: goto IL_187; case MimeHeaderReader.ReadState.ReadLF: goto IL_20E; case MimeHeaderReader.ReadState.ReadWS: goto IL_248; case MimeHeaderReader.ReadState.EOF: goto IL_283; default: goto IL_293; } IL_177: while (i < num2) { if (this.buffer[i] != 9 && this.buffer[i] != 32) { goto IL_187; } i++; } this.readState = MimeHeaderReader.ReadState.SkipWS; goto IL_293; IL_187: num = i; while (i < num2) { byte b2 = this.buffer[i]; if (b2 == 13) { this.AppendValue(Encoding.UTF8.GetString(this.buffer, num, i - num), maxBuffer, ref remaining); i++; goto IL_20E; } if (b2 == 10) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new FormatException(SR.GetString("MimeReaderMalformedHeader", new object[0]))); } i++; } this.AppendValue(Encoding.UTF8.GetString(this.buffer, num, i - num), maxBuffer, ref remaining); this.readState = MimeHeaderReader.ReadState.ReadValue; goto IL_293; IL_20E: if (i >= num2) { this.readState = MimeHeaderReader.ReadState.ReadLF; goto IL_293; } if (this.buffer[i] != 10) { throw DiagnosticUtility.ExceptionUtility.ThrowHelperError(new FormatException(SR.GetString("MimeReaderMalformedHeader", new object[0]))); } i++; IL_248: if (i >= num2) { this.readState = MimeHeaderReader.ReadState.ReadWS; goto IL_293; } if (this.buffer[i] != 32 && this.buffer[i] != 9) { this.readState = MimeHeaderReader.ReadState.ReadName; this.offset = i; return(true); } goto IL_187; IL_283: this.readState = MimeHeaderReader.ReadState.EOF; this.offset = i; return(true); IL_293: this.offset = i; return(false); }
public void Close() { this.stream.Dispose();// Close(); this.readState = MimeHeaderReader.ReadState.EOF; }