You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
104 lines
3.9 KiB
104 lines
3.9 KiB
|
|
using System;
|
|
using System.IO;
|
|
|
|
namespace ProtoCSStruct
|
|
{
|
|
/// <summary>
|
|
/// Thrown when a protocol message being parsed is invalid in some way,
|
|
/// e.g. it contains a malformed varint or a negative byte length.
|
|
/// </summary>
|
|
public sealed class InvalidProtocolBufferException : IOException
|
|
{
|
|
public InvalidProtocolBufferException(string message)
|
|
: base(message)
|
|
{
|
|
}
|
|
|
|
public InvalidProtocolBufferException(string message, Exception innerException)
|
|
: base(message, innerException)
|
|
{
|
|
}
|
|
|
|
public static InvalidProtocolBufferException MoreDataAvailable()
|
|
{
|
|
return new InvalidProtocolBufferException(
|
|
"Completed reading a message while more data was available in the stream.");
|
|
}
|
|
|
|
public static InvalidProtocolBufferException TruncatedMessage()
|
|
{
|
|
return new InvalidProtocolBufferException(
|
|
"While parsing a protocol message, the input ended unexpectedly " +
|
|
"in the middle of a field. This could mean either than the " +
|
|
"input has been truncated or that an embedded message " +
|
|
"misreported its own length.");
|
|
}
|
|
|
|
public static InvalidProtocolBufferException NegativeSize()
|
|
{
|
|
return new InvalidProtocolBufferException(
|
|
"CodedInputStream encountered an embedded string or message " +
|
|
"which claimed to have negative size.");
|
|
}
|
|
|
|
public static InvalidProtocolBufferException MalformedVarint()
|
|
{
|
|
return new InvalidProtocolBufferException(
|
|
"CodedInputStream encountered a malformed varint.");
|
|
}
|
|
|
|
/// <summary>
|
|
/// Creates an exception for an error condition of an invalid tag being encountered.
|
|
/// </summary>
|
|
public static InvalidProtocolBufferException InvalidTag()
|
|
{
|
|
return new InvalidProtocolBufferException(
|
|
"Protocol message contained an invalid tag (zero).");
|
|
}
|
|
|
|
public static InvalidProtocolBufferException InvalidBase64(Exception innerException)
|
|
{
|
|
return new InvalidProtocolBufferException("Invalid base64 data", innerException);
|
|
}
|
|
|
|
public static InvalidProtocolBufferException InvalidEndTag()
|
|
{
|
|
return new InvalidProtocolBufferException(
|
|
"Protocol message end-group tag did not match expected tag.");
|
|
}
|
|
|
|
public static InvalidProtocolBufferException RecursionLimitExceeded()
|
|
{
|
|
return new InvalidProtocolBufferException(
|
|
"Protocol message had too many levels of nesting. May be malicious. " +
|
|
"Use CodedInputStream.SetRecursionLimit() to increase the depth limit.");
|
|
}
|
|
|
|
public static InvalidProtocolBufferException JsonRecursionLimitExceeded()
|
|
{
|
|
return new InvalidProtocolBufferException(
|
|
"Protocol message had too many levels of nesting. May be malicious. " +
|
|
"Use JsonParser.Settings to increase the depth limit.");
|
|
}
|
|
|
|
public static InvalidProtocolBufferException SizeLimitExceeded()
|
|
{
|
|
return new InvalidProtocolBufferException(
|
|
"Protocol message was too large. May be malicious. " +
|
|
"Use CodedInputStream.SetSizeLimit() to increase the size limit.");
|
|
}
|
|
|
|
public static InvalidProtocolBufferException InvalidMessageStreamTag()
|
|
{
|
|
return new InvalidProtocolBufferException(
|
|
"Stream of protocol messages had invalid tag. Expected tag is length-delimited field 1.");
|
|
}
|
|
|
|
public static InvalidProtocolBufferException StringLengthToLong()
|
|
{
|
|
return new InvalidProtocolBufferException(
|
|
"protocol messages StringLengthToLong.");
|
|
}
|
|
}
|
|
}
|