Exemple #1
0
 public bool ResponsibleForRequest(FragLabs.HTTP.HttpRequest request)
 {
     if (request.Uri.AbsolutePath.ToLower() == "/")
     {
         return(true);
     }
     return(false);
 }
Exemple #2
0
 public bool ResponsibleForRequest(HttpRequest request)
 {
     if (request.Uri.AbsolutePath.ToLower() == "/stats")
         return true;
     return false;
 }
 public override Dictionary<string, string> AdditionalHeaders(HttpRequest request)
 {
     var ret = new Dictionary<string, string>();
     ret.Add("Content-Length", buffer.Length.ToString());
     return ret;
 }
        public override Dictionary<string, string> AdditionalHeaders(HttpRequest request)
        {
            long length = -1;
            try
            {
                length = backingStream.Length;
            }
            catch (Exception)
            {
                //  Length not supported most likely
                return null;
            }

            var ret = new Dictionary<string, string>();
            ret.Add("Content-Length", length.ToString());
            return ret;
        }
 void ReadRangeHeader(HttpRequest request)
 {
     if (request.Headers.ContainsKey("Range"))
     {
         var rangeHeader = request.Headers["Range"];
         var words = rangeHeader.Split("=".ToCharArray());
         if (words[0].Trim().ToLower() == "bytes")
         {
             IsPartial = true;
             var rangeInfo = words[1].Trim().Split("-".ToCharArray());
             if (rangeInfo[0] != "")
                 startOffset = Convert.ToInt64(rangeInfo[0]);
             if (rangeInfo[1] == "")
                 endOffset = new FileInfo(file).Length;
             else
                 endOffset = Convert.ToInt64(rangeInfo[1]) + 1;
             if (rangeInfo[0] == "")
             {
                 endOffset = new FileInfo(file).Length;
                 startOffset = endOffset - Convert.ToInt64(rangeInfo[1]);
             }
         }
     }
     else
     {
         endOffset = new FileInfo(file).Length;
     }
 }
 public override void Connect(HttpRequest request)
 {
     readBuffer = new byte[chunkSize];
     base.Connect(request);
     stream = new FileStream(file, FileMode.Open, FileAccess.Read, FileShare.Read);
     stream.Seek(startOffset, SeekOrigin.Begin);
     currentOffset = startOffset;
 }
        public override Dictionary<string, string> AdditionalHeaders(HttpRequest request)
        {
            ReadRangeHeader(request);

            var headers = new Dictionary<string, string>();

            headers.Add("Content-Type", ContentType());
            headers.Add("Content-Length", ContentLength());
            headers.Add("Accept-Ranges", "bytes");

            if (IsPartial)
            {
                headers.Add("Content-Range", ContentRange());
            }

            return headers;
        }
 public virtual void Connect(HttpRequest request)
 {
     Connected = true;
     Request = request;
 }
 public virtual Dictionary<string, string> AdditionalHeaders(HttpRequest request)
 {
     return null;
 }