From b783244a504ae9979c937acef6c18c839de24aa7 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Fri, 30 Nov 2018 23:10:29 +0000 Subject: move http range parser to util --- OpenSim/Framework/Util.cs | 32 ++++++++++++++++++++++++++++++++ 1 file changed, 32 insertions(+) (limited to 'OpenSim/Framework') diff --git a/OpenSim/Framework/Util.cs b/OpenSim/Framework/Util.cs index f8469b6..52f9aea 100644 --- a/OpenSim/Framework/Util.cs +++ b/OpenSim/Framework/Util.cs @@ -2382,6 +2382,38 @@ namespace OpenSim.Framework return sb.ToString(); } + public static bool TryParseHttpRange(string header, out int start, out int end) + { + start = end = 0; + + if (header.StartsWith("bytes=")) + { + string[] rangeValues = header.Substring(6).Split('-'); + + if (rangeValues.Length == 2) + { + string rawStart = rangeValues[0].Trim(); + if (rawStart != "" && !Int32.TryParse(rawStart, out start)) + return false; + + if (start < 0) + return false; + + string rawEnd = rangeValues[1].Trim(); + if (rawEnd == "") + { + end = -1; + return true; + } + else if (Int32.TryParse(rawEnd, out end)) + return end > 0; + } + } + + start = end = 0; + return false; + } + /// /// Used to trigger an early library load on Windows systems. /// -- cgit v1.1