Index: sdk/lib/io/http_headers.dart |
diff --git a/sdk/lib/io/http_headers.dart b/sdk/lib/io/http_headers.dart |
index b272e88cb6b3aeffaac793975144a012333bab80..8e30c37c709d881114a196abdc78ecdecbb5c5e7 100644 |
--- a/sdk/lib/io/http_headers.dart |
+++ b/sdk/lib/io/http_headers.dart |
@@ -8,7 +8,7 @@ class _HttpHeaders implements HttpHeaders { |
final Map<String, List<String>> _headers; |
final String protocolVersion; |
- bool _mutable = true; // Are the headers currently mutable? |
+ bool _mutable = true; // Are the headers currently mutable? |
List<String> _noFoldingHeaders; |
int _contentLength = -1; |
@@ -20,8 +20,8 @@ class _HttpHeaders implements HttpHeaders { |
final int _defaultPortForScheme; |
_HttpHeaders(this.protocolVersion, |
- {int defaultPortForScheme: HttpClient.DEFAULT_HTTP_PORT, |
- _HttpHeaders initialHeaders}) |
+ {int defaultPortForScheme: HttpClient.DEFAULT_HTTP_PORT, |
+ _HttpHeaders initialHeaders}) |
: _headers = new HashMap<String, List<String>>(), |
_defaultPortForScheme = defaultPortForScheme { |
if (initialHeaders != null) { |
@@ -38,7 +38,7 @@ class _HttpHeaders implements HttpHeaders { |
} |
} |
- List<String> operator[](String name) => _headers[name.toLowerCase()]; |
+ List<String> operator [](String name) => _headers[name.toLowerCase()]; |
String value(String name) { |
name = name.toLowerCase(); |
@@ -454,8 +454,7 @@ class _HttpHeaders implements HttpHeaders { |
_foldHeader(String name) { |
if (name == HttpHeaders.SET_COOKIE || |
- (_noFoldingHeaders != null && |
- _noFoldingHeaders.indexOf(name) != -1)) { |
+ (_noFoldingHeaders != null && _noFoldingHeaders.indexOf(name) != -1)) { |
return false; |
} |
return true; |
@@ -523,8 +522,8 @@ class _HttpHeaders implements HttpHeaders { |
void skipWS() { |
while (!done()) { |
- if (s[index] != " " && s[index] != "\t") return; |
- index++; |
+ if (s[index] != " " && s[index] != "\t") return; |
+ index++; |
} |
} |
@@ -577,6 +576,7 @@ class _HttpHeaders implements HttpHeaders { |
} |
} |
} |
+ |
List<String> values = _headers[HttpHeaders.COOKIE]; |
if (values != null) { |
values.forEach((headerValue) => parseCookieString(headerValue)); |
@@ -606,7 +606,6 @@ class _HttpHeaders implements HttpHeaders { |
} |
} |
- |
class _HeaderValue implements HeaderValue { |
String _value; |
Map<String, String> _parameters; |
@@ -619,9 +618,9 @@ class _HeaderValue implements HeaderValue { |
} |
static _HeaderValue parse(String value, |
- {parameterSeparator: ";", |
- valueSeparator: null, |
- preserveBackslash: false}) { |
+ {parameterSeparator: ";", |
+ valueSeparator: null, |
+ preserveBackslash: false}) { |
// Parse the string. |
var result = new _HeaderValue(); |
result._parse(value, parameterSeparator, valueSeparator, preserveBackslash); |
@@ -655,10 +654,8 @@ class _HeaderValue implements HeaderValue { |
return sb.toString(); |
} |
- void _parse(String s, |
- String parameterSeparator, |
- String valueSeparator, |
- bool preserveBackslash) { |
+ void _parse(String s, String parameterSeparator, String valueSeparator, |
+ bool preserveBackslash) { |
int index = 0; |
bool done() => index == s.length; |
@@ -763,7 +760,7 @@ class _HeaderValue implements HeaderValue { |
skipWS(); |
if (done()) return; |
// TODO: Implement support for multi-valued parameters. |
- if(s[index] == valueSeparator) return; |
+ if (s[index] == valueSeparator) return; |
expect(parameterSeparator); |
} |
} |
@@ -777,16 +774,15 @@ class _HeaderValue implements HeaderValue { |
} |
} |
- |
class _ContentType extends _HeaderValue implements ContentType { |
String _primaryType = ""; |
String _subType = ""; |
- _ContentType(String primaryType, |
- String subType, |
- String charset, |
- Map<String, String> parameters) |
- : _primaryType = primaryType, _subType = subType, super("") { |
+ _ContentType(String primaryType, String subType, String charset, |
+ Map<String, String> parameters) |
+ : _primaryType = primaryType, |
+ _subType = subType, |
+ super("") { |
if (_primaryType == null) _primaryType = ""; |
if (_subType == null) _subType = ""; |
_value = "$_primaryType/$_subType"; |
@@ -832,7 +828,6 @@ class _ContentType extends _HeaderValue implements ContentType { |
String get charset => parameters["charset"]; |
} |
- |
class _Cookie implements Cookie { |
String name; |
String value; |
@@ -909,7 +904,7 @@ class _Cookie implements Cookie { |
String name = parseAttributeName(); |
String value = ""; |
if (!done() && s[index] == "=") { |
- index++; // Skip the = character. |
+ index++; // Skip the = character. |
value = parseAttributeValue(); |
} |
if (name == "expires") { |
@@ -925,7 +920,7 @@ class _Cookie implements Cookie { |
} else if (name == "secure") { |
secure = true; |
} |
- if (!done()) index++; // Skip the ; character |
+ if (!done()) index++; // Skip the ; character |
} |
} |
@@ -933,11 +928,11 @@ class _Cookie implements Cookie { |
if (done() || name.length == 0) { |
throw new HttpException("Failed to parse header value [$s]"); |
} |
- index++; // Skip the = character. |
+ index++; // Skip the = character. |
value = parseValue(); |
_validate(); |
if (done()) return; |
- index++; // Skip the ; character. |
+ index++; // Skip the ; character. |
parseAttributes(); |
} |
@@ -963,8 +958,24 @@ class _Cookie implements Cookie { |
void _validate() { |
const SEPERATORS = const [ |
- "(", ")", "<", ">", "@", ",", ";", ":", "\\", |
- '"', "/", "[", "]", "?", "=", "{", "}"]; |
+ "(", |
+ ")", |
+ "<", |
+ ">", |
+ "@", |
+ ",", |
+ ";", |
+ ":", |
+ "\\", |
+ '"', |
+ "/", |
+ "[", |
+ "]", |
+ "?", |
+ "=", |
+ "{", |
+ "}" |
+ ]; |
for (int i = 0; i < name.length; i++) { |
int codeUnit = name.codeUnits[i]; |
if (codeUnit <= 32 || |
@@ -977,10 +988,10 @@ class _Cookie implements Cookie { |
for (int i = 0; i < value.length; i++) { |
int codeUnit = value.codeUnits[i]; |
if (!(codeUnit == 0x21 || |
- (codeUnit >= 0x23 && codeUnit <= 0x2B) || |
- (codeUnit >= 0x2D && codeUnit <= 0x3A) || |
- (codeUnit >= 0x3C && codeUnit <= 0x5B) || |
- (codeUnit >= 0x5D && codeUnit <= 0x7E))) { |
+ (codeUnit >= 0x23 && codeUnit <= 0x2B) || |
+ (codeUnit >= 0x2D && codeUnit <= 0x3A) || |
+ (codeUnit >= 0x3C && codeUnit <= 0x5B) || |
+ (codeUnit >= 0x5D && codeUnit <= 0x7E))) { |
throw new FormatException( |
"Invalid character in cookie value, code unit: '$codeUnit'"); |
} |