Icecast-Server issueshttps://gitlab.xiph.org/xiph/icecast-server/-/issues2017-10-05T10:40:40Zhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2273Link error when compiling with cURL2017-10-05T10:40:40ZMarvin ScholzLink error when compiling with cURLIf cURL is detected and not explicitly disabled using `--without-curl` I get a linker error:
```
Undefined symbols for architecture x86_64:
"_icecast_curl_free", referenced from:
_auth_url_clear in auth_url.o
_event_get_u...If cURL is detected and not explicitly disabled using `--without-curl` I get a linker error:
```
Undefined symbols for architecture x86_64:
"_icecast_curl_free", referenced from:
_auth_url_clear in auth_url.o
_event_get_url in event_url.o
_event_url_free in event_url.o
_destroy_yp_server in yp.o
"_icecast_curl_initialize", referenced from:
_initialize_subsystems in main.o
_main in main.o
"_icecast_curl_new", referenced from:
_auth_get_url_auth in auth_url.o
_event_get_url in event_url.o
_yp_recheck_config in yp.o
"_icecast_curl_shutdown", referenced from:
_shutdown_subsystems in main.o
ld: symbol(s) not found for architecture x86_64
```Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2263Add mime.types paths for other distros2020-10-11T14:45:20ZMarvin ScholzAdd mime.types paths for other distrosWe should add some more mime.types paths, seems the current one we have does not work on FreeBSD
and OS X uses a different one.
See [this](https://groups.google.com/forum/#!topic/golang-codereviews/fIw6mRzai4U) for some more paths that ...We should add some more mime.types paths, seems the current one we have does not work on FreeBSD
and OS X uses a different one.
See [this](https://groups.google.com/forum/#!topic/golang-codereviews/fIw6mRzai4U) for some more paths that seems to be usual.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2255Invalid XML in Icecast statistics output due to lack of escaping2018-04-16T22:12:13ZThomas B. RückerInvalid XML in Icecast statistics output due to lack of escapingIcecast version 2.3.3-2ubuntu1.14.04.1 , when reporting statistics via API calls to http://%s:%d/admin/stats.xml, returns this invalid XML:
```
<icestats>
<source mount="/radio">
<Listeners>1</Listeners>
<listener>
<IP>23.2.9...Icecast version 2.3.3-2ubuntu1.14.04.1 , when reporting statistics via API calls to http://%s:%d/admin/stats.xml, returns this invalid XML:
```
<icestats>
<source mount="/radio">
<Listeners>1</Listeners>
<listener>
<IP>23.2.9.2</IP>
<UserAgent>Mozilla/5.0 (iPhone; CPU iPhone OS 8_3 like Mac OS X) AppleWebKit/600.1.4 (KHTML, like Gecko) Mobile/12F70 [FBAN/FBIOS;FBAV/46.0.0.54.156;FBBV/18972819;FBDV/iPhone5,3;FBMD/iPhone;FBSN/iPhone OS;FBSV/8.3;FBSS/2; FBCR/AT&T;FBID/phone;FBLC/en_US;FBOP/5]</UserAgent>
<Connected>0</Connected>
<ID>2634887</ID>
</listener>
</source>
</icestats>
```
Note the unescaped &T; which is an undefined XML entity "T", and causes parsers to explode.
Expected behavior: text inside blocks should be html escaped or enclosed in a CDATA block, if I remember my XML correctly.
[Originally reported on github](https://github.com/xiph/Icecast-Server/issues/3) by [kenrestivo](https://github.com/kenrestivo)Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2202Hardcoded HTTP protocol verification for master-slave relaying2018-06-15T20:53:24ZMarvin ScholzHardcoded HTTP protocol verification for master-slave relayingIf using master slave relaying, Icecast tries to download a .txt file with an overview of the mountpoints connected on the master. There the code has a hardcoded check for "HTTP/1.0", that means it will fail if Icecast ever uses HTTP/1.1...If using master slave relaying, Icecast tries to download a .txt file with an overview of the mountpoints connected on the master. There the code has a hardcoded check for "HTTP/1.0", that means it will fail if Icecast ever uses HTTP/1.1 instead, which is not very good.
A proper check should be used there.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2199Icecast listener count negative under special circumstances2018-04-16T14:24:46ZMarvin ScholzIcecast listener count negative under special circumstancesAs reported by SimAV on IRC (thanks a lot), it can happen under special circumstances that the Icecast global listener count becomes a negative number.
It seems this is a very special case where `format_check_http_buffer` has an interna...As reported by SimAV on IRC (thanks a lot), it can happen under special circumstances that the Icecast global listener count becomes a negative number.
It seems this is a very special case where `format_check_http_buffer` has an internal problem (see log). As far as I have investigated, this is caused because `ebml_create_client_data` returns -1. We need to investigate why this leads to a wrong listener count.
Some more information attached.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2198status-json.xsl produces invalid output if field contains only "-" and option...2017-10-14T21:47:27ZZalexstatus-json.xsl produces invalid output if field contains only "-" and optional whitespaceWhen my track *hasn't* title in *tags*, Icecast shows *`-`* instead of a blank line,(I suppose this status sends the client, mpd in my case, to Icecast server) so, I get json like this (see example) and this json isn't valid because *`"...When my track *hasn't* title in *tags*, Icecast shows *`-`* instead of a blank line,(I suppose this status sends the client, mpd in my case, to Icecast server) so, I get json like this (see example) and this json isn't valid because *`"title" : -`* instead *`"title" : "-"`* . I checked it here - http://jsonlint.com/ So, I cant't do `json_decode()`, function returns `null`
```
{
"icestats": {
"admin": "admin@admin",
"host": "host.com",
"location": "Moscow",
"server_id": "Icecast 2.4.2",
"server_start": "Fri, 15 May 2015 16:25:24 +0300",
"server_start_iso8601": "2015-05-15T16:25:24+0300",
"source": [
{
"audio_info": "channels=2;samplerate=44100;bitrate=192",
"channels": 2,
"genre": "various",
"listener_peak": 3,
"listeners": 0,
"listenurl": "http://mds.planeset.ru:8000/mds.mp3",
"samplerate": 44100,
"server_description": "Трансляции Модель Для Сборки
музыка",
"server_name": "Модель для сборки - музыка",
"server_type": "audio/mpeg",
"stream_start": "Fri, 15 May 2015 16:25:33 +0300",
"stream_start_iso8601": "2015-05-15T16:25:33+0300",
"title": -,
"dummy": null
},
{
"audio_info": "channels=2;samplerate=44100;bitrate=192",
"channels": 2,
"genre": "various",
"listener_peak": 10,
"listeners": 9,
"listenurl": "http://mds.planeset.ru:8000/mds_voice.mp3",
"samplerate": 44100,
"server_description": "Трансляции Модель Для Сборки -
голос",
"server_name": "Модель для сборки - голос",
"server_type": "audio/mpeg",
"stream_start": "Fri, 15 May 2015 16:25:33 +0300",
"stream_start_iso8601": "2015-05-15T16:25:33+0300",
"title": "Фред Саберхаген - Доброжил",
"dummy": null
}
]
}
}
```
This is example of json, as You can see in first case I have `title: -` because of it I can not json_decode.
There is file xml2json.xslt from Doeke Zanstra [https://github.com/doekman/xml2json-xslt][1] on server. This file, I guess, convert xml to json and maybe there is a way to add new rule to convert `-` to `null` in blank `title` line, but I don't know how I can do it.
[1]: https://github.com/doekman/xml2json-xsltIcecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2192URL auth: override status code and send custom headers2018-09-28T15:04:52ZThomas B. RückerURL auth: override status code and send custom headersCurrently we're hardcoded to 401, if the backend refuses authentication. 403 might also be desireable or 30x with a _location_ header.
This needs two things:
* capability to set a custom status (including message)
* capability to send...Currently we're hardcoded to 401, if the backend refuses authentication. 403 might also be desireable or 30x with a _location_ header.
This needs two things:
* capability to set a custom status (including message)
* capability to send headers that will be forwarded to the client
The latter can also be used to set cookies, so is useful by itself.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2189Event triggers for Icecast 2.52019-01-22T06:35:22ZThomas B. RückerEvent triggers for Icecast 2.5We are introducing event triggers and need to decide what we trigger on. Currently already supported:
* source-connect
* source-disconnect
* icecast-start
* icecast-stop
Proposed additional triggers:
* client-connect (all connectio...We are introducing event triggers and need to decide what we trigger on. Currently already supported:
* source-connect
* source-disconnect
* icecast-start
* icecast-stop
Proposed additional triggers:
* client-connect (all connections that are !SOURCE|!PUT)
* client-disconnect (all connections that are !SOURCE|!PUT)
* icecast-reload (configuration reload as caused SIGHUP or web request)
* yp-failure
* metadata-change (Both in container and side-channel triggered, with differentiating field)
* various admin commands (Including authentication management)
* critical errors or even general logging (this needs to be thought through)Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2180SSL for admin only2020-10-15T09:24:19ZMelvyn SopacuaSSL for admin onlyHi,
I've tried the configuration below to setup SSL for the admn. This doesn't work and the documentation is too tierse to give me any hints.
Goal: Force and use SSL for /admin mountpoint. This needs to be a different URL (certificate ...Hi,
I've tried the configuration below to setup SSL for the admn. This doesn't work and the documentation is too tierse to give me any hints.
Goal: Force and use SSL for /admin mountpoint. This needs to be a different URL (certificate has limited hostnames)
Configuration tried:
```
<mount>
<mount-name>/admin</mount-name>
<ssl>1</ssl>
<stream-url>https://www.example.com:8000/admin</stream-url>
</mount>
```
Result:
1. Admin is accessible through HTTP
2. No secure connection can be established through HTTPS.
Note: firewall is not in play, because of 1), but verified regardless.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2174icestats.source in /status-json.xsl is not always an array2020-10-10T11:40:10ZDavid Thompsonicestats.source in /status-json.xsl is not always an arrayWhen there is only one mount, icestats.source is an object. When there is more than one mount, icestats.source is an array. This is quite surprising, and it means that client code has to be careful to test for this case and handle it a...When there is only one mount, icestats.source is an object. When there is more than one mount, icestats.source is an array. This is quite surprising, and it means that client code has to be careful to test for this case and handle it appropriately.
icestats.source should always be an array of objects describing the mounts, even if there is only one of them.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2171Improve https handling of Icecast web ui and generated files2018-11-09T07:18:34ZThomas B. RückerImprove https handling of Icecast web ui and generated filesCurrently some things break if Icecast runs with HTTPS on the primary port.
We should implement proper handling not to return HTTP URLS in such cases.
Right now this either breaks things or will make them insecure.Currently some things break if Icecast runs with HTTPS on the primary port.
We should implement proper handling not to return HTTP URLS in such cases.
Right now this either breaks things or will make them insecure.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2169Improved mountpoint metadata manipulation support through /admin calls2018-11-10T12:59:34ZThomas B. RückerImproved mountpoint metadata manipulation support through /admin callsCurrently we expose this mostly as the old style shoutcast metadata hack requires the data to arrive separate from the stream. This is limited to "title".
We should expose a unified interface that allows updating all mountpoint metadata...Currently we expose this mostly as the old style shoutcast metadata hack requires the data to arrive separate from the stream. This is limited to "title".
We should expose a unified interface that allows updating all mountpoint metadata, including that of the stream/container.
This would make things a lot more flexible and enable new use cases, like adjusting mountpoint information without having to reconnect the source.
Assigned to 2.5.0, pending feasibility checks.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2168Icecast should expose the YP server messages to the admin status pages per mount2018-06-16T22:44:50ZThomas B. RückerIcecast should expose the YP server messages to the admin status pages per mountThere are hundreds if not thousands of streams that fail to list properly on dir.xiph.org and it's obvious that nobody notices.
The admin interface should expose detailed information about the status of a YP listing. As per #2167 a simp...There are hundreds if not thousands of streams that fail to list properly on dir.xiph.org and it's obvious that nobody notices.
The admin interface should expose detailed information about the status of a YP listing. As per #2167 a simplified status should be also exposed to the XML used for public status.
People don't read the error.log, ever, especially in this case.
We should expose:
* If the YP server accepted the initial touch
* If the server accepted the latest touch
* What was the last status message from the YP server for a failed touch
* What was the latest status message from the YP server, including successful
* Count of YP touches since source connection
* Count of failed YP touches since source connection
Rationale is, that there might be intermittent failures so we should expose both latest message and latest failure. Also latest message, if successful could contain some information like "server outdated and insecure, please update" or otherwise from the YP administration.
Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2167Icecast should expose the YP listing status to the public status pages2018-06-16T22:44:16ZThomas B. RückerIcecast should expose the YP listing status to the public status pagesThere are hundreds if not thousands of streams that fail to list properly in dir.xiph.org and it's obvious that nobody notices.
/admin/stats should expose a per mount status field if the given mount is set public and directory listings ...There are hundreds if not thousands of streams that fail to list properly in dir.xiph.org and it's obvious that nobody notices.
/admin/stats should expose a per mount status field if the given mount is set public and directory listings are enabled for the server.
Logic could be as follows:
* *OK* - No known errors for this mount
* *WARN* - During the last n yp-touches at least one error was received
* *FAIL* - No successful listing/touch for this mount
Further information, including verbatim messages from YP should be available through the admin interface. Covered in a separate ticket.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2158No metadata for the listenerer when sourcing with Mixxx on Windows2020-02-14T12:59:17ZSebastianNo metadata for the listenerer when sourcing with Mixxx on Windows2.4.99.1 aka 2.5 beta1 on windows with Mixxx as source client.
Unfortunately the metadata (title and artist) is not visible on iTunes anymore.
In 2.4.1 this was no problem. I tried to use the charset UTF-8 in Mixxx and in Icecast but i...2.4.99.1 aka 2.5 beta1 on windows with Mixxx as source client.
Unfortunately the metadata (title and artist) is not visible on iTunes anymore.
In 2.4.1 this was no problem. I tried to use the charset UTF-8 in Mixxx and in Icecast but it didn't work either.
Maybe someone could have a look at it.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2156Check feasibility of intro functionality for WebM2018-03-06T12:49:38ZThomas B. RückerCheck feasibility of intro functionality for WebMSee #2155 also #1941
We would need to see if an otherwise parameter compatible stream can be spliced seamlessly so that it doesn't cause players to complain/break.
If not feasible we should disable intro if content-type is WebM.See #2155 also #1941
We would need to see if an otherwise parameter compatible stream can be spliced seamlessly so that it doesn't cause players to complain/break.
If not feasible we should disable intro if content-type is WebM.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2155Improve WebM support in Icecast2019-06-26T17:23:33ZThomas B. RückerImprove WebM support in IcecastWe currently don't support the same use-cases as other formats.
This is partly due to the format - WebM doesn't support something like chaining.
We might work around a few things, but this needs to be explored.
This is a tracker ticket.We currently don't support the same use-cases as other formats.
This is partly due to the format - WebM doesn't support something like chaining.
We might work around a few things, but this needs to be explored.
This is a tracker ticket.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2150check if we need to forward port a possible win32 security fix from kh2020-10-15T11:20:19ZThomas B. Rückercheck if we need to forward port a possible win32 security fix from khhttps://github.com/karlheyes/icecast-kh/commit/b50c6374234154ad94b3c3a3e76545601e997739
```
do not use SO_REUSEADDR on windows, breaks the reload handling
MS defined SO_REUSEADDR differently to BSD and linux and have allowed some stupi...https://github.com/karlheyes/icecast-kh/commit/b50c6374234154ad94b3c3a3e76545601e997739
```
do not use SO_REUSEADDR on windows, breaks the reload handling
MS defined SO_REUSEADDR differently to BSD and linux and have allowed some stupid
security issue on it for port stealing. They messed it up, added another option
which doesn't help here and advise not using this option. Luckily the default
behaviour is acceptable. I've also avoided the abort case which should not trigger
but if it does, it reports an error and skips the rest.
```
Needs checking against Windows documentation. There might be some differences in how kh and we use things.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2147Split up Icecast certificate handling into private and public key files2018-06-15T21:17:45ZThomas B. RückerSplit up Icecast certificate handling into private and public key filesThis would make it easier for people who are used to most software requiring two files, also it would make it easier to share certificate files with other server software like e.g. Apache httpd or dovecot imapd.This would make it easier for people who are used to most software requiring two files, also it would make it easier to share certificate files with other server software like e.g. Apache httpd or dovecot imapd.Icecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2146Icecast should send the "admin" field from config to YP2018-03-06T12:49:47ZThomas B. RückerIcecast should send the "admin" field from config to YPThis would allow the YP admins to contact the server administrator in case of problems with the listing/streams.
It would address a very common problem, finding out the contact details for a server admin.This would allow the YP admins to contact the server administrator in case of problems with the listing/streams.
It would address a very common problem, finding out the contact details for a server admin.Icecast 2.5.0Thomas B. RückerThomas B. Rücker