Bug 164329 - Shoutcast/Icecast stream served over non-default port is blocked
Summary: Shoutcast/Icecast stream served over non-default port is blocked
Status: NEW
Alias: None
Product: WebKit
Classification: Unclassified
Component: WebCore Misc. (show other bugs)
Version: WebKit Nightly Build
Hardware: Mac macOS 10.12
: P2 Normal
Assignee: Nobody
URL:
Keywords: InRadar
Depends on:
Blocks:
 
Reported: 2016-11-02 11:08 PDT by Łukasz Zaroda
Modified: 2016-11-09 09:41 PST (History)
5 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Łukasz Zaroda 2016-11-02 11:08:42 PDT
The problem is with the Shoutcast server at least, possibly with some other servers as well.

I think the source of the problem is this: https://trac.webkit.org/changeset/201895/trunk/Source

Shoutcast stream doesn't have HTTP headers, and because of that it is interpreted as HTTP/0.9 running on the non-default port. So for example jPlayer request for the stream, will be immediately shut down. The problem came to light with the macOS "Sierra" release. On on macOS "Sierra" any stream on shoutcast.com doesn't seem to work.

See also: https://github.com/happyworm/jPlayer/issues/380

Was this expected?
Comment 1 Alexey Proskuryakov 2016-11-02 21:14:18 PDT
This is being tracked internally by Apple as <rdar://problem/28734311>. It's not quite clear yet if the fix would be in WebKit, or in system libraries below it.
Comment 2 Daniel Bates 2016-11-08 15:36:15 PST
<rdar://problem/29167064>
Comment 3 Daniel Bates 2016-11-08 15:37:24 PST
(In reply to comment #2)
> <rdar://problem/29167064>

Disregard this comment.
Comment 4 Daniel Bates 2016-11-08 15:50:56 PST
As a way to ameliorate the effects of bug #158589, filed bug #164530 to allow an Shoutcast/Icecast stream served over a default port (e.g. 80).
Comment 5 Leo A 2016-11-09 09:41:30 PST
Daniel, as mentioned in my comment on the bug you raised, the proposed solution is inadequate. https://bugs.webkit.org/show_bug.cgi?id=164530#c7 explains why.