Icecast-Server issueshttps://gitlab.xiph.org/xiph/icecast-server/-/issues2024-03-05T00:24:26Zhttps://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/icecast-server/-/issues/2489README.md in error (git url wrong: connection refused)2024-03-03T10:04:24ZiconoclastheroREADME.md in error (git url wrong: connection refused)**WORKS:**
From https://icecast.org/download/
```git clone --recursive https://gitlab.xiph.org/xiph/icecast-server.git```
**CONNECTION REFUSED:**
from https://gitlab.xiph.org/xiph/icecast-server/-/blob/master/README.md
```git clone --...**WORKS:**
From https://icecast.org/download/
```git clone --recursive https://gitlab.xiph.org/xiph/icecast-server.git```
**CONNECTION REFUSED:**
from https://gitlab.xiph.org/xiph/icecast-server/-/blob/master/README.md
```git clone --recursive https://git.xiph.org/icecast-server.git```https://gitlab.xiph.org/xiph/icecast-server/-/issues/2488icecast 2.4.4 not supporting ecdsa keys2024-03-03T09:54:02Zbenny1611icecast 2.4.4 not supporting ecdsa keysHello,
I've tried to eneble ssl on my icecast 2.4.4 on my Windows 10 machine. I've requested the certificates using ```certbot```. Then I've created a new listener in my config with the ssl enabled. When I've concatenated the certificate...Hello,
I've tried to eneble ssl on my icecast 2.4.4 on my Windows 10 machine. I've requested the certificates using ```certbot```. Then I've created a new listener in my config with the ssl enabled. When I've concatenated the certificates and the key in my certificate file, I've noticed that the key is considerably smaller than the key I've previously had, but I didn't thnk too much about it, thinking ```icecast``` would just deal with it. When I've tried to connect I've received the following error from FireFox: ```SSL_ERROR_NO_CYPHER_OVERLAP```.
After many hours of research, I've finally came up with a solution: create a RSA key instead of ecdsa (the default for ```certbot```). That worked and I'm up an running on HTTPS. Happy days!
TLDR:
Can you please make ```icecast``` support ```ecdsa``` keys, because that seems to be the default of ```certbot``` now?
Thank you,
Bennyhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2487XSPF and VCLT generated playlist is incorrect/empty for hidden mounts2024-01-21T01:57:40ZGilouXSPF and VCLT generated playlist is incorrect/empty for hidden mountsIf one sets a mount to hidden, the xspf looks like that for the mount:
```
<?xml version="1.0" encoding="UTF-8"?>
<playlist xmlns="http://xspf.org/ns/0/" version="1">
<title/>
<creator/>
<trackList/>
</playlist>
```
and is empty fo...If one sets a mount to hidden, the xspf looks like that for the mount:
```
<?xml version="1.0" encoding="UTF-8"?>
<playlist xmlns="http://xspf.org/ns/0/" version="1">
<title/>
<creator/>
<trackList/>
</playlist>
```
and is empty for .VCLT
.m3u works as intended.
@phschafft mentionned on IRC: feel free to add that my guess is that stats_get_xml() will not return the mount in that case and therefore the XSLT will not render it.https://gitlab.xiph.org/xiph/icecast-server/-/issues/2486WIndows 32bit builds lead to connection-timout2024-01-20T23:52:33ZStephan JauernickWIndows 32bit builds lead to connection-timoutWe have not dug to deep into this yet.
It broke between 2.5b3 and current devel.
The server starts normally and all looks well, connections timeout.
Nothing is logged even with debugging.
phschafft has config.logs and config.hWe have not dug to deep into this yet.
It broke between 2.5b3 and current devel.
The server starts normally and all looks well, connections timeout.
Nothing is logged even with debugging.
phschafft has config.logs and config.hIcecast 2.5 rc1https://gitlab.xiph.org/xiph/icecast-server/-/issues/2485Fix CI, on the road to 2.52024-01-20T23:27:48ZGilouFix CI, on the road to 2.5Main issue to track the already on-going work with the CI, so that we can push our releases to OBS.
Work is happening on @stephan48 forks and mine, and especially from mine to his: https://gitlab.xiph.org/stephan48/icecast-server/-/merge...Main issue to track the already on-going work with the CI, so that we can push our releases to OBS.
Work is happening on @stephan48 forks and mine, and especially from mine to his: https://gitlab.xiph.org/stephan48/icecast-server/-/merge_requests/3 and draft on-going to the main repository https://gitlab.xiph.org/xiph/icecast-server/-/merge_requests/16https://gitlab.xiph.org/xiph/icecast-server/-/issues/2484iPhone creates duplicate connections2024-01-06T03:59:36ZAngelo HongensiPhone creates duplicate connectionsIt seems that whenever a client connects to a stream from an iphone, either directly to the icecast port http://x.x.x.x:8000/stream or through web players, the iphone creates to identical connections to the icecast server, and keeps both...It seems that whenever a client connects to a stream from an iphone, either directly to the icecast port http://x.x.x.x:8000/stream or through web players, the iphone creates to identical connections to the icecast server, and keeps both active.
While this is not that bad, it does count toward the maximum connection limit. I have no idea if this is an icecast issue (perhaps specific headers or packets are being sent forcing the client to set up an additional connection) or an iPhone/safari/webkit issue, nor do I have the expertise to troubleshoot this.
Can you guys replicate this behaviour? For now, I'm assuming it's a bug in ios 17, any idea how to report this to apple??
edit: I'm not the only one: https://github.com/doublesymmetry/react-native-track-player/issues/2096https://gitlab.xiph.org/xiph/icecast-server/-/issues/2483Under heavy concurrency, there is a large number of timeouts occurring in the...2024-01-12T08:59:51ZTom TomUnder heavy concurrency, there is a large number of timeouts occurring in the audio streams.We forward requests to the icecast2 service through nginx, and we are experiencing a high number of 502 errors when the concurrency is high. Could you please advise on how to address this issue? For the
relevant icecast2 configuration, s...We forward requests to the icecast2 service through nginx, and we are experiencing a high number of 502 errors when the concurrency is high. Could you please advise on how to address this issue? For the
relevant icecast2 configuration, server connection status, and process resource usage, please refer to the attached document.
![icecast2_配置](/uploads/f9a32fdf28695b8b9c9816c0450ed4c6/icecast2_配置.png)
![top](/uploads/6cd4eeb06064b44327e7cc4fdc721cb2/top.png)![连接状态](/uploads/0030fb8cb33c3a56c7a67227c4663a33/连接状态.png)https://gitlab.xiph.org/xiph/icecast-server/-/issues/2482List Clients - feature request2024-01-06T02:45:43ZdaenixList Clients - feature requestFeature requests:
It would be nice to have in List Clients table the possibility to sort by columns (IP, user agent) which now is only sorted by connection time.
Last but not least to redirect automatically (after a number of seconds) ...Feature requests:
It would be nice to have in List Clients table the possibility to sort by columns (IP, user agent) which now is only sorted by connection time.
Last but not least to redirect automatically (after a number of seconds) to List Clients when kicking some IPhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2481reserved identifier violation2023-08-15T09:33:30ZMarkus Elfringreserved identifier violation:eyes: I would like to point out that identifiers like “[`__BUFFER_H__`](https://gitlab.xiph.org/xiph/icecast-server/-/blob/57093def7baacf2aaaff3a17915cd7fc0b8cfec3/src/buffer.h#L14 "Update candidate")” and “[`__CFGFILE_H__`](https://git...:eyes: I would like to point out that identifiers like “[`__BUFFER_H__`](https://gitlab.xiph.org/xiph/icecast-server/-/blob/57093def7baacf2aaaff3a17915cd7fc0b8cfec3/src/buffer.h#L14 "Update candidate")” and “[`__CFGFILE_H__`](https://gitlab.xiph.org/xiph/icecast-server/-/blob/57093def7baacf2aaaff3a17915cd7fc0b8cfec3/src/cfgfile.h#L15 "Another update candidate")” [do not fit](https://wiki.sei.cmu.edu/confluence/display/cplusplus/DCL51-CPP.+Do+not+declare+or+define+a+reserved+identifier#DCL51CPP.Donotdeclareordefineareservedidentifier-NoncompliantCodeExample%28HeaderGuard%29 "Do not declare an identifier which is reserved for the compiler implementation.") to the expected naming convention of the C++ language standard.
:thought_balloon: Would you like to adjust your selection for unique names?https://gitlab.xiph.org/xiph/icecast-server/-/issues/2480Test Ticket, please ignore2023-08-07T14:32:40ZPhilipp SchafftTest Ticket, please ignoreThis is a little funny test ticket. You know the lazy dog, don't you?This is a little funny test ticket. You know the lazy dog, don't you?Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2479Revise supported architectures, operatingsystems and buildtargets2024-01-06T03:14:17ZStephan JauernickRevise supported architectures, operatingsystems and buildtargetsCheck and define what architectures, operatingsystems and buildtargets we want:
- amd64, i386, aarch64, s390x, ...?
- Debian 12(stable), Debian(11), Ubuntu ?!?!?!?!, RedHatDerivate>9000 ??!?!?!, ...?
- GCC 2.9, clang xxx, intel-who-knows...Check and define what architectures, operatingsystems and buildtargets we want:
- amd64, i386, aarch64, s390x, ...?
- Debian 12(stable), Debian(11), Ubuntu ?!?!?!?!, RedHatDerivate>9000 ??!?!?!, ...?
- GCC 2.9, clang xxx, intel-who-knows-what, ...?
- ....
Should optimally be done before Icecast 2.5 rc1https://gitlab.xiph.org/xiph/icecast-server/-/issues/2478Request: Make status-json.xslt a real JSON REST API endpoint (Github #65)2024-01-06T03:52:01Z/usr/local/ΕΨΗΕΛΩΝRequest: Make status-json.xslt a real JSON REST API endpoint (Github #65)# TL:DR;
Please make sure that icecast status-json.xslt returns a singleton array of `source` when there is a single source available, to allow consumers using an object-oriented model of icecast output for scraping.
----
As a programm...# TL:DR;
Please make sure that icecast status-json.xslt returns a singleton array of `source` when there is a single source available, to allow consumers using an object-oriented model of icecast output for scraping.
----
As a programmer, I enjoy integrating open systems that speak popular protocols.
I was working on a mobile front end for icecast2 and I found that icecast exposes a JSON API to parse the available streams. I worked with Angular to process it.
I found that the JSON is generated by an XSL transform, which produces an output that in the REST paradigm is not easy to work with.
In XML, especially if you have a schema defined, you can easily tell whether the `<source>` tag appears once or multiple times, and multiple tags appear at the same level. In JSON, the `source` must be either an object or an array for the client to parse it **easily**
The problem is, look at these outputs when you have a single stream running, or multiple:
```json
{
"icestats": {
"admin": "example@localhost",
"host": "localhost",
"location": "somewhere",
"server_id": "Icecast 2.4.4",
"server_start": "Tue, 06 Jun 2023 09:33:57 +0000",
"server_start_iso8601": "2023-06-06T09:33:57+0000",
"source": [
{
...
"listenurl": "http://localhost:8000/silent2.ogg",
"server_description": "Unspecified description",
"server_name": "The Silent Party",
...
},
{
...
"listenurl": "http://localhost:8000/stream",
"server_description": "Unspecified description",
....
}
]
}
}
```
```json
{
"icestats": {
"admin": "example@localhost",
"host": "localhost",
"location": "somewhere",
"server_id": "Icecast 2.4.4",
"server_start": "Tue, 06 Jun 2023 09:33:57 +0000",
"server_start_iso8601": "2023-06-06T09:33:57+0000",
"source": {
"audio_bitrate": 128000,
....
"listenurl": "http://localhost:8000/silent2.ogg",
"server_description": "Unspecified description",
"server_name": "The Silent Party",
....
}
}
}
```
As you can see, if there is a single stream, then the object is a map. Otherwise, it's an array.
Software working on JSON has to suffer additional burden (i.e. more code, more tests, less reliability) to handle the icecast output compared to the straight solution of using an array for the source_s_.
Here is my solution for an Angular app
```typescript
export interface IcecastStatsDto {
admin?: string;
client_connections?: number;
....
stats_connections?: number;
source?: IcecastSourceDto | IcecastSourceDto[];
}
```
And some typescript code to change the `IcecastSourceDto | IcecastSourceDto[]` into a (singleton?) array
```typescript
private getArrayFromSingleValue(x?: IcecastSourceDto | IcecastSourceDto[]): IcecastSourceDto[] {
if (!x) {
return <IcecastSourceDto[]>[];
} else if ('filter' in x) {
return <IcecastSourceDto[]>x;
} else if ('server_url' in x) {
return <IcecastSourceDto[]>[<IcecastSourceDto>x];
} else {
return <IcecastSourceDto[]>[];
}
}
```
This is for a Javascript FE. If I was using a C# or Java application, decoding icecast output into a POCO/POJO woulc be much harder. Defining a singleton array (i.e. an array containing one element) is the preferred solution in OO world,
I hope my feedback will be useful to improve the softwarehttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2476Support for linking well known IDs from metadata2023-06-07T08:36:00ZPhilipp SchafftSupport for linking well known IDs from metadataIt would be nice if Icecast could auto link data when there is a well known ID for it. This is the case with e.g. MusicBrainz.
There should be a boolean setting that can be used to turn this off (e.g. for legal reasons).
This may also ...It would be nice if Icecast could auto link data when there is a well known ID for it. This is the case with e.g. MusicBrainz.
There should be a boolean setting that can be used to turn this off (e.g. for legal reasons).
This may also be implemented on top of #2475 by adding defaults to it.https://gitlab.xiph.org/xiph/icecast-server/-/issues/2475Content resolver support2023-06-07T09:04:02ZPhilipp SchafftContent resolver supportAs there is not yet been a content resolver set up for Icecast and/or the foundation I would like to suggest the following:
Icecast should be extended with a set of settings used to generate URLs for content resolver requests. Initially...As there is not yet been a content resolver set up for Icecast and/or the foundation I would like to suggest the following:
Icecast should be extended with a set of settings used to generate URLs for content resolver requests. Initially there should be support for generating links to documentation. Other types (such as fetches) might later be added.
The I suggest to allow a template style URLs as values with `%`-prefixed parameters to be substituted.
As a reference "`ise-uri-template`" (`82ebe8fa-8b04-415a-ba90-16267465ef71`) defines:
> A URI template for accessing a resolver. This should not be used directly but my using one of the relations derived from it. Such templates are meant to be attached to contexts to allow easy access to resolvers without the need to set direct URIs on every tag.
>
> Templates are used as is with the following variables replaced by correctly URI encoded values. If a given value is not available this template is not available.
>
> * "%I": Any ISE of the tag
> * "%U": The UUID of the tag
> * "%O": The OID of the tag
> * "%R": The URI of the tag
>
> The use of those values is mostly safe as "%" is a special character in URIs that can only be followed by digits, or the letters "a" to "f". However some applications generate invalidly encoded Unicode URIs containing values in the form of "%uNNNN". Those are invalid by themself and therefore not valid in such templates.
I would like to extend that by providing three more substitutions:
* A generic one for the identifier (in any type/encoding)
* The name of the type/encoding used
* The name of the type/encoding used but the value `ise` for any ISE type (UUID, OID, URI).
If such parameters are added a note should be added to the code to make clear that they do not follow the `ise-uri-template` rules. However they may be added or at least reserved for `ise-uri-template` to avoid future syntax collisions.https://gitlab.xiph.org/xiph/icecast-server/-/issues/2472Locking issue with logging2024-01-14T14:15:37ZPhilipp SchafftLocking issue with loggingCurrently the signal handlers as well as the event subsystem's exec backend logs messages. Those seem to be subject to restrictions on the logging code's locking. This can result in the process hanging. It is unclear whether or not this ...Currently the signal handlers as well as the event subsystem's exec backend logs messages. Those seem to be subject to restrictions on the logging code's locking. This can result in the process hanging. It is unclear whether or not this may also corrupt the process in any way.
See also (likely unrelated): #2231https://gitlab.xiph.org/xiph/icecast-server/-/issues/2471listener_remove 2.5 beta not appear if listener creates two connection at the...2023-05-12T10:21:13ZHans-Georg Althofflistener_remove 2.5 beta not appear if listener creates two connection at the same timeI am using kh 2.4.0 kh20 and I am sure that this 64-bit build is based on 2.5 beta.
If a listener creates two connections at the same time, icecast creates two different client ids, which is absolut correct.
If the first of the two conne...I am using kh 2.4.0 kh20 and I am sure that this 64-bit build is based on 2.5 beta.
If a listener creates two connections at the same time, icecast creates two different client ids, which is absolut correct.
If the first of the two connection is closed, icecast is sending a `listener_remove` POST request. That is alright.
But if the second connection is also closed, no additional `listener_remove` POST request is send!
That should no be the case!
My MySQL database for this client id is therefore not closed and appear still at an active connection.
With the ols 2.4.4 32-bit version it works fine.https://gitlab.xiph.org/xiph/icecast-server/-/issues/2470Missing documentation for version 'latest'2023-04-06T12:15:53ZJonas L.Missing documentation for version 'latest'Documentation for some versions is missing on the website https://icecast.org/docs/:
- https://icecast.org/docs/icecast-latest
- https://icecast.org/docs/icecast-2.4.4Documentation for some versions is missing on the website https://icecast.org/docs/:
- https://icecast.org/docs/icecast-latest
- https://icecast.org/docs/icecast-2.4.4Marvin ScholzMarvin Scholzhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/2469HLS (HTTP Live Streaming) should be supported2023-11-28T18:36:05ZBjoern JackeHLS (HTTP Live Streaming) should be supportedplain http audio streams as Icecast supportes them currently have two major drawbacks for clients:
1) network connectivity changes lead to audio stream losses, clients will have to reconnect, audio will be interrupted
2) network modems...plain http audio streams as Icecast supportes them currently have two major drawbacks for clients:
1) network connectivity changes lead to audio stream losses, clients will have to reconnect, audio will be interrupted
2) network modems have to be busy continously because the plain audio stream is being sent all the time. The permanent activity of the modem is not energy efficient at all. Mobile devices suffer from noticable battery drain.
The solution to the above mentioned problems is HLS (https://en.wikipedia.org/wiki/HTTP_Live_Streaming). The Rocket Streaming Audio Server from https://rocketbroadcaster.com/streaming-audio-server/ does support HLS for example.
With HLS audio streams modems of client devices can stay idle most of the time, as a result of that you see greatly enhanced battery live - and network switching and even short network outages will not be a problem for clients any more.
It would be awesome if Icecast would add support for HLS, too, to overcome the shortcomings of plain audio streams, which especially mobile users suffer from considerably.