Xiph.Org issueshttps://gitlab.xiph.org/groups/xiph/-/issues2018-03-06T12:49:38Zhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2101Verify if on-connect (events) are still impossible on windows2018-03-06T12:49:38ZThomas B. RückerVerify if on-connect (events) are still impossible on windowsWe migrated to mingw32, I suspect it might now be either trivial or easy to fork a script (.bat). We migrated to mingw32, I suspect it might now be either trivial or easy to fork a script (.bat). Icecast 2.6Stephan JauernickStephan Jauernickhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2100Document icecast access log format in docs2018-03-06T12:49:38ZThomas B. RückerDocument icecast access log format in docswe should explain it, especially the last field that adds on top of Apache "combined" type output and signifies connection duration in seconds.
Also mentioning that we do NOT log the amount of data sent by a source client due to adherin...we should explain it, especially the last field that adds on top of Apache "combined" type output and signifies connection duration in seconds.
Also mentioning that we do NOT log the amount of data sent by a source client due to adhering to convention "bytes _sent_".Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2094YP protocol documentation / revision2018-03-06T12:49:38ZThomas B. RückerYP protocol documentation / revisionWe should document the currently used YP protocol, old docs might be available but are outdated.
As we'll have to introduce a few changes we should rethink some protocol aspects while we document it.
Collaborative wiki page is at https...We should document the currently used YP protocol, old docs might be available but are outdated.
As we'll have to introduce a few changes we should rethink some protocol aspects while we document it.
Collaborative wiki page is at https://wiki.xiph.org/Icecast/YP-protocol-v2Icecast 2.5.0Marvin ScholzMarvin Scholzhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2092Write specification of Icecast specific HTTP protocol features2018-06-07T20:52:20ZThomas B. RückerWrite specification of Icecast specific HTTP protocol featuresUse HTTP 1.0 and 1.1 specs as base, document differences and quirks.
Give guidance what a source client SHOULD, MUST, MUST NOT do, etc.
Explain source and listener HTTP headers, authentication quirks.Use HTTP 1.0 and 1.1 specs as base, document differences and quirks.
Give guidance what a source client SHOULD, MUST, MUST NOT do, etc.
Explain source and listener HTTP headers, authentication quirks.Icecast 2.5.0Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2091Fix up ogg serial numbers for incoming streams in Icecast2018-03-06T12:49:38ZThomas B. RückerFix up ogg serial numbers for incoming streams in IcecastWe should do this server side, there are too many broken things out there.
Ices has some code for this if we need a reference.We should do this server side, there are too many broken things out there.
Ices has some code for this if we need a reference.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2084Add support for ANSI streaming2021-10-26T09:40:29ZPhilipp SchafftAdd support for ANSI streamingStreaming in Text+ANSI Codes should be added to icecast. This would allow to to send shows of e.g. text adventures or other text games and applications.Streaming in Text+ANSI Codes should be added to icecast. This would allow to to send shows of e.g. text adventures or other text games and applications.Icecast 2.6https://gitlab.xiph.org/xiph/icecast-server/-/issues/2074symlink icecast docs into web dir during install2018-03-06T12:49:39ZThomas B. Rückersymlink icecast docs into web dir during installThis would make the docs much more discoverable for the average user.
We could then simply link to them from the status page and the admin pages.
Docs are already HTML as we also expose them through http://icecast.org/docs/ for each ver...This would make the docs much more discoverable for the average user.
We could then simply link to them from the status page and the admin pages.
Docs are already HTML as we also expose them through http://icecast.org/docs/ for each version
On Windows it would be a full copy instead.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2073Turn on Forward Secrecy in openSSL support2022-03-21T09:33:34ZThomas B. RückerTurn on Forward Secrecy in openSSL supportThis would further improve security in case of HTTPS usage.
This will need a patch to configure the curve to be used.
cf.
http://vincent.bernat.im/en/blog/2011-ssl-perfect-forward-secrecy.html
https://github.com/bumptech/stud/pull/61/...This would further improve security in case of HTTPS usage.
This will need a patch to configure the curve to be used.
cf.
http://vincent.bernat.im/en/blog/2011-ssl-perfect-forward-secrecy.html
https://github.com/bumptech/stud/pull/61/filesIcecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2004calls to abort() should be removed and checks for memory allocation failture ...2018-10-18T08:03:57ZPhilipp Schafftcalls to abort() should be removed and checks for memory allocation failture to be addedicecast calls abort() 3 times. All 3 times are related to memory allocation. It is used to avoid the need to handle errors on memory allocation. In many other places memory allocation is not checked to be successful.
* all calls to abor...icecast calls abort() 3 times. All 3 times are related to memory allocation. It is used to avoid the need to handle errors on memory allocation. In many other places memory allocation is not checked to be successful.
* all calls to abort() should be removed.
* all calls to malloc(), calloc() and realloc() should be checked handling errors correctly.
* There should be a policy on what happens on memory allocation failure (icecast dropping clients/resources OR dieing?)
* icecast should (at high/all cost) try to inform the user about this problem.
* memory failure can have many reasons. Not just the system being out of memory.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2003refbuf should be replaced2018-10-18T08:03:57ZPhilipp Schafftrefbuf should be replacedrefbuf is a type of objected used to store binary data. As the name suggest it has an internal reference counter that allows it to be freed automatically when no longer in use.
the old refbuf objects aren't well designed and allow direc...refbuf is a type of objected used to store binary data. As the name suggest it has an internal reference counter that allows it to be freed automatically when no longer in use.
the old refbuf objects aren't well designed and allow direct access to internal data structures. This became abused.
The new object type MUST:
* be well designed,
* not allow access to internal data structures,
* have a well designed API to access the object's content in a secure way.Icecast 2.6Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1973Allow standard HTTP method instead of non-standard "STATS" for opening stats ...2023-01-28T20:46:15ZjA_cOpAllow standard HTTP method instead of non-standard "STATS" for opening stats streamMany HTTP libraries don't support using non-standard HTTP methods, so this can be a blocking issue.
Many HTTP libraries don't support using non-standard HTTP methods, so this can be a blocking issue.
Icecast 2.5.0Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1959Icecast to accept custom REMOTE IP headers for reverse proxy compatibility.2022-11-10T18:58:16ZYahavIcecast to accept custom REMOTE IP headers for reverse proxy compatibility.Would be nice to be able to set a custom header name in the config in which Icecast will check for the remote ip address.
(<IP-HEADER>X-Forwarded-For</IP-HEADER>)
will be useful with reverse proxying and such.
(Implemented in KH-2.3.3-kh...Would be nice to be able to set a custom header name in the config in which Icecast will check for the remote ip address.
(<IP-HEADER>X-Forwarded-For</IP-HEADER>)
will be useful with reverse proxying and such.
(Implemented in KH-2.3.3-kh1: http://karlheyes.github.io ) Icecast 2.5.0Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1938timelimit_header is not considered for stream_auth2018-03-06T12:49:39Zcatotimelimit_header is not considered for stream_authProblem:
A url is configured for stream_auth to limit the authentication for sources. The configured URL returns a "icecast-auth-timelimit: 600"-header, but the source does not get disconnected after 10 minutes.Problem:
A url is configured for stream_auth to limit the authentication for sources. The configured URL returns a "icecast-auth-timelimit: 600"-header, but the source does not get disconnected after 10 minutes.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1902Icecast should implement RFC 5334 / 4281 support ("codecs" Media Type parameter)2021-10-30T09:39:38ZThomas B. RückerIcecast should implement RFC 5334 / 4281 support ("codecs" Media Type parameter)Just stumbled into this while working on Opus support in the YP server code.
Proper support for "; codecs=" as specified in RFC 5334 / 4281 in the content-type would be desireable. This could then be used to present proper information i...Just stumbled into this while working on Opus support in the YP server code.
Proper support for "; codecs=" as specified in RFC 5334 / 4281 in the content-type would be desireable. This could then be used to present proper information in the web interface and when submitting to YP. It would also provide hinting for listener clients.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1892Allow transient reconfiguration of all mount point parameters2018-03-06T12:49:39ZThomas B. RückerAllow transient reconfiguration of all mount point parametersgive the source user more freedom in controlling mount point options through admin requests.
How do we split control of <mount> options?
We could have XML tag attributes to control outside access: <stream-name allow-override="no">fooba...give the source user more freedom in controlling mount point options through admin requests.
How do we split control of <mount> options?
We could have XML tag attributes to control outside access: <stream-name allow-override="no">foobar</stream-name>
where override could be:
* yes - allow setting this value externally
* no - only the xml config file value may set this
* 'unset' - a default value is used if the attribute is not set. The default should be documented though!
Also, we should check the life-cycle for this. Do the settings get reset to the XML defined settings and defaults upon disconnection of the source client or do they persist until either the config is reloaded or the server restarted? I'd tend towards the latter and give an option to 'reset' from source side both during connect and at arbitrary points in time.Icecast 2.6Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1860[PATCH] Send credentials when doing master-relay2018-11-10T13:05:22Zcato[PATCH] Send credentials when doing master-relayWhen using a configuration with a hidden master and some relays using master-relay it should be possible to enable password protection on streams in the master icecast. Therefore it is necessary for the relaying-icecast to send credentia...When using a configuration with a hidden master and some relays using master-relay it should be possible to enable password protection on streams in the master icecast. Therefore it is necessary for the relaying-icecast to send credentials to the master-icecast. The natural choice would be to send the `<master-username>` and `<master-password>`.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/591Bandwidth stats2023-01-03T19:11:54ZGitlab BotBandwidth statsIn icecast1 it was possible to fetch the current used/maximum bandwidth on the server. It seems like these stats got lost in the icecast2 rewrite, and it would be neat to have them back.
It's not anything critical, but it's good to be ab...In icecast1 it was possible to fetch the current used/maximum bandwidth on the server. It seems like these stats got lost in the icecast2 rewrite, and it would be neat to have them back.
It's not anything critical, but it's good to be able to see how much bandwidth the server uses.Icecast 2.6Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2491Listener count goes negative / fallback override issue (devel branch)2024-03-05T00:24:26ZGilouListener count goes negative / fallback override issue (devel branch)Runnning icecast from devel branch on Debian 12, compiled from source, at some point on some mounts, I get a very high number of listeners, or probably a negative value, as this lies around `2^64-x`, as mentioned in the error log:
`[202...Runnning icecast from devel branch on Debian 12, compiled from source, at some point on some mounts, I get a very high number of listeners, or probably a negative value, as this lies around `2^64-x`, as mentioned in the error log:
`[2024-03-03 21:12:59] INFO source/source_main listener count on /xxx now 18446744073709551614`
And this is also displayed in streamlist (listeners stanza), and there is also an issue with the "Connected" stanza (why does that one has a capital C? :P):
```
<source mount="/xxx">
<fallback>/xxx-last</fallback>
<listeners>18446744073709551614</listeners>
<Connected>9873</Connected>
<content-type>audio/mpeg</content-type>
<health>yellow</health>
<maintenance comment="This is an experimental node. Do not use!">
<flag value="format-generic" maintenance-level="warning">Legacy or unsupported streaming format is used.</flag>
</maintenance>
<dumpfile_written>0</dumpfile_written>
</source>
```
I can't really make sense of the Connected value… There was 0 listener on that mount when that happened, and probably 0 socket for it besides the source (overall, the server had 150 sockets amongst clients and sources, and there was no attack or anything happening to it in reality, this is a testbed). Adding clients to the mount made the counter go back to 0, then higher, and disconnecting made it go negative again…
Server was up for ~2 days, and is still live, no special CPU/RAM usage pattern there, just odd numbers.https://gitlab.xiph.org/xiph/icecast-server/-/issues/2490Stream fails after a bit over HTTPS / TLS on devel branch2024-03-03T22:16:52ZGilouStream fails after a bit over HTTPS / TLS on devel branchweird situation regarding TLS.. "legacy" MP3 stream, working over HTTP, but after a bit mplayer cries about [tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
makes browsers read 4s, then stop
I restarted...weird situation regarding TLS.. "legacy" MP3 stream, working over HTTP, but after a bit mplayer cries about [tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
makes browsers read 4s, then stop
I restarted the source, it went back to normal.
I can't reproduce easily, that's testing on the -devel branch, on Debian 12, libssl-dev is version 3.0.11-1~deb12u2, icecast is compiled from source @ 2952a29c1ef96b3ac3844162696d5ad1778ac0fe, libigloo @ 0.9.2.
source is using liquidsoap, and there are like 10 similar sources that don't seem to fail in that way, so that might be unrelated.
source is connected in plain HTTP on a dual stack IPv6/IPv4 server, I didn't explicitly test IPv4 before restarting: source is connected over IPv6, clients I tested were probably using IPv6 as well.
```
libavformat version 60.16.100 (internal)
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
[tls @ 0x559121ac92e0]Error in the pull function.
[tls @ 0x559121ac92e0]IO error: End of file
[https @ 0x559121ac92e0]Stream ends prematurely at 103686, should be 18446744073709551615
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
Cannot seek backward in linear streams!
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
Cannot seek backward in linear streams!
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
Cannot seek backward in linear streams!
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
Cannot seek backward in linear streams!
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
Cannot seek backward in linear streams!
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
Cannot seek backward in linear streams!
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
Cannot seek backward in linear streams!
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
Cannot seek backward in linear streams!
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
Cannot seek backward in linear streams!
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
Cannot seek backward in linear streams!
Cannot seek backward in linear streams!
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
Cannot seek backward in linear streams!
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
Cannot seek backward in linear streams!
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
[tls @ 0x559121ac92e0]The specified session has been invalidated for some reason.
```
Browsers (Firefox, Safari) play 4s, then stop.https://gitlab.xiph.org/xiph/rnnoise/-/issues/11RFE - Name change proposal to HASTEN2024-03-01T13:17:43ZKambiz AghaiepourRFE - Name change proposal to HASTENThis is more a possible name change proposal. I just feel RNNoise is not all that catchy of a name and would like to propose "HASTEN" - How About Shutting That Extra Noise"This is more a possible name change proposal. I just feel RNNoise is not all that catchy of a name and would like to propose "HASTEN" - How About Shutting That Extra Noise"