System.Net.Cache.Rfc2616.Common.CheckForRangeRequest C# (CSharp) Method

CheckForRangeRequest() private static method

private static CheckForRangeRequest ( HttpRequestCacheValidator ctx, string &ranges ) : TriState
ctx HttpRequestCacheValidator
ranges string
return TriState
            private static TriState CheckForRangeRequest(HttpRequestCacheValidator ctx, out string ranges) {

                if ((ranges = ctx.Request.Headers[HttpKnownHeaderNames.Range]) != null) {
                    // A request already contains range.
                    // The caller will either return it from cache or pass as is to the server
                    ctx.RequestRangeUser = true;
                    if(Logging.On)Logging.PrintInfo(Logging.RequestCache, SR.GetString(SR.net_log_cache_range_request_range, ctx.Request.Headers[HttpKnownHeaderNames.Range]));
                    return TriState.Invalid;
                }

                if (ctx.CacheStatusCode == HttpStatusCode.PartialContent && ctx.CacheEntityLength == ctx.CacheEntry.StreamSize)
                {
                    // this is a whole resposne
                    ctx.CacheStatusCode = HttpStatusCode.OK;
                    ctx.CacheStatusDescription = Common.OkDescription;
                    return TriState.Unknown;
                }
                if (ctx.CacheEntry.IsPartialEntry || (ctx.CacheEntityLength != -1 && ctx.CacheEntityLength != ctx.CacheEntry.StreamSize) || ctx.CacheStatusCode == HttpStatusCode.PartialContent)
                {                    //The cache may contain a partial response
                    if(Logging.On)Logging.PrintInfo(Logging.RequestCache, SR.GetString(SR.net_log_cache_could_be_partial, ctx.CacheEntry.StreamSize, ctx.CacheEntityLength));
                    return TriState.Valid;
                }

                return TriState.Unknown;
            }