private static void ParseMultipleRawHeaderValues( HeaderDescriptor descriptor, HttpHeaders.HeaderStoreItemInfo info, List <string> rawValues) { if (descriptor.Parser == null) { foreach (string rawValue in rawValues) { if (!HttpHeaders.ContainsInvalidNewLine(rawValue, descriptor.Name)) { HttpHeaders.AddValue(info, (object)rawValue, HttpHeaders.StoreLocation.Parsed); } } } else { foreach (string rawValue in rawValues) { if (!HttpHeaders.TryParseAndAddRawHeaderValue(descriptor, info, rawValue, true) && NetEventSource.IsEnabled) { NetEventSource.Log.HeadersInvalidValue(descriptor.Name, rawValue); } } } }
internal bool TryParseAndAddValue(HeaderDescriptor descriptor, string value) { HttpHeaders.HeaderStoreItemInfo info; bool addToStore; this.PrepareHeaderInfoForAdd(descriptor, out info, out addToStore); bool addRawHeaderValue = HttpHeaders.TryParseAndAddRawHeaderValue(descriptor, info, value, false); if (addRawHeaderValue & addToStore && info.ParsedValue != null) { this.AddHeaderToStore(descriptor, info); } return(addRawHeaderValue); }
private static void ParseSingleRawHeaderValue( HeaderDescriptor descriptor, HttpHeaders.HeaderStoreItemInfo info) { string rawValue = info.RawValue as string; if (descriptor.Parser == null) { if (HttpHeaders.ContainsInvalidNewLine(rawValue, descriptor.Name)) { return; } HttpHeaders.AddValue(info, (object)rawValue, HttpHeaders.StoreLocation.Parsed); } else { if (HttpHeaders.TryParseAndAddRawHeaderValue(descriptor, info, rawValue, true) || !NetEventSource.IsEnabled) { return; } NetEventSource.Log.HeadersInvalidValue(descriptor.Name, rawValue); } }