Icecast-Server issueshttps://gitlab.xiph.org/xiph/icecast-server/-/issues2018-03-06T12:49:48Zhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1896Icecast should provide xml versions of pages2018-03-06T12:49:48ZGhost UserIcecast should provide xml versions of pagesIcecast generates xml pages and then runs them through xslt to convert them to html for display. The raw xml is much more useful for people writing automation which accesses an icecast server.
While some of the raw xml files are availab...Icecast generates xml pages and then runs them through xslt to convert them to html for display. The raw xml is much more useful for people writing automation which accesses an icecast server.
While some of the raw xml files are available through the admin/ interface, this requires authentication. The same information that's available on the public stream listing and version pages should also be available as xml.Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1617[kh] hang not accepting source2018-03-06T12:49:48Zmoo[kh] hang not accepting sourcei have client connect to kh branch of icecast with no success
in changeset [16524]
```
sock = sock_accept(serversock, ip, MAX_ADDR_LEN);
```
is changed to
```
sock = sock_accept (serversock, NULL, 0);
```
while in changeset [15864]
``...i have client connect to kh branch of icecast with no success
in changeset [16524]
```
sock = sock_accept(serversock, ip, MAX_ADDR_LEN);
```
is changed to
```
sock = sock_accept (serversock, NULL, 0);
```
while in changeset [15864]
```
if (!sock_valid_socket(serversock))
return SOCK_ERROR;
```
is changed to
```
if (ip == NULL || len == 0 || !sock_valid_socket(serversock))
return SOCK_ERROR;
```
sock_accept (serversock, NULL, 0) will always return SOCK_ERROR. no client will be accept()edMichael SmithMichael Smithhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1854GeoIP support for Icecast22018-03-06T12:49:48ZEugene MechanisMGeoIP support for Icecast2Everyone knows that a lot of stations using php and other scripts around icecast2 to get listeners stats, and also these scripts doing hard work on getting country flag and country and city and sometimes map coordinates for each listener...Everyone knows that a lot of stations using php and other scripts around icecast2 to get listeners stats, and also these scripts doing hard work on getting country flag and country and city and sometimes map coordinates for each listeners IP.
It's so terrible and not good for cpu usage etc.
Will be much better if icecast2 will do it. can be easily added support of geoip info so icecast2 will generate listeners stats with geoip details. and it's much less cpu/ram usage at all.
Can be used free GeoLite Country and GeoLite City databases. and C API look here http://www.maxmind.com/app/c
Foe example apache, nginx and others http servers offers geoIP modules. it's so painfull to write scripts around icecast2 just to get country flag and maybe some other info like city, country, map location etc. Icacast2 can do it easily and keep these stats in logs, in xml output etc.Michael SmithMichael Smithhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1913Icecast shows EROR instead of ERROR in error.log2018-03-06T12:49:48ZborlamIcecast shows EROR instead of ERROR in error.logIcecast shows EROR instead of ERROR in error.log.
error.log.4:[2012-10-25 21:00:49] EROR slave/open_relay_connection Header read failed for Icecast shows EROR instead of ERROR in error.log.
error.log.4:[2012-10-25 21:00:49] EROR slave/open_relay_connection Header read failed for Monty MontgomeryMonty Montgomeryhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1249Misleading documentation2018-03-06T12:49:48ZmarkusMisleading documentationThe installation documentation (e.g. "basicsetup") should make clear that it does not apply to icecast server packaged by different distributions. For example the binary name in Debian (and variants) is not icecast but icecast2, and pref...The installation documentation (e.g. "basicsetup") should make clear that it does not apply to icecast server packaged by different distributions. For example the binary name in Debian (and variants) is not icecast but icecast2, and preferred way to start it is to use packaged init scripts instead of the binary name. Distribution specific documentation doesn't need to be supplied by you, but imo you should modify the documentation so that it clearly states that the documentation found on icecast web pages is not directly applicable on most commonly used linux distributions where the software is installed through package management software.Icecast 2.3Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1639Icecast doesn't export http headers2018-03-06T12:49:48ZJoe HIcecast doesn't export http headersVersion: Icecast 2.3.2
OS: Ubuntu server
kernel version: 2.6.31-17-server
What should happen: "wget -S serverip" should prints http headers
What does happen: "wget -S serverip" prints just Content-Type and length.
It returns the heade...Version: Icecast 2.3.2
OS: Ubuntu server
kernel version: 2.6.31-17-server
What should happen: "wget -S serverip" should prints http headers
What does happen: "wget -S serverip" prints just Content-Type and length.
It returns the headers for streams, however it should return the icecast headers for any http request on it.
As a workaround I am using: curl http://ip:port/stream.ogg -D - -o /dev/null -s -m 1Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1865Init script for icecast2018-03-06T12:49:48ZClaudius ZingerliInit script for icecastHi,
In order to automatically start icecast at system boot, I created a
startup script for icecast (adapted from /etc/init.d/openssh).
In order to make this work, you need to create:
cat /etc/sysconfig/icecast
#Icecast service startu...Hi,
In order to automatically start icecast at system boot, I created a
startup script for icecast (adapted from /etc/init.d/openssh).
In order to make this work, you need to create:
cat /etc/sysconfig/icecast
#Icecast service startup parameters
OPTIONS='-c /usr/local/etc/icecast.xml'
Adapt you icecast.xml to create a pid file in the standard location:
Instead of <pidfile>/usr/local/share/icecast/icecast.pid</pidfile> use:
<pidfile>/var/run/icecast.pid</pidfile>
(or adapt the init script to look in /usr/local)
Then put the following code in /etc/init.d/icecast and mark it
executable and do "chkconfig --add icecast" to register the service.
#!/bin/bash
#
# chkconfig: 2345 88 55
# Description: Icecast init.d script
# Adapted by zeuz from: openssh initd script
# Get function from functions library
. /etc/init.d/functions
# pull in sysconfig settings
[ -f /etc/sysconfig/icecast ] && . /etc/sysconfig/icecast
prog="icecast"
PID_FILE=/var/run/${prog}.pid
PROG_FILE=/usr/local/bin/${prog}
OPTIONS+=' -b'
RETVAL=0
# Start Icecast
start() {
echo -n $"Starting ${prog}: "
# echo -n $"${PROG_FILE} ${OPTIONS} >/dev/null 2>&1 && success ||
failure"
${PROG_FILE} ${OPTIONS} >/dev/null 2>&1 && success || failure
RETVAL=$?
[ "${RETVAL}" = 0 ] && touch /var/lock/subsys/${prog}
echo
}
# Stop Icecast
stop() {
echo -n $"Stopping ${prog}: "
if [ -n "`pidfileofproc ${prog}`" ] ; then
echo "killproc ${prog}"
else
failure $"Stopping ${prog}"
fi
RETVAL=$?
# if we are in halt or reboot runlevel kill all running sessions
# so the TCP connections are closed cleanly
if [ "x${runlevel}" = x0 -o "x${runlevel}" = x6 ] ; then
killall ${prog} 2>/dev/null
fi
[ "$RETVAL" = 0 ] && rm -f /var/lock/subsys/${prog}
echo
}
### main logic ###
case "${1}" in
start)
start
;;
stop)
stop
;;
status)
status -p $PID_FILE ${prog}
RETVAL=$?
;;
condrestart)
if [ -f /var/lock/subsys/${prog} ] ; then
stop
sleep 3
start
fi
;;
restart|reload)
stop
start
;;
*)
echo $"Usage: $0 {start|stop|restart|reload|condrestart|status}"
RETVAL=1
esac
exit 0
I hope that helps. I think it might be useful. The code has been tested
on RHEL 5. Maybe someone could put that file in a contrib directory. (or
adapt the Makefile to automatically place the init script)
Cheers
ClaudiusMichael SmithMichael Smithhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1271missing comprehensive list of configuration directives2018-03-06T12:49:48Zmuellimissing comprehensive list of configuration directivesI just wanted to lookup the semantic of a configuration directive and couldn't find it easily. A comprehensive list like on http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives would be nice.I just wanted to lookup the semantic of a configuration directive and couldn't find it easily. A comprehensive list like on http://code.google.com/p/modwsgi/wiki/ConfigurationDirectives would be nice.Karl HeyesKarl Heyeshttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1867Icecast shared sources in 'httpp', 'net', 'thread' and 'timing' directories n...2018-03-06T12:49:48ZThomas B. RückerIcecast shared sources in 'httpp', 'net', 'thread' and 'timing' directories need license header update (to LGPLv2)As just noticed on #icecast, among others the timing.c and httpp.c files seem to imply GPLv2 while COPYING in that directory says LGPLv2.
Those are also used by e.g. libshout which is LGPLv2...
Suggestion: track down authors, double che...As just noticed on #icecast, among others the timing.c and httpp.c files seem to imply GPLv2 while COPYING in that directory says LGPLv2.
Those are also used by e.g. libshout which is LGPLv2...
Suggestion: track down authors, double check that changing to LGPL is OK.
This would make them compatible with both GPLv2 and LGPLv2 if I understand correctly.
affected files relative to [icecast/trunk/](../tree/master/icecast/trunk/) and who touched them (since tagging GPL):
* [icecast/trunk/timing/timing.c](../tree/master/icecast/trunk/timing/timing.c) giles, karl
* [icecast/trunk/timing/timing.h](../tree/master/icecast/trunk/timing/timing.h) giles, karl, moritz
* [icecast/trunk/net/sock.h](../tree/master/icecast/trunk/net/sock.h) (oddly not sock.c) karl, oddsock, giles, brendan, msmith, jack. plus changes predating https://trac.xiph.org/browser/trunk/net/sock.h?rev=1997
* [icecast/trunk/httpp/httpp.c](../tree/master/icecast/trunk/httpp/httpp.c) msmith, giles, oddsock, karl, ph3-der-loewe
* [icecast/trunk/httpp/httpp.h](../tree/master/icecast/trunk/httpp/httpp.h) msmith, giles, karl, ph3-der-loeweThomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/16462.3.2-kh20 content-length is before http status for flash/MSIE2018-03-06T12:49:48Zmoo2.3.2-kh20 content-length is before http status for flash/MSIE```
$ LANG=C svn info .
URL: http://svn.xiph.org/icecast/branches/kh/icecast
Repository Root: http://svn.xiph.org
Repository UUID: 0101bb08-14d6-0310-b084-bc0e0c8e3800
Revision: 16886
Last Changed Rev: 16858
Last Changed Date: 2010-01-31...```
$ LANG=C svn info .
URL: http://svn.xiph.org/icecast/branches/kh/icecast
Repository Root: http://svn.xiph.org
Repository UUID: 0101bb08-14d6-0310-b084-bc0e0c8e3800
Revision: 16886
Last Changed Rev: 16858
Last Changed Date: 2010-01-31 14:22:46 +0800 (Sun, 31 Jan 2010)
```
for flash/MSIE client, icecast returns
```
Content-Length: 221183499
Expires: Mon, 26 Jul 1997 05:00:00 GMT
HTTP/1.0 200 OK
```
expected result:
```
HTTP/1.0 200 OK
Content-Length: 221183499
Expires: Mon, 26 Jul 1997 05:00:00 GMT
```
suggested fix: call create_client_data after HTTP/1.0 200 OK is setKarl HeyesKarl Heyeshttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1916Fix & Verify proper escaping of HTTP related variables when e.g. printing to ...2018-03-06T12:49:48ZThomas B. RückerFix & Verify proper escaping of HTTP related variables when e.g. printing to access.logSee also initial report:
http://lists.xiph.org/pipermail/icecast/2012-December/012331.html
We should check escaping for all those variables printed to access.log .See also initial report:
http://lists.xiph.org/pipermail/icecast/2012-December/012331.html
We should check escaping for all those variables printed to access.log .Icecast 2.4.0Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1273<relay> ignores <authentication> elements2018-03-06T12:49:48Zmuelli<relay> ignores <authentication> elementsIf you just relay streams and want users to authenticate in order to get the stream, I'd expect to extend my <relay> definition by a `<authentication type="">` stanza. However, this does not work.
A rather counter-intuitive solution is...If you just relay streams and want users to authenticate in order to get the stream, I'd expect to extend my <relay> definition by a `<authentication type="">` stanza. However, this does not work.
A rather counter-intuitive solution is to set up a `<mount>` with the same name and define authentication there.
I'd expect an `<authentication>` inside a `<relay>` to work.
Example configuration which I expected to work:
```
<relay>
<server>some.server.net</server>
<port>8000</port>
<mount>/remotemount</mount>
<local-mount>/relay-auth</local-mount>
<on-demand>1</on-demand>
<relay-shoutcast-metadata>1</relay-shoutcast-metadata>
<authentication type="url">
<option name="mount_add" value="http://myauthserver.net/notify_mount.php"/>
<option name="mount_remove" value="http://myauthserver.net/notify_mount.php"/>
<option name="listener_add" value="http://myauthserver.net/notify_listener.php"/>
<option name="auth_header" value="icecast-auth-user: 1"/>
<option name="listener_remove" value="http://myauthserver.net/notify_listener.php"/>
</authentication>
</relay>
```Michael SmithMichael Smithhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1870icecast should send 'expires' in all cases2018-03-06T12:49:48ZThomas B. Rückericecast should send 'expires' in all casescurrently it only sends it in a flash special case.
We should probably do this in all cases unless someone thinks it would break existing clients?currently it only sends it in a flash special case.
We should probably do this in all cases unless someone thinks it would break existing clients?Icecast 2.4.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1648[patch] [kh] improve support for shoutcastsource by using ICY instead of HTTP...2018-03-06T12:49:48Zmoo[patch] [kh] improve support for shoutcastsource by using ICY instead of HTTP/1.0mpc/mpc-hc will use it's own http client, "User-Agent: shoutcastsource" try to handle http:// url, but only if the server returns ICY not HTTP/1.0 response
afaik, shoutcast server return ICY
with shoutcastsource client, mpc/mpc-hc will...mpc/mpc-hc will use it's own http client, "User-Agent: shoutcastsource" try to handle http:// url, but only if the server returns ICY not HTTP/1.0 response
afaik, shoutcast server return ICY
with shoutcastsource client, mpc/mpc-hc will work perfect as if it know the server is steam not file
without using shoutcastsource client, they still work, with different handler, maybe a directshow source transformer or something. the source become a file not a stream, mpc/mpc-hc will show a progress indicator, and when you seek it, for example, to 02:00, you'll have to wait for 2:00 for the buffer to finish the seeking
the patch is simpleKarl HeyesKarl Heyeshttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1939Webinterface shows Login when using just stream_auth2018-03-06T12:49:48ZcatoWebinterface shows Login when using just stream_authA stream is configured just with stream_auth. The webinterface shows an login-link anyway. Clients can still access the stream, if they use the direct link.
This happens because the xsl just looks for an authenticator for the mount, whi...A stream is configured just with stream_auth. The webinterface shows an login-link anyway. Clients can still access the stream, if they use the direct link.
This happens because the xsl just looks for an authenticator for the mount, which is "url" in this case. There is no possibility to check whether the authenticator applies for sources or for clients.Icecast 2.5.0Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1873[PATCH] icecast does not read arbitrary capitalized headers2018-03-06T12:49:48ZPhilipp Schafft[PATCH] icecast does not read arbitrary capitalized headers(Forwarded from cato on IRC because of #1871)
the YP-Interface does not work according to the http rfc. To be specific icecast does not read arbitrary capitalized headers from the answer as the standard says.
I have written my own impl...(Forwarded from cato on IRC because of #1871)
the YP-Interface does not work according to the http rfc. To be specific icecast does not read arbitrary capitalized headers from the answer as the standard says.
I have written my own implementation of the server-side yp-interface. when I return for example "Ypmessage: 1" instead of "YPMessage: 1" icecast doesn't find the header and the submission to my directory fails
Section 4.2 of RFC 2616 says: "Each header field consists of a name followed by a colon (":") and the field value. Field names are case-insensitive.
the error is in http://svn.xiph.org/icecast/trunk/icecast/src/yp.c in handle_returned_header(..) where instead of strncmp a case-insensitive comparison should be madeIcecast 2.4.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1942Spurious dots inside http request line logged to access log2018-03-06T12:49:48ZThomas B. RückerSpurious dots inside http request line logged to access log*"GET./status.xsl.HTTP/1.1"
vs
"GET /status.xsl HTTP/1.1"*"GET./status.xsl.HTTP/1.1"
vs
"GET /status.xsl HTTP/1.1"Icecast 2.4.0Philipp SchafftPhilipp Schaffthttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1951IceCast2 Mountpoint switchover buffer2018-03-06T12:49:48ZDarrenIceCast2 Mountpoint switchover bufferHi.
I've recently changed my SHOUTcast over to IceCast to stop any dead air and use mount points.
I have one little issue.
When the Auto DJ is connected, the music plays perfectly fine but when a source connects then that's when the ...Hi.
I've recently changed my SHOUTcast over to IceCast to stop any dead air and use mount points.
I have one little issue.
When the Auto DJ is connected, the music plays perfectly fine but when a source connects then that's when the stream starts to buffer, yet the listeners successfully transfer from the /autodj mount to the /live mount and vice versa when a source disconnects.
Now.. when listening via the Centova Cast player at the top, the stream doesn't buffer.. it only buffers when using flash players or any other player for that matter which are outside Centova Cast.
Do you know a way around this? Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1953auth.xsl m3u filename is wrong2018-03-06T12:49:48Zrasiauth.xsl m3u filename is wrongauth.xsl generates the link for usermanaged servers.
but the file it sends out to the browser is hardcoded:
<form method="GET" action="/admin/buildm3u">
Since this file is missing a file extension it wont work with some mediaplayers tha...auth.xsl generates the link for usermanaged servers.
but the file it sends out to the browser is hardcoded:
<form method="GET" action="/admin/buildm3u">
Since this file is missing a file extension it wont work with some mediaplayers that expect a "m3u" extension.
Version is icecast-2.4-beta3.tar.gzIcecast 2.5.0Thomas B. RückerThomas B. Rückerhttps://gitlab.xiph.org/xiph/icecast-server/-/issues/1963icecast crashes if some XML config settings are empty2018-03-06T12:49:48Zmaepicecast crashes if some XML config settings are empty
## new description:
If you leave a tag empty, our config parsing code using libxml2 will set the variable to NULL, something that we try to prevent by prepopulating vital variables with defaults.
This needs a well thought out fix after ...
## new description:
If you leave a tag empty, our config parsing code using libxml2 will set the variable to NULL, something that we try to prevent by prepopulating vital variables with defaults.
This needs a well thought out fix after understanding our code and where the NULL comes from and what it should be instead (possibly case by case?).
*Workaround:* _Don't set anything in the config to empty tags like <tag></tag>, because bad things will happen!_
## Initial report:
icecast version 2.3.3. when i have this in my config
<accesslog></accesslog>
<errorlog></errorlog>
icecast segfaults. my intention was to turn off logging.
Icecast 2.5.0Thomas B. RückerThomas B. Rücker