Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
Icecast-Server
Icecast-Server
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 95
    • Issues 95
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge Requests 1
    • Merge Requests 1
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • External Wiki
    • External Wiki
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • Xiph.Org
  • Icecast-ServerIcecast-Server
  • Issues
  • #1246

Closed
Open
Created Oct 11, 2007 by Gitlab Bot@GitlabBotDeveloper

Icecast Server enforcing case sensitivity on HTTP header Range "bytes" units

Clients making requests from Icecast 2.3.1 server with HTTP Range header using units "bytes" with any casing other then all lowercase fail request with:

HTTP/1.0 416 Request Range Not Satisfiable

It is expected that the HTTP Range header should be case insensitive on "bytes"

W3C rfc2616 HTTP 1.1 sec 2.1 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec2.html#sec2.1) states about BNF literals "Unless stated otherwise, the text is case-insensitive."

Section 3.12 (http://www.w3.org/Protocols/rfc2616/rfc2616-sec3.html#sec3.12) which defines the Range units defines "bytes", but does not specify case sensitivity.

Here is an example localhost request/response against an icecast 2.3.1 server with Range units as "Bytes":

REQUEST: **************\n
GET /TheBeginning.mp3 HTTP/1.1\r\n
Range: Bytes=0-\r\n
Host: localhost\r\n
Accept: */*\r\n
\r\n
RESPONSE: **************\n
HTTP/1.0 416 Request Range Not Satisfiable\r\n
\r\n

Here is an example localhost request/response against an icecast 2.3.1 server with Range units as "bytes" (data truncated):

REQUEST: **************\n
GET /TheBeginning.mp3 HTTP/1.1\r\n
Range: bytes=0-\r\n
Host: localhost\r\n
Accept: */*\r\n
\r\n
RESPONSE: **************\nHTTP/1.1 206 Partial Content\r\n
Date: Wed, 10-Oct-2007 19:29:28 GMT\r\n
Content-Length: 7064799\r\n
Content-Range: bytes 0-7064798/7064799\r\n
Content-Type: audio/mpeg\r\n
\r\n
ID3\x002\x000\x000\x000\x000\x010BTT2\x000\x000\x00F\x000The Beginning

Here is an example localhost request/response against an Apache 1.3.37 (Unix) server with Range units as "Bytes" (data truncated):

REQUEST: **************\n
GET http://www.foldedspace.org:80/files/vintage/Nipper's%20Greatest%20Hits_%201901-1920/17%20Come%20Josephine%20In%20My%20Flying%20Machine.mp3 HTTP/1.1\r\n
Range: Bytes=0-\r\n
Host: www.foldedspace.org\r\n
Accept: */*\r\n
\r\n
RESPONSE: **************\nHTTP/1.1 206 Partial Content\r\n
Connection: Keep-Alive\r\n
Content-Length: 2411015\r\n
Date: Wed, 10 Oct 2007 23:31:58 GMT\r\n
Content-Range: bytes 0-2411014/2411015\r\n
Content-Type: audio/mpeg\r\n
ETag: "63dc404-24ca07-4459501b"\r\n
Server: Apache/1.3.37 (Unix) mod_throttle/3.1.2 DAV/1.0.3 mod_fastcgi/2.4.2 mod_gzip/1.3.26.1a PHP/4.4.7 mod_ssl/2.8.22 OpenSSL/0.9.7e\r\n
Last-Modified: Thu, 04 May 2006 00:51:39 GMT\r\n
Accept-Ranges: bytes\r\n
Keep-Alive: timeout=2, max=100\r\n
\r\n
ID3\x002\x000\x000\x000\x000\x012\x002TT2\x000\x000%\x000Come Josephine In My Flying Machine

Here is an example localhost request/response against an IIS 6.0 server with Range units as "Bytes" (data truncated):

REQUEST: **************\n
GET http://kuow.org:80/mp3high/mp3/WeekdayA/WeekdayA20071010.mp3 HTTP/1.1\r\n
Range: Bytes=0-\r\n
Host: kuow.org\r\n
Accept: */*\r\n
\r\n
RESPONSE: **************\n
HTTP/1.1 206 Partial Content\r\n
Connection: Keep-Alive\r\n
Content-Length: 25918483\r\n
Date: Wed, 10 Oct 2007 23:26:17 GMT\r\n
Content-Range: bytes 0-25918482/25918483\r\n
Content-Type: audio/mpeg\r\n
ETag: "449237ff5ebc81:2a4"\r\n
Server: Microsoft-IIS/6.0\r\n
Last-Modified: Wed, 10 Oct 2007 17:00:01 GMT\r\n
Accept-Ranges: bytes\r\n
X-Powered-By: ASP.NET\r\n
\r\n
 √P╚\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000\x000Info
Assignee
Assign to
Icecast 2.3
Milestone
Icecast 2.3 (Past due)
Assign milestone
Time tracking
None
Due date
None