private static int GetDispositionTypeExpressionLength(string input, int startIndex, out string dispositionType) { Contract.Requires((input != null) && (input.Length > 0) && (startIndex < input.Length)); // This method just parses the disposition type string, it does not parse parameters. dispositionType = null; // Parse the disposition type, i.e. <dispositiontype> in content-disposition string // "<dispositiontype>; param1=value1; param2=value2" var typeLength = HttpRuleParser.GetTokenLength(input, startIndex); if (typeLength == 0) { return(0); } dispositionType = input.Substring(startIndex, typeLength); return(typeLength); }
internal static int GetValueLength(string input, int startIndex) { Contract.Requires(input != null); if (startIndex >= input.Length) { return(0); } var valueLength = HttpRuleParser.GetTokenLength(input, startIndex); if (valueLength == 0) { // A value can either be a token or a quoted string. Check if it is a quoted string. if (HttpRuleParser.GetQuotedStringLength(input, startIndex, out valueLength) != HttpParseResult.Parsed) { // We have an invalid value. Reset the name and return. return(0); } } return(valueLength); }