You've already forked linux-packaging-mono
Imported Upstream version 3.12.0
Former-commit-id: cf92446697332992ec36726e78eb8703e1f259d7
This commit is contained in:
@ -120,9 +120,17 @@ namespace System.Net.Http.Headers
|
||||
|
||||
public string Name {
|
||||
get {
|
||||
return FindParameter ("name");
|
||||
var value = FindParameter ("name");
|
||||
|
||||
if (value == null)
|
||||
return null;
|
||||
|
||||
return DecodeValue (value, false);
|
||||
}
|
||||
set {
|
||||
if (value != null)
|
||||
value = EncodeBase64Value (value);
|
||||
|
||||
SetValue ("name", value);
|
||||
}
|
||||
}
|
||||
@ -249,6 +257,11 @@ namespace System.Net.Http.Headers
|
||||
continue;
|
||||
}
|
||||
|
||||
if (!Lexer.IsValidCharacter (ch) || ch == '*' || ch == '?' || ch == '%') {
|
||||
sb.Append (Uri.HexEscape (ch));
|
||||
continue;
|
||||
}
|
||||
|
||||
sb.Append (ch);
|
||||
}
|
||||
|
||||
|
@ -170,7 +170,7 @@ namespace System.Net.Http.Headers
|
||||
} else {
|
||||
value.From = nvalue;
|
||||
|
||||
t = lexer.Scan ();
|
||||
t = lexer.Scan (recognizeDash: true);
|
||||
if (t != Token.Type.SeparatorDash)
|
||||
return false;
|
||||
|
||||
|
@ -96,6 +96,7 @@ namespace System.Net.Http.Headers
|
||||
HeaderInfo.CreateSingle<AuthenticationHeaderValue> ("Authorization", AuthenticationHeaderValue.TryParse, HttpHeaderKind.Request),
|
||||
HeaderInfo.CreateSingle<CacheControlHeaderValue> ("Cache-Control", CacheControlHeaderValue.TryParse, HttpHeaderKind.Request | HttpHeaderKind.Response),
|
||||
HeaderInfo.CreateMulti<string> ("Connection", CollectionParser.TryParse, HttpHeaderKind.Request | HttpHeaderKind.Response),
|
||||
HeaderInfo.CreateSingle<ContentDispositionHeaderValue> ("Content-Disposition", ContentDispositionHeaderValue.TryParse, HttpHeaderKind.Content),
|
||||
HeaderInfo.CreateMulti<string> ("Content-Encoding", CollectionParser.TryParse, HttpHeaderKind.Content),
|
||||
HeaderInfo.CreateMulti<string> ("Content-Language", CollectionParser.TryParse, HttpHeaderKind.Content),
|
||||
HeaderInfo.CreateSingle<long> ("Content-Length", Parser.Long.TryParse, HttpHeaderKind.Content),
|
||||
|
@ -193,13 +193,18 @@ namespace System.Net.Http.Headers
|
||||
//
|
||||
for (; i < input.Length; ++i) {
|
||||
char s = input[i];
|
||||
if (s > last_token_char || !token_chars[s])
|
||||
if (!IsValidCharacter (s))
|
||||
return false;
|
||||
}
|
||||
|
||||
return i > 0;
|
||||
}
|
||||
|
||||
public static bool IsValidCharacter (char input)
|
||||
{
|
||||
return input <= last_token_char && token_chars[input];
|
||||
}
|
||||
|
||||
public void EatChar ()
|
||||
{
|
||||
++pos;
|
||||
@ -247,7 +252,7 @@ namespace System.Net.Http.Headers
|
||||
return false;
|
||||
}
|
||||
|
||||
public Token Scan ()
|
||||
public Token Scan (bool recognizeDash = false)
|
||||
{
|
||||
int start = pos;
|
||||
if (s == null)
|
||||
@ -279,8 +284,12 @@ namespace System.Net.Http.Headers
|
||||
ttype = Token.Type.SeparatorSlash;
|
||||
break;
|
||||
case '-':
|
||||
ttype = Token.Type.SeparatorDash;
|
||||
break;
|
||||
if (recognizeDash) {
|
||||
ttype = Token.Type.SeparatorDash;
|
||||
break;
|
||||
}
|
||||
|
||||
goto default;
|
||||
case ',':
|
||||
ttype = Token.Type.SeparatorComma;
|
||||
break;
|
||||
|
@ -127,7 +127,7 @@ namespace System.Net.Http.Headers
|
||||
int number;
|
||||
token_read = false;
|
||||
|
||||
t = lexer.Scan ();
|
||||
t = lexer.Scan (recognizeDash: true);
|
||||
switch (t.Kind) {
|
||||
case Token.Type.SeparatorDash:
|
||||
t = lexer.Scan ();
|
||||
@ -144,7 +144,7 @@ namespace System.Net.Http.Headers
|
||||
|
||||
switch (values.Length) {
|
||||
case 1:
|
||||
t = lexer.Scan ();
|
||||
t = lexer.Scan (recognizeDash: true);
|
||||
from = number;
|
||||
switch (t.Kind) {
|
||||
case Token.Type.SeparatorDash:
|
||||
|
Reference in New Issue
Block a user