|
2 | 2 | using System;
|
3 | 3 | using System.Collections.Generic;
|
4 | 4 | using System.Text;
|
| 5 | +using Microsoft.AspNet.Server.Kestrel.Infrastructure; |
5 | 6 | using Microsoft.Extensions.Primitives;
|
6 | 7 |
|
7 | 8 | namespace Microsoft.AspNet.Server.Kestrel.Http
|
@@ -592,7 +593,8 @@ public StringValues HeaderUserAgent
|
592 | 593 |
|
593 | 594 | protected override int GetCountFast()
|
594 | 595 | {
|
595 |
| - return BitCount(_bits) + (MaybeUnknown?.Count ?? 0); |
| 596 | + return BitCount(_bits) |
| 597 | + + (MaybeUnknown?.Count ?? 0); |
596 | 598 | }
|
597 | 599 |
|
598 | 600 | protected override StringValues GetValueFast(string key)
|
@@ -5071,6 +5073,26 @@ public partial class FrameResponseHeaders
|
5071 | 5073 | private StringValues _SetCookie;
|
5072 | 5074 | private StringValues _Vary;
|
5073 | 5075 | private StringValues _WWWAuthenticate;
|
| 5076 | + private bool _hasDefaultServer; |
| 5077 | + private bool _hasDefaultDate; |
| 5078 | + |
| 5079 | + public bool HasDefaultServer { |
| 5080 | + get { return _hasDefaultServer; } |
| 5081 | + set |
| 5082 | + { |
| 5083 | + _hasDefaultServer = value; |
| 5084 | + _bits &= ~67108864L; |
| 5085 | + } |
| 5086 | + } |
| 5087 | + |
| 5088 | + public bool HasDefaultDate { |
| 5089 | + get { return _hasDefaultDate; } |
| 5090 | + set |
| 5091 | + { |
| 5092 | + _hasDefaultDate = value; |
| 5093 | + _bits &= ~4L; |
| 5094 | + } |
| 5095 | + } |
5074 | 5096 |
|
5075 | 5097 | public StringValues HeaderCacheControl
|
5076 | 5098 | {
|
@@ -5108,6 +5130,7 @@ public StringValues HeaderDate
|
5108 | 5130 | set
|
5109 | 5131 | {
|
5110 | 5132 | _bits |= 4L;
|
| 5133 | + HasDefaultDate = false; |
5111 | 5134 | _Date = value;
|
5112 | 5135 | }
|
5113 | 5136 | }
|
@@ -5422,6 +5445,7 @@ public StringValues HeaderServer
|
5422 | 5445 | set
|
5423 | 5446 | {
|
5424 | 5447 | _bits |= 67108864L;
|
| 5448 | + HasDefaultServer = false; |
5425 | 5449 | _Server = value;
|
5426 | 5450 | }
|
5427 | 5451 | }
|
@@ -5467,7 +5491,9 @@ public StringValues HeaderWWWAuthenticate
|
5467 | 5491 |
|
5468 | 5492 | protected override int GetCountFast()
|
5469 | 5493 | {
|
5470 |
| - return BitCount(_bits) + (MaybeUnknown?.Count ?? 0); |
| 5494 | + return BitCount(_bits) + (HasDefaultDate ? 1 : 0) |
| 5495 | + + (HasDefaultServer ? 1 : 0) |
| 5496 | + + (MaybeUnknown?.Count ?? 0); |
5471 | 5497 | }
|
5472 | 5498 |
|
5473 | 5499 | protected override StringValues GetValueFast(string key)
|
@@ -6007,6 +6033,11 @@ protected override bool TryGetValueFast(string key, out StringValues value)
|
6007 | 6033 | {
|
6008 | 6034 | if ("Date".Equals(key, StringComparison.OrdinalIgnoreCase))
|
6009 | 6035 | {
|
| 6036 | + if (HasDefaultDate) |
| 6037 | + { |
| 6038 | + value = DateTime.UtcNow.ToString(Constants.RFC1123DateFormat); |
| 6039 | + return true; |
| 6040 | + } |
6010 | 6041 | if (((_bits & 4L) != 0))
|
6011 | 6042 | {
|
6012 | 6043 | value = _Date;
|
@@ -6067,6 +6098,11 @@ protected override bool TryGetValueFast(string key, out StringValues value)
|
6067 | 6098 |
|
6068 | 6099 | if ("Server".Equals(key, StringComparison.OrdinalIgnoreCase))
|
6069 | 6100 | {
|
| 6101 | + if (HasDefaultServer) |
| 6102 | + { |
| 6103 | + value = "Kestrel"; |
| 6104 | + return true; |
| 6105 | + } |
6070 | 6106 | if (((_bits & 67108864L) != 0))
|
6071 | 6107 | {
|
6072 | 6108 | value = _Server;
|
@@ -6441,6 +6477,7 @@ protected override void SetValueFast(string key, StringValues value)
|
6441 | 6477 | {
|
6442 | 6478 | _bits |= 4L;
|
6443 | 6479 | _Date = value;
|
| 6480 | + HasDefaultDate = false; |
6444 | 6481 | return;
|
6445 | 6482 | }
|
6446 | 6483 |
|
@@ -6473,6 +6510,7 @@ protected override void SetValueFast(string key, StringValues value)
|
6473 | 6510 | {
|
6474 | 6511 | _bits |= 67108864L;
|
6475 | 6512 | _Server = value;
|
| 6513 | + HasDefaultServer = false; |
6476 | 6514 | return;
|
6477 | 6515 | }
|
6478 | 6516 | }
|
@@ -6745,6 +6783,7 @@ protected override void AddValueFast(string key, StringValues value)
|
6745 | 6783 | }
|
6746 | 6784 | _bits |= 4L;
|
6747 | 6785 | _Date = value;
|
| 6786 | + HasDefaultDate = false; |
6748 | 6787 | return;
|
6749 | 6788 | }
|
6750 | 6789 |
|
@@ -6793,6 +6832,7 @@ protected override void AddValueFast(string key, StringValues value)
|
6793 | 6832 | }
|
6794 | 6833 | _bits |= 67108864L;
|
6795 | 6834 | _Server = value;
|
| 6835 | + HasDefaultServer = false; |
6796 | 6836 | return;
|
6797 | 6837 | }
|
6798 | 6838 | }
|
@@ -7156,6 +7196,7 @@ protected override bool RemoveFast(string key)
|
7156 | 7196 | {
|
7157 | 7197 | _bits &= ~4L;
|
7158 | 7198 | _Date = StringValues.Empty;
|
| 7199 | + HasDefaultDate = false; |
7159 | 7200 | return true;
|
7160 | 7201 | }
|
7161 | 7202 | else
|
@@ -7216,6 +7257,7 @@ protected override bool RemoveFast(string key)
|
7216 | 7257 | {
|
7217 | 7258 | _bits &= ~67108864L;
|
7218 | 7259 | _Server = StringValues.Empty;
|
| 7260 | + HasDefaultServer = false; |
7219 | 7261 | return true;
|
7220 | 7262 | }
|
7221 | 7263 | else
|
@@ -7557,6 +7599,8 @@ protected override void ClearFast()
|
7557 | 7599 | HasConnection = false;
|
7558 | 7600 | HasTransferEncoding = false;
|
7559 | 7601 | HasContentLength = false;
|
| 7602 | + HasDefaultServer = false; |
| 7603 | + HasDefaultDate = false; |
7560 | 7604 | }
|
7561 | 7605 |
|
7562 | 7606 | protected override void CopyToFast(KeyValuePair<string, StringValues>[] array, int arrayIndex)
|
@@ -8023,6 +8067,7 @@ public unsafe void Append(byte[] keyBytes, int keyOffset, int keyLength, string
|
8023 | 8067 | else
|
8024 | 8068 | {
|
8025 | 8069 | _bits |= 4L;
|
| 8070 | + HasDefaultDate = false; |
8026 | 8071 | _Date = new StringValues(value);
|
8027 | 8072 | }
|
8028 | 8073 | return;
|
@@ -8083,6 +8128,7 @@ public unsafe void Append(byte[] keyBytes, int keyOffset, int keyLength, string
|
8083 | 8128 | else
|
8084 | 8129 | {
|
8085 | 8130 | _bits |= 67108864L;
|
| 8131 | + HasDefaultServer = false; |
8086 | 8132 | _Server = new StringValues(value);
|
8087 | 8133 | }
|
8088 | 8134 | return;
|
@@ -8504,6 +8550,12 @@ public bool MoveNext()
|
8504 | 8550 | }
|
8505 | 8551 |
|
8506 | 8552 | state2:
|
| 8553 | + if (_collection.HasDefaultDate) |
| 8554 | + { |
| 8555 | + _current = new KeyValuePair<string, StringValues>("Date", DateTime.UtcNow.ToString(Constants.RFC1123DateFormat)); |
| 8556 | + _state = 3; |
| 8557 | + return true; |
| 8558 | + } |
8507 | 8559 | if (((_bits & 4L) != 0))
|
8508 | 8560 | {
|
8509 | 8561 | _current = new KeyValuePair<string, StringValues>("Date", _collection._Date);
|
@@ -8696,6 +8748,12 @@ public bool MoveNext()
|
8696 | 8748 | }
|
8697 | 8749 |
|
8698 | 8750 | state26:
|
| 8751 | + if (_collection.HasDefaultServer) |
| 8752 | + { |
| 8753 | + _current = new KeyValuePair<string, StringValues>("Server", "Kestrel"); |
| 8754 | + _state = 27; |
| 8755 | + return true; |
| 8756 | + } |
8699 | 8757 | if (((_bits & 67108864L) != 0))
|
8700 | 8758 | {
|
8701 | 8759 | _current = new KeyValuePair<string, StringValues>("Server", _collection._Server);
|
|
0 commit comments