News Archive
libigloo Release 0.9.4
We are pleased to announce a new release of libigloo!
The changes include:
- Corrected license header
- Updated string pool
- Fixed header guards
- Improved UUID support
- Improved release process
Download libigloo 0.9.4 from the download page.
Icecast Release 2.5.0-rc1
We are pleased to announce Icecast 2.5.0-rc1 (2.4.999.1).
This is a rc release. Usage in production should be with caution, but we recommend broad testing.
Downloads
Security updates
- Require at least TLS 1.2
- Support more and more modern password hashing
- Several smaller fixes (see below)
New features
- Formats
- Web interface
- Added health reporting for streams
- Added more important information to dashboard
- Renamed mountpoint list to source list
- Added
show-listeners
parameters to stats.xml
-style output
- Added live eventfeed
- Report content languages of streams
- Network
- Use settings from listen socket for YP/directory if there is only one
- Improved YP/directory protocol
- Added geoip support
- Dumpfiles
- Report dumpfile status
- Allow defining size and time limits for dumpfiles
- Allow killing a running dumpfile
- Added UUID interpolation in dumpfile filenames
- Events
- Emit
icecast-active
/icecast-idle
events based on source status
- Emit
source-flags-changed
whenever a source changes flags
- Emit
format-metadata-changed
on metadata changes
- Emit
source-listeners-is-zero
when listeners on a source become zero
- Emit
source-listeners-changed
when listener count on a source changed
- Emit
source-listener-attach
when a listener is attached to a source
- Include source media type in event data
- Include dumpfile filename in event data
- Added new style URL events
- Allow wildcard event triggers
- Internals
- Reworked early client handling
- Added global instance UUID
- Added per-source instance UUID
- Added ping request support
- Added verbose version display (
-V
)
- Allow exporting internal identifiers as ValueFile (
--export-database
)
- Include checks required for future versions
Fixes and Cleanup
- Fixed file missing after install
- Update levels on dashboard
- Try to fail early on several operating system shortcomings
- General code cleanup
- Migrated to libigloo 0.9.2
- Fixed windows builds
- Fixed minor memory leak on configuration reload
- Improved/Fixed timeout handling for clients
- Fixed incorrect lock in signal handler
- Fixed typo
SROUCE_HIDDEN
-> SOURCE_HIDDEN
- Fixed several small TLS problems
- Allow to disable IPv6 on 32 bit Windows
libigloo Release 0.9.2
We are pleased to announce a new release of libigloo!
The changes include:
- Improved performance of the string pool
- Fixed reference counting in ro
- Moved to librhash as backend for cryptographic hash calculation
The fixed bug in the reference counting could result in invalid memory usage patterns.
Such invalid patterns could result in security and/or stability issues.
Therefore we strongly recommend to upgrade.
Download libigloo 0.9.2 from the download page.
libshout Release 2.4.6
We are pleased to announce a new release of libshout!
The changes include:
- Fixed pkg-config file (#2329)
- Made vorbis an optional codec
- Do not pass to small headers to libspeex
- Updated documentation, mostly in regard of making it clearer which functions are now obsoleted
- General code cleanup
- Added compiler warnings about obsoleted functions and ignored return values
- Replaced old
shout_set_metadata(3)
with new shout_set_metadata_utf8(3)
- Added support for plain text streaming
- Fixed
shout_set_metadata*(3)
sometimes returning SHOUTERR_RETRY
(#2328)
- Workaround old clients by emulating
SHOUTERR_RETRY
with SHOUTERR_BUSY
(#2316)
- Remove our re-implementation of
X509_check_host(3)
- Allow to disable building tools (#2331)
Download libshout 2.4.6 from the download page.
Icecast Release 2.5 beta3
We are pleased to announce Icecast 2.5 beta3 (2.4.99.3).
This is a beta release. Usage in production should be with caution.
Downloads
New features
- Overall
- Support for configure option
--with-default-config=PATH
- Allowing on the fly reconfiguration of PID file
- Clearing XSLT cache on configuration reload
- Updated playlist size from 4 to 10
- Improved relay configuration including multi-upstream support
- Improved directory configuration including updated mechanism for listen URL submission
- Report of
Host:
-header in client list
- Updates to example configuration
- Better warning about legacy operations
- Support for developer logging to de-spam production
error.log
(--enable-devel-logging
)
- Added support for usernames and passwords in master’s mountlist
- Improved client navigation including per-client history and improved handling of fallback overrides
- Improved configuration validation warnings
- Support for plain text streaming
- Support for media type parameters
- New experimental JSON renderings
- Web interface
- Complete redesign
- Show
<audio>
for WebM
- Support to move single listeners between sources
- Logfile display on admin interface
- Support for setting marks in logfiles via admin interface
- New dashboard including overall health and maintenance information
- Admin interface rendering of fallback updates
- New confirm dialogues for critical operations
- Added new endpoint
/admin/publicstats
replacing /status-json.xsl
which is now deprecated
- Added stats key
display-title
to replace title
, and artist
- ulimit related information on dashboard
- Warning about legacy sources on dashboard
- Listing of listen sockets on admin interface
- Warning when IPv6 is not enabled
- Advanced version display on admin interface
- Protocol
- Full
OPTIONS
, POST
, and DELETE
support
- Addition of
no-store
to Cache-Control:
-header.
- Setting the protocol version to
HTTP/1.1
- Improved CORS support
- Improved Keep-Alive support
- Marked
SOURCE
as deprecated
- Prefer IPv6 when IPv4-mapped is supported for listen sockets
- Network
- Support for new listen socket type
virtual
- Improved listen URL reporting
- Allowing full on the fly reconfiguration of listen sockets
- Support to configure listen backlog
- Per listen socket HTTP headers
- Authentication
- Per role matches:
match-web
, nomatch-web
, match-admin
, nomatch-admin
, match-method
, and nomatch-method
- Per listen socket authentication
- Client altering via authentication including redirection
- Allow client altering on authentication fail and acl deny
- Per role HTTP headers
- New backend
enforce_auth
to improve performance with URL authentication
- Internals
- Support for admin commands with embedded parameters
- Fast event support
- Buffer support
- JSON renderer
- Support names for ACLs
- PRNG API
- HMAC support
- Module support
Fixes and Cleanup
- Several TLS related fixes
- Fix for segfault on incorrectly configured htpasswd auth
- Several autotool related fixes and cleanup
- Fixed XSLT cache invalidation
- Skip using poll() on Darwin
- Detection of missing submodules in autogen.sh
- Several locking related fixes
- Several fixes for legacy metadata
- Several memory leak fixes
- Limit source settable stats key
- Send final reply to client on HTTP upgrade
- Fixed usage of
<shoutcast-compat>
with <shoutcast-mount>
- Re-implemented
<no-mount>
and renamed to <allow-direct-access>
- Send correct
<iceresponse>
for admin command manageauth
- Corrected error code for mounts with max listeners reached
- Handle safe HTTP methods in unsafe context correctly
- Made global client limit warning easier to understand
- Improved logging messages
- Not consider reuse of connections if they reached an error state
References
Closed tickets
#738
#1272
#2057
#2085
#2225
#2332
#2335
#2336
#2342
#2343
#2347
#2348
#2355
#2356
#2358
#2359
#2363
#2366
#2369
#2370
#2373
#2377
#2385
#2396
#2398
#2408
#2409
#2413
#2421
Related tickets
#1902
#2017
#2084
#2365
#2372
#2395
libshout #2303
libigloo Release 0.9.1
We are pleased to announce a new release of libigloo!
The changes include:
- Several fixes.
- New string pool feature that provides a optimised storage for C strings.
- TAP test frame work which can easily used by other projects.
- Portable low level time API.
- SHA-3 digest and HMAC support.
- Pseudo random number generator.
- Helper for working with UUIDs.
Download libigloo 0.9.1 from the download page.
libshout Release 2.4.5
We are pleased to announce a new release of libshout!
The changes include:
- Improved shout.h for reading, and understanding.
- Marked dumpfile support as obsolete (as
SHOUT_PROTOCOL_XAUDIOCAST
already is).
- Added Support for setting the content language.
- Avoid the use of obsolete functions (#2317).
- Several small fixes for non-blocking mode (#2321, #2315).
- Corrected detection of libogg (mostly for windows targets).
- Now accept TLS mode “auto” when build without TLS support.
- Added new tool shout(1).
Download libshout 2.4.5 from the download page.
libigloo Release 0.9.0
We are happy to announce the first public release of libigloo.
libigloo is a our new generic C framework. It should replace
the code our existing projects share currently (known as “common/”)
over the time. It will both provide a more uniform as well as clean,
and modern interface to our shared code base.
This first release includes support for object and memory management
as well as set of utility functions. More to come with next release!
Download libigloo 0.9.0 from the download page.
Ices Release 2.0.3
After quite a while without a release, we are happy to announce the release
of Ices 2.0.3!
Ices is a source client for the Icecast streaming media server, it takes audio
from one of the defined inputs and (re)encodes the audio for streaming.
- New features:
- Support for m3u and VCLT playlists
- Support for TLS
- Support for Ogg/Opus, Ogg/Speex, and Ogg/FLAC (without transcoding support)
- Support to run a command after a track finished
- Fixes:
- Improved shuffling for playlists
- Several fixes, code improvements, and hardening
- Updates to the build system
- Updates and improvements to the documentation
Download Ices 2.0.3 from the Ices page.
libshout Release 2.4.4
We are pleased to announce a new release of libshout!
The changes include:
- Fixed handling of blocking/non-blocking mode
- Fixed
ICY
port increment
- Fixed reusing of handles
- Fixed error handling of Ogg sync layer
- Fixed passing of errors between connection and instance layer
(Without this fix, died connections were not correctly detected)
- Fixed and improved build scripts
Download libshout 2.4.4 from the download page.
libshout Release 2.4.3
We are pleased to announce the next release of libshout!
The changes include:
- Fixed building with OpenSSL 1.1.0.
- Fixed static building with OpenSSL.
- Added support for PUT.
- Added support for WebM and Matroska with full timing.
- Added support to inspect the full server’s TLS certificate chain.
- Improved API to set the format used for streaming.
Download libshout 2.4.3 from the download page.
libshout Release 2.4.2
We are pleased to announce the next release of libshout!
The changes include:
- Fixed handling of invalid characters in strings:
- Correctly escape mountpoint names (#2233),
- Correctly escape mountpoint names and passwords in deprecated metadata API (#2304),
- Do not allow ICE headers with invalid characters (#2302).
- Fixed and updated build system.
- Allow building libshout on Android.
- Rewrote TLS handling code and statemachine (#2244, #2298, #2301, #2303).
- Support OPTIONS for RFC 2817 TLS mode.
- Allow manual inspection of server’s TLS certificate.
- Updated documentation.
Download libshout 2.4.2 from the download page.
Icecast Release 2.4.4
We released a new version of Icecast. It is a security release and we recommend to update all Icecast installations of versions below 2.4.4 to it.
A summary of the changes is listed below, for details please refer
to the ChangeLog
The Xiph.org package repositories have been updated already. Most distributions should start shipping updated Icecast versions soon.
All issues have been also addressed in our development master branch. We plan to ship a 2.5 beta 3 in the near future.
Fixes
- Fix buffer overflows in URL auth code, [CVE-2018-18820]. #2342
- This security issue affects all Icecast servers running version 2.4.0, 2.4.1, 2.4.2 or 2.4.3 if there is a “mount” definition that enables URL authentication.
- A malicious client could send long HTTP headers, leading to a buffer overflow and potential remote code execution.
- The problematic code was introduced in version 2.4.0 and was now brought to our attention by Nick Rolfe of Semmle Security Research Team
- Worked around buffer overflows in URL auth’s cURL interface.
- We currently do not believe that this issue is exploitable. It would require a malicious URL authentication back end server to send a crafted payload and make it through libcURL.
- If someone manages, please let us know.
- Do not report hashed user passworts in user list. There is no practical reason to show this to the administrator and it improves security.
- Fixed segfault in htpasswd auth if no filename is set
- Fixed a segfault when xsltApplyStylesheet() returns error
- Do not segfault on malformed Opus streams
- Global listener count could be negative under certain circumstances. Thanks a lot to Simeon Völkel (0xBD4E031CDB4043C9) for reporting and investigating the bug.
- Added code to announce Opus streams as such towards yp servers.
Downloads
Icecast Release 2.5 beta2
We are pleased to announce Icecast 2.5 beta2 (2.4.99.2).
This is a beta release and not recommended for production use.
Downloads
New features
- General:
- Add support for HTTP PUT, including chunked encoding support
- Improve TLS support including additional options, on the fly certificate reload, RFC2817-mode, and TLS and non-TLS connections on same port
- Improve WebM support
- HTTP Keep-Alive support
- New error handling and better HTTP status codes in error cases
- Improved HTTP headers returned by Icecast
- Send
<admin>
tag content to YP servers - provides contact information for directory operators
- Web Interface/API:
- Add support for Opus metadata in web/stats interface
- List last played songs in web/stats interface
- Add support for xsl includes from the admin directory
- Add
protocol
to listener client stats XML
- Add
opmode
(operation mode) strict
option
- Add support for config reload from the admin interface
- Config:
- Add new tag
<tls-context>
with childs <tls-certificate>
, <tls-key>
and <tls-allowed-ciphers>
- Add new
<shoutcast-user>
tag to specify the username that is used for SHOUTcast sources
- Moved
<mime-types>
to the <paths>
section
- Rename
<mp3-metadata-interval>
tag to <icy-metadata-interval>
- Rename
<kartoffelsalat>
tag to <event-bindings>
- Rename
ssl
tags (<ssl>
, <ssl-certificate>
, <ssl-allowed-ciphers>
) to tls
(<tls>
, <tls-certificate>
, <tls-allowed-ciphers>
)
Fixes
- HTTP PUT now supports chunked encoding
- HTTP PUT with
Expect: 100-Continue
now sends the 200
status as expected at the end of transmission, not right after the 100
- Fix login problems for admin user, if default mount had auth defined
- Fix that in some cases stats JSON would be malformed
- Fix that the JSON exposed listener details if queried with a specific mountpoint
- Fix segfault on some bad opus streams
- Fix segfaults due to empty strings in config
- Fix fetching of streamlist (for relaying) from HTTP/1.1 servers
- Fix information disclosure CVE that allowed to view the source of a xsl file by appending a
.
to it, when using Icecast on Windows (#2248)
Known issues
- YP and m3u playlists do not use the
https
scheme for URLs when using TLS
New GPG key for Xiph repo
PSA: The GPG signing key for the official Xiph.org package repositories on the openSuse Open Build Service has changed:
pub rsa2048 2017-11-21 [SC] [expires: 2020-01-30]
0E313DB7936B4E76E720065B77EC2301F23C6AA3
uid multimedia OBS Project <multimedia@build.opensuse.org>
The old key was DSA1024 and didn’t allow SHA256 signatures, only SHA1, which are being phased out right now. So to avoid future problems we approached the maintainer for the whole multimedia project to replace its signing key. This has now taken place and the multimedia:xiph subproject has rebuilt its repositories to have all of them signed by the new key.
We also host an independent copy of the public key for your convenience:
https://icecast.org/multimedia-obs.key
Icecast Release 2.4.3
We released a new version of Icecast last week. It is a Windows only release and addresses a security issue recently brought to our attention.
As it, embarrassingly, turns out this issue was previously raised on a security mailing list in 2005 and assigned CVE 2005-0837. A ticket (#635) was even created, once this posting was noticed by an Icecast project member, at that time. Sadly the original report was terse, the issue couldn’t be readily reproduced and subsequently the ticket was closed.
We were recently contacted about this issue and this time provided with details about the environment it occurred in. This allowed us to identify this as a Windows only issue.
The vulnerability, identified as CVE-2005-0837, allows an attacker to acces the raw XSLT template file by appending a dot “.” to the URL. Due to the way how Windows handles file names ending with a dot, it only affects Icecast versions < 2.4.3 running on Windows. Icecast on other operating systems, like Linux, wasn’t affected at any time by this issue. If you haven’t modified the default XSLT files of a Windows installation, then no information disclosure of real value could have happened. We expect that most, of the comparatively few, Windows installations have unmodified template files and thus, while technically vulnerable, only expose those unmodified templates. To be clear, no runtime information can be accessed this way.
In case you modified the templates and they contain sensitive information, it should be assumed that a third party could have accessed them. We’re sorry, that this issue went unresolved for a long time.
Downloads
libshout Release 2.4.1
We’re grateful that our community quickly noticed a problem in 2.4.0 and we are releasing version 2.4.1, including additional fixes.
These fixes include:
- Fix a compilation error (No rule to make target ‘libshout.chkport’), ref #2235
- Fix a little problem with build env checks on some targets
Download libshout 2.4.1 from the download page.
libshout Release 2.4.0
We are pleased to announce the next release of libshout!
New features include:
- Support for TLS (HTTPS) (RFC2817 and RFC2818, mode can be autodetected)
- Support for audio-only WebM
- Improved protocol level metadata support. (Some API calls got replaced and marked as obsolete)
- Improved HTTP protocol:
- Set
Host:
-header (vhosting support)
- Check for server capabilities
- Added basic support for the RoarAudio protocol
Download libshout 2.4.0 from the download page.
Icecast Release 2.4.2
We are releasing Icecast 2.4.2, an important bugfix-only release. Upgrading to it is recommended due to security fixes.
A summary of the changes is listed below, for details please refer
to the ChangeLog.
Downloads
Fixes
Known issues
- HTTP PUT implementation currently doesn’t support chunked encoding yet.
- HTTP PUT with “Expect: 100-Continue” receives first a “100” and soon after a “200”, instead of the “200” at the end of transmission.
- Caution should be exercised when using
<on-connect>
or <on-disconnect>
, as there is a small chance of stream file descriptors being mixed up with script file descriptors, if the FD numbers go above 1024. This will be further addressed in the next Icecast release.
- Don’t use comments inside
<http-headers>
as it will prevent processing of further <header>
tags.
- Webinterface shows Login when using just
stream_auth
.
Icecast Release 2.5 beta1
We are pleased to announce Icecast 2.5 beta1 (2.4.99.1).
This is a beta release and not recommended for production use.
A summary of the changes is listed below, for details please
refer to the ChangeLog.
Downloads
New features
-
replaces old style items
-
triggers
-
replaces and offers more functionality
- additional stream metadata exposed
- additional stats XML output (e.g. listeners, used by e.g. licensing services, may need ?omode=legacy)
Known issues
- HTTP PUT implementation currently doesn’t support chunked encoding yet.
- HTTP PUT with “Expect: 100-Continue” receives first a “100” and soon after a “200”, instead of the “200” at the end of transmission.
- Caution should be exercised when using
<on-connect>
or <on-disconnect>
, as there is a small chance of stream file descriptors being mixed up with script file descriptors, if the FD numbers go above 1024. This will be further addressed in the final release.
- Login problems for admin if mount has auth defined (fixed in git for next beta)
- JSON exposes listener details if queried with mount (fixed in git for next beta)
Icecast Release 2.4.1
We are pleased to announce release 2.4.1 of Icecast.
This is a pure bugfix-only release. Upgrading to it is recommended due to security fixes.
A summary of the changes is listed below, for details please
refer to the ChangeLog.
Downloads
Fixes
- Fix autogen.sh to work properly on OS X
- Removed threadpool from the example config (it is long gone and unused)
- More detailed logging:
- Add source IP adress to source start/stop logging
- Add mountpoints to some log lines
- Fix logging to send errors to STDERR prior to opening log files
- Fix
<auth>
in default mounts (<mount type="default">
) to work properly
- Fix the JSON status API (
status-json.xsl
), which could return invalid JSON in some cases
- SSL Security improvements:
- Disable SSLv3
- Disable SSL compression
- Updated the default ciphers to be more secure
- Handle empty strings in config file better
- Fix logging of client connection duration time on Windows
- Fix possibly broken XML on Windows
- Require
Content-Type
header for PUT requests
- Fix on-connect and on-disconnect script STDIN/STDOUT/STDERR corruption due to shared file descriptors. (CVE-2014-9018)
- Fix JSON access by adding support for global and mount specific custom HTTP headers
Known issues
- HTTP PUT implementation currently doesn’t support chunked encoding yet.
- HTTP PUT with “Expect: 100-Continue” receives first a “100” and soon after a “200”, instead of the “200” at the end of transmission.
- Caution should be exercised when using
<on-connect>
or <on-disconnect>
, as there is a small chance of stream file descriptors being mixed up with script file descriptors, if the FD numbers go above 1024. This will be further addressed in the next Icecast release.
- Don’t use comments inside
<http-headers>
as it will prevent processing of further <header>
tags.
- Webinterface shows Login when using just
stream_auth
.
Icecast Release 2.4.0
We are pleased to announce release 2.4.0 of Icecast.
A summary of the changes is listed below, for details please
refer to the ChangeLog.
Downloads
New features
- Support for Ogg Opus streams
- Support for WebM streams
- HTTP 1.1 PUT support for source connections. Deprecating SOURCE method.
- Default mount
This allows you to define a global set of defaults for all mounts.
This way you can use e.g. url-auth for sources and or listeners also for dynamically generated mounts.
- Web interface redone
- Web output properly redone, credit to ePirat.
- Added
<audio>
element for supported audio streams.
- Now validates completely as XHTML1.0 strict.
- Improves rendering on mobile devices.
- Added basic JSON API (
/status-json.xsl
) based on a xml2json template by Doeke Zanstra (see xml2json.xslt
).
Output is roughly limited to data also visible through status.xsl
.
- Send charset in HTTP headers for everything, excluding file-serv and streams.
- Allow (standard
strftime(3)
) %x
codes in <dump-file>
. Disabled for win32.
- Added stream_start_iso8601, server_start_iso8601 to statitics. ISO8601 compliante timestamps for statistics.
Should make usage in e.g. JSON much easier. Added as new variables to avoid breaking backwards compatibility.
- Now compiles for win32 using mingw
- Added options
headers
and header_prefix
to URL based listener auth.
- Updated listener_remove handler, added
ip=
and agent=
- Allow full URLs to be returned by the master server.
Fixes
- Security Fix: Override supplementary groups if
<changeowner>
is used
- Fixes for some race conditions
- Dropped debian packaging directory as debian use their own.
- Send proper HTTP headers in responses to clients.
- Corrected
Content-Length
header in admin (raw) requests. Thanks to paluh for reporting.
- Escape log entries in access log
- Fixed a memory leak. Lost headers of stream because of wrong ref counter in associated refbuf objects.
- Avoid memory leak in
_parse_mount()
when type
-attribute is set
- Updated web interface to be XHTML compliant.
- Removed
status2.xsl
from release. It was only a broken example file anyway.
Known issues
- Will crash if certain config tags are left empty.
- Webinterface shows Login when using just
stream_auth
.
Icecast Release 2.4-beta5
We are pleased to announce a fifth beta release of Icecast.
A summary of the changes is listed below, for details please
refer to the ChangeLog.
Please note that while Opus and WebM are considered production ready, there might
be other problems in this release. We appreciate feedback and discussion on the
icecast-dev mailing list!
Downloads
Changes
- New features:
- Web interface redone
Web output properly redone, credit to ePirat. Now validates completely as XHTML1.0 strict.
Also improves rendering on mobile devices.
- Bugfixes:
- Reverting r18945 for now as using
-b
breaks things.
Reopening #1886, patch needs rework.
Icecast Release 2.4-beta4
We are pleased to announce a fourth beta release of Icecast.
A summary of the changes is listed below, for details please
refer to the ChangeLog.
Please note that while Opus and WebM are considered production ready, there might
be other problems in this release. We appreciate feedback and discussion on the
icecast-dev mailing list!
Downloads
Changes
- New features:
- HTTP PUT support
Completed HTTP PUT support, send 100-continue-header,
if client requests it. We need to adhere to HTTP1.1 here.
- Bugfixes:
- Fixed a memory leak. Lost headers of stream because of wrong ref counter in associated refbuf objects.
- Avoid memory leak in
_parse_mount()
when type
-attribute is set.
- Updated web interface to be more XHTML compliant.
- Some fixes and improvements.
Icecast Release 2.4-beta3
We are pleased to announce a third beta release of Icecast.
A summary of the changes is listed below, for details please
refer to the ChangeLog.
Please note that while Opus and WebM are considered production ready, there might
be other problems in this release. We appreciate feedback and discussion on the
icecast-dev mailing list!
Downloads
Changes
- New features:
- Default mount
This allows you to define a global set of defaults for all mounts.
This way you can use e.g. url-auth for sources and or listeners also
for dynamically generated mounts.
- Bugfixes:
- Some fixes and improvements.
Icecast Release 2.4-beta2
We are pleased to announce a second beta release of Icecast.
A summary of the changes is listed below, for details please
refer to the ChangeLog.
Please note that while Opus and WebM are considered production ready, there might
be other problems in this release. We appreciate feedback and discussion on the
icecast-dev mailing list!
Downloads
Changes
- New features:
- Now compiles for win32 using mingw
- Added options
headers
and header_prefix
to URL based listener auth.
- Updated
listener_remove
handler:
- Added
ip=
and agent=
- Some cleanup & made code more uniform
- Avoid
int
for size_t
vars
- Close #1422
- Allow full URLs to be returned by the master server. (Closes #1878)
- Highly experimental HTTP PUT support. (#1812)
We are handling it the same as we would handle a SOURCE request. Due to legacy code,
sender must send proper content-type
header, if content type is not audio/mpeg
!
Can be tested using real-time encoded output and piping it into
| curl -u username:password -H "Content-type: application/ogg" -T - http://localhost:8000/mountname.ogg
Note that this example has zero timing, so a simple cat *.ogg
will fail. Whatever feeds the pipe must do
it at proper timing for real-time playback!
- Bugfixes:
- Send proper HTTP headers in responses to clients.
(Closes #1639,
Ref #1870 and
#1885)
- Corrected
Content-Length
header in admin (raw) requests. Thanks to paluh for reporting.
- Escape log entries in access log (Close: #1916, some fixes still pending)
Ices Release 2.0.2
After far a long time the icecast development team has released Ices version 2.0.2.
Ices is a source client for Icecast streaming media server.
It takes audio from one of the defined inputs and (re)encodes the audio for streaming
to icecast for listeners to pick up.
- New features:
- Support for RoarAudio input
- Bugfixes:
- Updated Documentation (Closes: #1238)
- Fixed double shout_close() (Closes: #720)
- Reduced error to warning in case of duplicate serial number.
- Fixed handling of
<reconnectattempts>
when set to zero (Closes: #735)
- Did some code cleanup and hardening (Closes: #1795)
- Enabled compiler warnings (Closes: #1796)
- Added
<retry-initial>
(Closes: #994)
- Updated handling of empty strings in config file (Closes: #1875)
- Updated build system
Download Ices 2.0.2 from the Ices page.
Icecast Release 2.4-beta
We are pleased to announce a beta release of Icecast. A summary of the changes is listed below.
Please note that while Opus and WebM are considered production ready, there might be other problems
in this release. We appreciate feedback and discussion on the icecast-dev mailing list!
Downloads
Changes
- New features:
- Support for Ogg Opus streams
- Support for WebM streams
- Bugfixes:
- Fixes for some race conditions
- Allow (standard
strftime(3)
) %x
codes in <dump-file>
. Disabled for win32.
- Dropped debian packaging directory as debian use their own.
Icecast Release 2.3.3
We are pleased to announce the next release of Icecast. A summary of the changes are listed below.
Downloads
Changes
- Security (fixed 3 security issues):
- Improved HTTPS cipher handling and added support for chained certificates.
- Allow the source password to be undefined. There was a corner case, where a default password would have taken effect. It would require the admin to remove the ‘source-password’ from the icecast config to take effect. Default configs ship with the password set, so this vulnerability doesn’t trigger there.
- Prevent error log injection of control characters by substituting non-alphanumeric characters with a
.
(CVE-2011-4612). Injection attempts can be identified via access.log
, as that stores URL encoded requests. Investigation if further logging code needs to have sanitized output is ongoing.
- Bugfixes (this is mostly a bug-fix release to flush out the accumulated, mostly small, fixes):
- On-demand relaying - Reject listeners while reconnecting. Fix stats for relays without mount section.
- Prevent too frequent YP updates.
- Only allow raw metadata updates from same IP as connected source (unless user is admin). This addresses broken client software that issues updates without being connected.
- Minor memory leaks
- XSPF file installation
- Fix case of global listeners count becoming out of sync.
- Setting an interval of 0 in mount should disable shoutcast metadata inserts.
- Authentication
- Sources can now be authenticated via URL, like listeners.
Post info is
action=stream_auth&mount=/stream&ip=IP&server=SERVER&port=8000&user=fred&pass=pass
As admin requests can come in for a stream (eg metadata update) these requests can be issued while stream is active. For these &admin=1
is added to the POST details.
- XSL update
- Automatically generate VCLT playlist like we do with M3U, the mountpoint extension is
.vclt
- Documentation updates
libshout Release 2.3.1
Added support for Opus, contributed by Greg Maxwell.
Download libshout 2.3.1 from the download page.
libshout Release 2.3.0
Added support for WebM streams, contributed by David Richards.
Download libshout 2.3.0 from the download page.
Icecast Release 2.3.2
We are pleased to announce the next release of Icecast.
A summary of the changes are listed below.
Downloads
Changes
- Character set support. Most non-Ogg streams (eg MP3) send metadata as Latin1 but it could be in
other character sets.
As icecast uses UTF-8, we need to convert to UTF-8 so that web pages and
stream directories render correctly.
- Allow a per-mount
<charset>
setting. For when source clients do not indicate which
character set is in use.
- A
charset=
parameter to the metadata request.
- Default for non-Ogg content is now Latin-1 (aka ISO-8859-1). Ogg content still uses UTF-8.
- Authentication:
- Each mountpoint authentication is isolated so one mount authentication does not
slow another mountpoint authentication down.
- XSL pages can require authentication.
- Add some sanity checks for incorrect settings.
- Listening socket update
- Allow multiple ports to be allocated which allow multiple shoutcast source
clients to stream on the same icecast instance.
- No internal limit on the number of listen sockets that can be used.
- Allow for a listen socket to be marked SSL capable. While any client could connect
on these, the idea is really for
/admin
requests.
- Allow for a
<listen-socket>
to bind to ipv4 and ipv6
- XSL update
- XSL pages include an xspf link for non-auth streams.
- XSL pages in both webroot and adminroot can take a
mount=
arg to limit which stats are transformed.
- XSL files can specify the content-type to return to the client. It is no longer fixed to html
- Updates for stream directory handling
- A stream is not registered with the directory until after the first minute has passed.
Some streams have been stuck in a connect/disconnect loop.
- Increase retry time on failure, if the stream add is rejected then it will be down to
a misconfiguration so a long retry delay is performed.
- A YP server that is not responding is ignored for a while.
- Updates for Win32. Newer versions of dependency libs (libxml2/libxslt/libcurl etc).
Buffer overflow fixes when many streams are active.
- Accept/Ban IP support. Now takes filenames for explicitly accepting or denying requests from specified IP addresses.
Useful in cases where firewall access is not available. The files, if defined, are re-read automatically if updated.
- A Mountpoint is exported to the slaves even if no mount section is defined for it.
You can still use the hidden setting to prevent that from happening.
- Relays handle redirection (HTTP 302) if one is received at startup.
- Automatically generate XSPF playlist like we do with M3U, the mountpoint extension is .xspf
- Header updates for proxy handling and certain clients like some shoutcast source clients and flash players.
- Added Kate/Skeleton codecs to Ogg handler.
- Various stats cleanups. Added some global stats (server ID, email contact etc).
- The streamlist passed from master to slave had a limited length, so if there were many streams then some could of been left out.
- Documentation updates.
- Relay startup/shutdown is cleaner.
- Several build cleanups.
- Several resource leaks and race conditions fixed.
Icecast Release 2.3.1
Downloads
New features for 2.3.1
- new tag
<logsize>
in <logging>
state the trigger size (in KB) for cycling the log files.
- new tag
<logarchive>
in <logging>
enable (1
) if you want to use a timestamp for an extension when cycling logs.
Fixes for 2.3.1
- Handling of certain shoutcast source clients is fixed, this typically affected NSV source clients
- A race in source shutdown when listeners are authenticated could lead to server crash
- An audio glitch was possible in playback of vorbis streams when a new logical stream started (eg metadata update).
- Stats speedup. Processing large numbers of stats was slow. Typically only seen when using lots of streams on the same server.
- 404 responses were being sent back in some places, now 403 is sent back.
- Auth URL now handles the authentication to scripts better.
The order in which username/password are selected is
- url is http://user:pass@host:port/….
<param name="username">
and <param name="password">
- with
listener_add
/remove
, listener supplied username/password is used.
- A streams intro file can now be changed, using HUP, on active streams.
- Mount without a name crashed the server
- Various documentation updates
More Load Test Report
We’ve done another round of load testing, this time going through a
“large number of sources” test as well as a comparison test with Shoutcast.
All our load testing reports can be found here.
Icecast Release 2.3.0
We are pleased to announce the next release of Icecast.
Downloads:
New features for 2.3.0
Intro file support - per mount settable
Intro files will play when a listener first connects to a stream. This is designed for station
jingles and the like. If you don’t broadcast in ogg vorbis, you must make sure the
bitrate/samplerate/number of channels match up to your stream.
On-demand relays, global and per-relay settable
On demand relays only connect to the relayed content when there are listeners attached to the
relay. This can save bandwidth in certain cases.
Fallback to file, extends on the intro file handling
With this feature, you can specify a “fallback file” which will be played in a loop and sent
your currently connected listeners in the event of a source client disconnect. This means your
listeners stay connected while you fix your disconnect problem. Same rules regarding
bitrate/samplerate/number of channels apply as with intro files.
New mount-level settings
- public, type/subtype, genre settings, stream description, stream url, stream name,
bitrate (override what is sent from the source client)
- mp3 metadata interval
- on-(dis)connect scripts can be stated per-mount, invoked at source start/stop and take 1 arg which is the mountpoint.
New URL listener authenticator
This delegates your listener authorization to an external application. URL calls are made on
listener connect/disconnect as well as source connect/disconnect. It is meant for large
broadcasters who have existing authentication systems that need to be integrated into. Included
is an example php-based application that can be used in conjunction with the url authenticator to
manage a simple subscription-based broadcast.
Other new features:
- HTPasswd authenticator uses in-memory structures now
- On demand files now can be fed through an authenticator
- Streaming support for OGG Speex, OGG Flac, OGG Midi
- Update to admin/web xslt interface
- Icecast can now be installed as a win32 service
Fixes for 2.3.0
- real/helix works
- win32 access log correct
- stats client is stable now (curl -X STATS http://admin@host:port/)
- show mountpoints on stats that are inactive but have an active fallback
- more updates over HUP possible
- improved stability under heavy load
- moving clients will no longer sometimes deadlock the server
- avoid small writes to reduce TCP overhead.
Load Test Report
We’ve done a load test of our soon-to-be released Icecast 2.3 to hopefully answer some
of the questions that have popped up recently about Icecast’s ability to work in high
traffic situtations.
This report can be found here.
Icecast Release 2.2.0
On the heels of version 2.1.0, we are releasing 2.2.0 with some new key features.
New features for 2.2.0 (in no particular order)
Theora Video support
Icecast now supports video streaming via theora. Currently, we require the latest
(alpha 4) version of libtheora. This is an optional compile, so if you don’t have
theora then Icecast will safely ignore it.
Shoutcast style source client support
Icecast now supports the connection protocol used by the Shoutcast DSP source client.
This is the same connection protocol used by their NSV encoding tools. This means that
not only can you use the Shoutcast DSP to stream to Icecast, but that you can also
stream NSV via their tools.
AAC is added as a supported streaming format
Not too many source clients support streaming in this format, but we support it.
Cluster password
Now you can specify a cluster password as a option in the config. This will allow you
to cluster multiple servers/mounts into a single listing on the stream directory. Note
that this is different than “grouping” which groups together streams coming from the
same physical IP and with the same stream name. Clusters are meant for relays of the
same stream and will only be listed once in the stream directory. When a listener
tunes into a cluster, they will be served an m3u file with all the clusters for that
stream.
Playlist Log
This is an option setting that will create an audit trail of metadata that comes through
Icecast. It is a single file that contains information for all mountpoints.
Range Support for static files
We now support seeking in files served off the icecast fserve.
Metadata Update via Admin
We now support metadata updates via the admin interface for both MP3 and Ogg Vorbis streams.
Per mount hidden stats and YP prevention
You many now indicate certains mounts to be excluded (i.e. hidden) from the main status.xsl page.
This is useful when using local private relays. You can also override the YP setting (as in disable)
on a per-mount basis. Also useful for local private relays.
Multiple example config files
We now have multiple config files for you to use as a base. A “simple” one for quick-start, and a
more detailed “advanced” one with all the features, as well as a “shoutcast compatable” one, which
shows how you’d config for using the shoutcast DSP.
Relay user/pass
You can now specify authentication used by a relay. This is for the case where you have listener
authentication enabled for a mountpoint, and want to connect a relay to it.
Download Icecast 2.2.0 from the download page.
Icecast Release 2.1.0
After about 8 months in development, version 2.1.0 of Icecast has been released.
New features for 2.1 (in no particular order)
Listener Authentication
Icecast now supports listener authentication. This provides a mechanism for creating/maintaining
users and passwords for listeners. Currently, we only have implemented a simple, file-based storage
for users and passwords. New authenticators are on the horizon (such as URL-based or possibly
MySQL based) New admin pages were also added for the maintenance of users/passwords. Please
check the docs for a more detailed description of this new feature.
Multi-Level Fallbacks
Multi-level fallbacks allow for specifications of a series of fallback mounts that you can use
to automatically move listeners in the event of a source being disconnected. In the event of
new listeners attaching to the source stream that has been disconnected, they are routed to
the fallback mount (if specified). Icecast now has fallback-override capability as well which
means that in the event of a source stream failure, listeners are moved to the fallback mount,
and then automatically recaptured when the original source stream returns.
Burst-On-Connect
This is an new, optional config setting which will send a initial burst of data to connecting
listeners. This has the effect of reducing (significantly) the startup buffer latency from the
end-user perspective. This option is enabled by default.
New enhancements for 2.1
Update to admin interface
This interface has been cleaned up quite a bit and made a bit nicer.
Rewrite of the YP listing code
The icecast yp code has received a complete overhaul by karl, and it’s
a much more stable and failure-resistant implementation.
Lots and lots of bugs fixed
Check the ChangeLog for a complete list of these…
Download Icecast 2.1.0 from the download page.
Icecast Release 2.0.2
This patch release fixes an exploit found by Luigi Auriemma.
We recommend that all users currently upgrade to this patch release.
Download Icecast 2.0.2 from the download page.
Icecast Release 2.0.1
This patch release fixes a overflow buffer which can cause server crashes under
certain circumstances. This release contains ONLY the fix for this issue. We are
still targetting a 2.1.0 release with new features and functionality in the
near future.
Download Icecast 2.0.1 from the download page.
IceS Release 2.0.0
After far too long in development and testing, the icecast development team has
released Ices version 2.0.0. Ices is a source client for Icecast streaming media
server. It takes audio from one of the defined inputs and (re)encodes the audio
for streaming to icecast for listeners to pick up.
Download Ices 2.0.0 from the Ices page.
Icecast Release 2.0.0
After years in development and years in alpha testing, the Icecast development team
has released version 2.0.0 of its streaming media server. Icecast2 supports Ogg Vorbis
and MP3 streaming and has many features and functions you would expect from a world
class streaming media server.
There are more things to come from the icecast development team, and we have many new
features just waiting to be implemented.
Download 2.0.0 from the main download page.
In addition to the new release, we have re-vamped the icecast.org website to hopefully
make things easier to access and to get at the information you need faster.
Please let us know what you think.
Broadcasting Contest
Well I’ve been thinking about running a contest for a long time now, and here’s the idea: I
will offer broadcasting space on my machine (which is connected on a very high speed connection)
to the top 5 broadcasters from this contest. I haven’t worked out the details, but the idea is to
have some period of time for which anyone can try out their djing skills, and then based on listener
feedback and number of listeners, we’ll choose the top 5 (or some other number) of broadcasters and
offer them space to broadcast from. So anyone out there is eligible for this - and I encourage those
who don’t have the ability to broadcast now to apply!
Email me at barath@icecast.org or email team@icecast.org
Posted
Apr 10, 1999 by
Barath Raghavan —
Permalink
Icecast Release 1.1.4
There’s no reason to delay this release, so icecast 1.1.4
is out the door.
Read the changelog for more information.
Posted
Apr 1, 1999 by
Barath Raghavan —
Permalink
Hooking up with Green Witch
Great news! I have just hooked up with the Green Witch folks so that I can dedicate more time to icecast as well as get it some minor funding while keeping it GPL. icecast will remain GPL and owned by the individuals who have written it.
Read more at http://www.greenwitch.com/press/ice-4199.html.
Posted
Apr 1, 1999 by
Jack Moffitt —
Permalink
Article in Entertainment Weekly
There is an article in entertainment weekly about us and shoutcast :)
Here’s a scanned version of the article here
Posted
Mar 29, 1999 by
Barath Raghavan —
Permalink
Mixmaster Mike live
Just thought I’d let everyone know that Mixmaster Mike himself is on live via icecast.
Try the 56kbps version or the 24kbps version.
Also in attendence are some other famous DJ’s…
enjoy.
Posted
Mar 25, 1999 by
Jack Moffitt —
Permalink
SxSW
SxSW was awesome. I got to meet a lot of artists and small labels, and I had some really
interesting conversations with some really interesting people. The Green Witch received a
lot of new content and we broadcasted a lot of it live from the floor.
In other news, 1.3 is coming along quite nicely, and maybe we’ll have something out there
for you to yell at us about any day now. :)
Posted
Mar 23, 1999 by
Jack Moffitt —
Permalink
South by Southwest
Right now Jack has finished up a day at South by Southwest
in Austin, Texas.
He’s there presenting with the folks from the GreenWitch who were generous
in sharing booth space with us.
Hopefully we’ll have some reports back from him soon.
Posted
Mar 18, 1999 by
Barath Raghavan —
Permalink