Reacting to FileSystem changes
This commit is contained in:
parent
46e60b1276
commit
35ec5be17f
|
|
@ -46,9 +46,9 @@ namespace Microsoft.AspNet.StaticFiles
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static bool TryParseHttpDate(string dateString, out DateTime parsedDate)
|
internal static bool TryParseHttpDate(string dateString, out DateTimeOffset parsedDate)
|
||||||
{
|
{
|
||||||
return DateTime.TryParseExact(dateString, Constants.HttpDateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsedDate);
|
return DateTimeOffset.TryParseExact(dateString, Constants.HttpDateFormat, CultureInfo.InvariantCulture, DateTimeStyles.None, out parsedDate);
|
||||||
}
|
}
|
||||||
|
|
||||||
internal static string ResolveRootPath(string webRoot, PathString path)
|
internal static string ResolveRootPath(string webRoot, PathString path)
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ namespace Microsoft.AspNet.StaticFiles
|
||||||
private string _contentType;
|
private string _contentType;
|
||||||
private IFileInfo _fileInfo;
|
private IFileInfo _fileInfo;
|
||||||
private long _length;
|
private long _length;
|
||||||
private DateTime _lastModified;
|
private DateTimeOffset _lastModified;
|
||||||
private string _lastModifiedString;
|
private string _lastModifiedString;
|
||||||
private string _etag;
|
private string _etag;
|
||||||
private string _etagQuoted;
|
private string _etagQuoted;
|
||||||
|
|
@ -134,7 +134,7 @@ namespace Microsoft.AspNet.StaticFiles
|
||||||
_lastModified = new DateTime(last.Year, last.Month, last.Day, last.Hour, last.Minute, last.Second, last.Kind);
|
_lastModified = new DateTime(last.Year, last.Month, last.Day, last.Hour, last.Minute, last.Second, last.Kind);
|
||||||
_lastModifiedString = _lastModified.ToString(Constants.HttpDateFormat, CultureInfo.InvariantCulture);
|
_lastModifiedString = _lastModified.ToString(Constants.HttpDateFormat, CultureInfo.InvariantCulture);
|
||||||
|
|
||||||
long etagHash = _lastModified.ToFileTimeUtc() ^ _length;
|
long etagHash = _lastModified.ToFileTime() ^ _length;
|
||||||
_etag = Convert.ToString(etagHash, 16);
|
_etag = Convert.ToString(etagHash, 16);
|
||||||
_etagQuoted = '\"' + _etag + '\"';
|
_etagQuoted = '\"' + _etag + '\"';
|
||||||
}
|
}
|
||||||
|
|
@ -189,7 +189,7 @@ namespace Microsoft.AspNet.StaticFiles
|
||||||
{
|
{
|
||||||
// 14.25 If-Modified-Since
|
// 14.25 If-Modified-Since
|
||||||
string ifModifiedSinceString = _request.Headers.Get(Constants.IfModifiedSince);
|
string ifModifiedSinceString = _request.Headers.Get(Constants.IfModifiedSince);
|
||||||
DateTime ifModifiedSince;
|
DateTimeOffset ifModifiedSince;
|
||||||
if (Helpers.TryParseHttpDate(ifModifiedSinceString, out ifModifiedSince))
|
if (Helpers.TryParseHttpDate(ifModifiedSinceString, out ifModifiedSince))
|
||||||
{
|
{
|
||||||
bool modified = ifModifiedSince < _lastModified;
|
bool modified = ifModifiedSince < _lastModified;
|
||||||
|
|
@ -198,7 +198,7 @@ namespace Microsoft.AspNet.StaticFiles
|
||||||
|
|
||||||
// 14.28 If-Unmodified-Since
|
// 14.28 If-Unmodified-Since
|
||||||
string ifUnmodifiedSinceString = _request.Headers.Get(Constants.IfUnmodifiedSince);
|
string ifUnmodifiedSinceString = _request.Headers.Get(Constants.IfUnmodifiedSince);
|
||||||
DateTime ifUnmodifiedSince;
|
DateTimeOffset ifUnmodifiedSince;
|
||||||
if (Helpers.TryParseHttpDate(ifUnmodifiedSinceString, out ifUnmodifiedSince))
|
if (Helpers.TryParseHttpDate(ifUnmodifiedSinceString, out ifUnmodifiedSince))
|
||||||
{
|
{
|
||||||
bool unmodified = ifUnmodifiedSince >= _lastModified;
|
bool unmodified = ifUnmodifiedSince >= _lastModified;
|
||||||
|
|
@ -241,7 +241,7 @@ namespace Microsoft.AspNet.StaticFiles
|
||||||
// resource, then the server SHOULD process the Range header field as
|
// resource, then the server SHOULD process the Range header field as
|
||||||
// requested. If the validator does not match, the server MUST ignore
|
// requested. If the validator does not match, the server MUST ignore
|
||||||
// the Range header field.
|
// the Range header field.
|
||||||
DateTime ifRangeLastModified;
|
DateTimeOffset ifRangeLastModified;
|
||||||
bool ignoreRangeHeader = false;
|
bool ignoreRangeHeader = false;
|
||||||
if (Helpers.TryParseHttpDate(ifRangeHeader, out ifRangeLastModified))
|
if (Helpers.TryParseHttpDate(ifRangeHeader, out ifRangeLastModified))
|
||||||
{
|
{
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue