void AddRange (string rangeSpecifier, long range)
{
if (rangeSpecifier == null)
throw new ArgumentNullException ("rangeSpecifier");
if (!WebHeaderCollection.IsHeaderValue (rangeSpecifier))
throw new ArgumentException ("Invalid range specifier", "rangeSpecifier");
string r = webHeaders ["Range"];
if (r == null)
r = rangeSpecifier + "=";
else {
string old_specifier = r.Substring (0, r.IndexOf ('='));
if (String.Compare (old_specifier, rangeSpecifier, StringComparison.OrdinalIgnoreCase) != 0)
throw new InvalidOperationException ("A different range specifier is already in use");
r += ",";
}
string n = range.ToString (CultureInfo.InvariantCulture);
if (range < 0)
r = r + "0" + n;
else
r = r + n + "-";
webHeaders.RemoveAndAdd ("Range", r);
}