SHOUTcast DNAS Changelog

What's new in SHOUTcast DNAS 2.6.1.777

Feb 1, 2022
  • Added native SSL support for https streams (Linux only)
  • Added support for 32-char GUID-style authhash (legacy 20-char authhash still supported)
  • Added official & documented support for streambackupurl
  • Added additional parameters for more detailed statistics in Radiomanager
  • Changed all directory links to point to directory.shoutcast.com
  • Changed internal links for old rmo to new radiomanager
  • Changed from SHOUTcast to Shoutcast :-)
  • Fixed bitrate reporting accuracy issues
  • Fixed intro/fallback dropping issue caused by an extra byte bug
  • Fixed peak listeners reporting accuracy issue
  • Improved: Always send public ip & port to YP to better accomodate ip changes
  • Improved: flex-break support & pause handling for ad-breaks
  • Improved: increase the overall timeout for YP requests
  • Improved: scalability (support up to 12k listeners)
  • Improved: Send aac & mp3 format version info to YP
  • Improved info messaging in DNAS window, e.g. when stream updated/added to directory
  • Log message cleanups
  • Optimized directory response time and message functionality
  • Unblock streampaths beginning with /7
  • Various monetization-related, general stability and other minor bug fixes

New in SHOUTcast DNAS 2.6.0.753 (Jul 23, 2019)

  • Premium 2.6 features:
  • Native SSL stream support (https)
  • Personal & Customisable SSL Certificate
  • Improved scalability (support up to 12k listeners)
  • Improved backup stream url support
  • New authhash system for 2.6 and higher only
  • Premium radiomanager control panel support
  • Improved monetization features and trigger methods
  • General bug fixes (free and premium versions)

New in SHOUTcast DNAS 2.6.0.750 (Dec 7, 2018)

  • Premium 2.6 features:
  • Native SSL stream support (https)
  • Personal & Customisable SSL Certificate
  • Improved scalability (support up to 12k listeners)
  • Improved backup stream url support
  • New authhash system for 2.6 and higher only
  • Premium radiomanager control panel support
  • Improved monetization features and trigger methods
  • General bug fixes (free and premium versions)

New in SHOUTcast DNAS 2.6.0.748 (Nov 14, 2018)

  • Premium 2.6 features:
  • Native SSL stream support (https)
  • Personal & Customisable SSL Certificate
  • Improved scalability (support up to 12k listeners)
  • Improved backup stream url support
  • New authhash system for 2.6 and higher only
  • Premium radiomanager control panel support
  • Improved monetization features and trigger methods
  • General bug fixes (free and premium versions)

New in SHOUTcast DNAS 2.6.0.747 (Nov 1, 2018)

  • Changes:
  • Premium 2.6 features:
  • Native SSL stream support (https)
  • Personal & Customisable SSL Certificate
  • Improved scalability (support up to 12k listeners)
  • Improved backup stream url support
  • New authhash system for 2.6 and higher only
  • Premium radiomanager control panel support
  • Improved monetization features and trigger methods
  • General bug fixes (free and premium versions)

New in SHOUTcast DNAS 2.5.5.733 (Oct 10, 2017)

  • Improved codec handling
  • Allow for per-SID logging (eg streamlogfile_2=...)
  • Improved rate limiting for SC2 clients
  • Allow better scaling with multiple SC2 streams
  • Improved header parsing in a few odd cases
  • Log message cleanups
  • Fixed wrongly reported "vbr" stream
  • Fixed hang on intro/backup files
  • Fixed relay getting stuck as inactive
  • Fixed pre-roll content via auth for SC2 clients
  • Fixed various rare crash cases
  • Updated internal libraries to more recent releases:
  • Updated: libcurl 7.53.1
  • Updated: OpenSSL 1.1.0e
  • Updated: zlib 1.2.11
  • Updated: expat 2.2.0

New in SHOUTcast DNAS 2.5.5.732 (Sep 5, 2017)

  • Improved codec handling
  • Allow for per-SID logging (eg streamlogfile_2=...)
  • Improved rate limiting for SC2 clients
  • Allow better scaling with multiple SC2 streams
  • Improved header parsing in a few odd cases
  • Log message cleanups
  • Fixed wrongly reported "vbr" stream
  • Fixed hang on intro/backup files
  • Fixed relay getting stuck as inactive
  • Fixed pre-roll content via auth for SC2 clients
  • Fixed various rare crash cases
  • Updated internal libraries to more recent releases:
  • Updated: libcurl 7.53.1
  • Updated: OpenSSL 1.1.0e
  • Updated: zlib 1.2.11
  • Updated: expat 2.2.0

New in SHOUTcast DNAS 2.4.7.256 (Apr 4, 2015)

  • Added multiple 1.x source client support
  • Added ability for listeners to be provided the 'backupfile or 'streambackupfile' when no source connected
  • Added 'backuploop' and 'streambackuploop' options (default = 0 to keep looping) for controlling the number of consecutive backup file play loops
  • Added 'backuptitle' and 'streambackuptitle' options for use with the no source backup file support
  • Added validation of the passwords to ensure the colon character is a special case that is not used
  • Added a server admin page to show the advert group details of the currently active streams as well as the status of advert pulls
  • Added visual indication whether a client may play adverts and if it has played any adverts
  • Added extra parameter checking of the banning / reserved IP actions (including fixing a DNAS lockup / crash due to bad data in some cases)
  • Added banning a client connection by IP / DNS to also block access to most of the API methods from the server
  • Added better debug logging of the banning / reserved client access control
  • Added server admin page to allow for toggling the debug options on / off whilst the DNAS is running without the need to manually edit the config file
  • Added options to enable / disable all of the debugging options on the server admin page
  • Added 'streamlisted' and 'streamlistederror' (if applicable) to the stats responses for getting the stream's listed status
  • Added automatic downloading of newer DNAS builds and related changes to the new version update messages
  • Added auth / metrics / adverts traffic to the bandwidth tracking page and methods
  • Added checks to prevent trying to publically list un-supported streams e.g. OGG Vorbis and NSV which are now marked as private
  • Added the uptime indication to all of the admin pages for better consistency
  • Added extra handling to better detect the stream bitrate from sources (primarily Icecast relays)
  • Added clearing the cached stats / playlist responses to the 'clearcache' admin method
  • Added a generic html5 audio player to the bottom of the stream summary and admin summary pages as a quick way to check what the stream is playing (mp3 streams only and relies on the browser default implementation)
  • Added caching of the public stats and other commonly accessed pages and resources (1 sec) and playlist (5 sec) responses from the server to improve response times under heavy loads
  • Added 'startrelays' and 'kicksources' admin modes for batch starting configured relays and batch stopping of all connected sources
  • Adding a lot of extra parameter validation based on reproduceable crashes and input validation failures
  • Added support for additional genres on the appropriate DNAS pages, api responses and listener connections (how to access this will follow later)
  • Added basic support on the Linux build to get some form of crash report with it creating a file like /tmp/sc_serv_segfault_.log (where is the process id)
  • Added better debug output for tracking transitions into and out of the advert plays as well as the number of successful plays
  • Added a debug column when admetricsdebug=1 is set for better tracking of advert issues in addition to the tooltip shown in the connected column
  • Added 'referer' and 'x-forwarded-for' values to the listener stats api responses (user request)
  • Added option on the server admin summary page for manually checking for new versions of the DNAS
  • Added the current log and conf files to the server admin summary page so it is easier to see what is being used
  • Added extra 1.x source title UTF-8 conversions which should improve handling of non UTF-8 titles
  • Added support to provide PSAs for listeners assigned an advert group but there is available advert group to play on advert triggers
  • Added better checking of advert inserts and frame syncing for AAC based streams to improve playback
  • Added better memory handling which reduces per-listener and web request memory usage by up to 50% (primarily via structure re-packing and reducing duplication)
  • Added support for new YP requirements and interaction
  • Changed handling of relays from other 2.x DNAS to reduce CPU usage when active (gives a 50% CPU reduction on the RPi build!)
  • Changed when successful title updates are logged to avoid confusion if it subsequently fails
  • Changed the public stream status page (index.html?sid=0) to show a bit more information about the active streams
  • Changed the public status page text for YP error code 480 to make it clearer why a stream is not listed
  • Changed the log level for bad title updates from error to warning
  • Changed some of the threading error messages to be more consistent
  • Changed all static images provided by the DNAS to come from /images/* for improved caching and speeds up some page loads
  • Changed 'server' to 'stream' where appropriate on the public and admin pages for better consistency
  • Changed 'admin login' to 'stream login' and some other related changes for better consistency
  • Changed invalid bitrates from the source to be reported as 'unknown' instead of '0'
  • Changed the http handler hand-off to the admin.cgi handler to save some compute cycles (micro-optimisation)
  • Changed the ordering of the http page handling to detect commonly used pages a bit quicker (micro-optimisation)
  • Changed the ordering of the http requests and checks done to speed up commonly accessed pages (in-addition to caching changes)
  • Changed some of the curl instances to only be created when actually needed and to not be done for private stream instances
  • Changed the advert title display on the song history page to make it clearer what is sent to the clients to make it clearer when an advert title trigger was received and what the listener is sent once its processed
  • Changed the error messages when core authhash values are missing in the YP responses instead of showing a generic 400 error message
  • Changed 'streampath' handling to filter some inappropriate values seen including self-referencing addresses
  • Changed the flow of things in the HTTP request handling to reduce the processing time of such requests
  • Changed some common listener response strings to be initialised once instead of every time
  • Changed title updates to filter out duplicate title updates where applicable
  • Changed all url / ip config value checking to be done consistently and applied to all applicable cases
  • Changed the Windows builds timer resolution to a preferred method which will not affect the system wide timer resolution (that was a bad thing to be doing)
  • Changed the station name link to shoutcast.com to use the now preferred method
  • Changed the 'songhistory' default from 10 to 20 to provide an average of an hour's song history
  • Changed the 'metainterval ' default from 8192 to 16384 to better match other broadcasting platforms
  • Changed the display of the log / config files on the admin pages to just show the filename and not a complete / partial filepath with the full path as the tool tip for the items
  • Changed to show the relay icon for Icecast connections on the listener list so all known relays are clearly visible
  • Changed to cache the user-agent of the valid client connection to save re-querying them in other parts of the DNAS
  • Changed 'stream url' to 'website' on the stream summary and admin pages
  • Changed the timeout for advert pulls to resolve a number of pull failures
  • Changed the server sources page layout and added some additional information and reference links
  • Changed the ordering of some of the options on the server admin summary page
  • Changed logging output to ignore some empty messages that were incorrectly being generated
  • Changed internal handling of logging to reduce it's resolution which provides a small CPU usage reduction
  • Change accessing /stats without the 'sid' parameter to follow the 1.x style of stream picking to ensure a valid response is provided
  • Changed how some parts of the server are built to prevent data being modified when it should not
  • Changed w3c log archive name to better distinguish from normal log archive naming
  • Changed the /currentsong and /nextsong responses to not attempt to be compressed as most cases will not be smaller and wastes time to determine this
  • Changed the Windows event log handling when running as a Windows service to remove superfluous information
  • Fixed all reproducible memory and object leaks
  • Fixed not being able to transition back to the stream on source re-connect if a listener is being provided the backup file
  • Fixed crash on close (and possibly during running) when trying to clean-up source and client connections (race-condition)
  • Fixed rare crash on close if processing some of the web requests just after start-up
  • Fixed crash if the listener client could not be created
  • Fixed a number of stability and memory allocation issues under high connection loads (a lot of work for a single changelog entry!)
  • Fixed banning issues which allowed some clients still to connect despite being in the ban list
  • Fixed some rare relay starting failures when using a forced configuration reload
  • Fixed minor issues with the HTML of the admin pages
  • Fixed double-pumping of some title updates via 'admin.cgi?sid=#&mode=updinfo' (mainly affected XML updates)
  • Fixed the refresh page timer showing the DNAS uptime in some instances
  • Fixed a wrong message being provided for some failed SC2 source connections
  • Fixed empty title updates not being allowed (introduced in the last build
  • Fixed some web requests not being restarted correctly in some cases
  • Fixed a number of crashes on closing due to some in-progress web requests not being aborted when needed or under high connection loads at the time of closing
  • Fixed a number of issues if there are issues within libcurl creating connections which could lead to unexpected lockups
  • Fixed redirection failures on invalid ban / reserved list / user-agent admin pages due to poor input data
  • Fixed loop-back addresses being added to the invalid ban / reserved list when already treated as a special case
  • Fixed possible issue with relay failure handling
  • Fixed wrong name being stored in the w3c log archive
  • Fixed anything obvious found from re-checking the source code via valgrind, cppcheck and manual checking
  • Fixed playback skipping issues with WMP due to variations in handling between Windows 7 and Windows 8.x and newer with ICY vs HTTP instances
  • Fixed reserved IP handling not working correctly due to checking the wrong value in some cases
  • Fixed to make sure we do not miss the YP maximum update interval
  • Fixed loading of local files to make use of the relative path fixes (remnent of issues present in 2.4.1 / 2.4.2)
  • Fixed generation of the 'host' header value on relay connections to include the port and clean up the address as per RFC specifications
  • Fixed crash when processing the empty lines after a "HTTP/1.1 100 Continue" header
  • Fixed ID3v1.x tag removal not working correctly on intro and backup file cleanup
  • Fixed adverts not being triggered reliably when using a 2.x based source
  • Fixed adverts not being triggered correctly when running as a private stream in any of the cdn modes
  • Fixed all other reported advert related handling issues
  • Fixed handling of some externally sent admin.cgi requests incorrectly getting a redirect response
  • Fixed 'songhistory' not being updated on a configuration reload
  • Fixed failures to transition into an advert with a 1.x listener client (e.g. format mis-match) then blocking later advert transitions
  • Fixed YP connections from being processed via the auth handling
  • Fixed title updates via 'admin.cgi?sid=#&mode=updinfo' not always working or not being providing the expected HTTP response (affected some LiquidSoap uses)
  • Fixed our OpenSSL and libcurl instances to be built correctly for SNI (Server Name Indication)
  • Fixed the wrong log file being shown and reported as being used if the DNAS has to use it's fallback handling to try to ensure a log file will be generated
  • Fixed display issues of long intro and backup filepaths in the admin pages
  • Updated icons for recognised clients as well as setting a warning icon for some likely stream rippers on the listeners list
  • Updated the YP maintenance code and message reporting
  • Updated to the latest cacert.pem
  • Updated to OpenSSL 1.0.2a
  • Updated to libcurl 7.41.0
  • Removed the experimental 'streamportlegacy' option as this is no longer needed now with the multi-1.x source support that was added
  • Removed the state_GetStreamData debug output for SC1 sources
  • Removed incorrect header message on the debug options page
  • Removed "Connection:close" for some of the admin page actions header response to speed up some page loads
  • Removed the Windows builds dependency on the supporting dlls in the Microsoft.VC90.CRT folder
  • Removed 'autoauthhash' functionality due to coming authhash management changes
  • Removed the authhash removal action due to coming authhash management changes
  • Removed 'email' functionality due to coming authhash management changes
  • Removed SSLv2 and SSLv3 support in our OpenSSL and libcurl instances
  • Remove direct use of gethostbyname(..)
  • Removed AIM, IRC and ICQ support from the web pages and api responses (they have not been supported by the YP for a number of years)
  • Other code cleanup, minor bug fixes, page cleanups and anything else to improve stability, useability and responsiveness of the server

New in SHOUTcast DNAS 2.4.2.167 (Nov 25, 2014)

  • Fixed issues with not finding cacert.pem in the same location as the DNAS program file which was preventing YP connectivity working (2.4.1 build 164 specific)
  • Fixed broken relative config file handling not working correctly with init scripts and 3rd party control panels (2.4.1 build 165 specific)
  • Changed some of the log and admin page output to better show the actual filepath being used for log and configuration files (helpful for determining path loading issues)
  • Changed handling incase the cacert.pem file cannot be found to be more forgiving for the time being (futher changes will follow in later builds)
  • Removed 'Error writing to console' log messages when screenlog=1 (default) and the shell the DNAS was started in is closed whilst the DNAS is still running e.g. due to OS defined timeouts - always use screenlog=0 if running the DNAS and you do not need it sending log output to the console

New in SHOUTcast DNAS 2.4.1.165 (Nov 25, 2014)

  • Fixed the DNAS not finding cacert.pem which breaks all DNAS-YP connectivity due to issues processing relative filepaths

New in SHOUTcast DNAS 2.4.1.164 (Nov 25, 2014)

  • Added features relating to the 'DNAS+ for CDN' streaming solution
  • Added ability to preserve the peak listener numbers for a stream between DNAS sessions e.g. when updating the DNAS (subject to conditions) - this requires the stream being publically listed and will be disabled if found to be abused!
  • Added experimental support to allow streams using 1.x source clients to be able to provide stream branding artwork via 'artworkfile' and 'streamartworkfile' configuration options (this enables basic stream branding artwork support for legacy 1.x based streams subject to client support [as below] - for 2.x based streams, the source should already have the ability to provide the stream branding and now playing artwork)
  • Added ability to provide artwork to 1.x clients via the legacy in-stream metadata system when provided from a 2.x source or when using the experimental support mentioned above (subject to clients supporting this feature - see the wiki for more information)
  • Added 'email' configuration option so hosts can provide a generic contact address (which is used during authhash creation / updates if not manually specified)
  • Changed YP connections to use HTTPS - this means a valid cacert.pem must be present in the same folder as the DNAS program file otherwise the DNAS cannot list streams
  • Changed file permission defaults on non-Windows builds to be more consistent between the different APIs internally used for files created by the DNAS
  • Changed the update notifications to provide extra information where possible about the update
  • Fixed YP connectivity issues introduced during the change over to using libcurl in the 2.2.2 / 2.4 releases e.g. randomly stops updating or prevents the DNAS from being able to close correctly or does not correctly handle cases when the YP is not contactable
  • Fixed handling of custom streampaths with parameters (starting with /; or ; ) always providing stream #1 (using /stream/x/ did not experience this issue)
  • Fixed rare issue leading to high CPU usage when using a single core non-Windows system
  • Fixed rare crash when accessing some of the admin pages on non-Windows builds
  • Fixed some IP formatting issues on the admin pages
  • Removed remaining ICY support so all client connections are now via standard HTTP requets as 2.4 did (ICY was a HTTP-like protocol)
  • Removed the 'disableicy' configuration option for controlling this support (not needed due to the prior change)
  • Updated to support newer YP requirements for authhash handling and listing modes as well as related tweaks to the authhash management pages
  • Updated to OpenSSL v1.0.1j
  • Return of the BSD 8.x build (if people don't use this, then it will be dropped permanently)
  • Other miscellaneous code changes, improvments and related documentation updates (including handling immediate segfaults on start-up)

New in SHOUTcast DNAS 2.4.0.147 (Sep 10, 2014)

  • Added support for the Radionomy advert and metrics platforms so you can earn money from overlaying some adverts on the stream and / or leveraging the online broadcasting tools from Radionomy (this is an opt-in feature and requires a Radionomy account - it does not prevent you using the DNAS like before)
  • Added 'publicip' to be used to specify a DNS / IP value to use for what the YP will see as your server address when 'destip' is used for binding against a non-public value e.g. anything in the loopback address range (see documentation for usage)
  • Added 'alternateports' which can be used to allow for client only connections on port(s) other than 'portbase' e.g. to deal with firewalls blocking client access on some networks
  • Added 'disableicy' to the options handled by the configuration reload action
  • Added 'rotateinterval' to allow for changing the time between automatic log rotations (default is 24 hours) and can be set to 0 to disable log rotation completely
  • Added basic command-line help into the DNAS itself (use /? or --help) which is based on the OS version being used without the need to consult the main documentation
  • Added better handling of the intro and backup files to ensure they match the stream format and will now reject files which do not match the bitrate
  • Changed 'disableicy=1' handling (default behaviour since 2.2.2) to allow 1.x clients which explicitly request in-stream metadata to still receive it e.g. VLC and foobar2000
  • Fixed crash when rotating the log and w3c files (this was mainly seen under Centova Cast installs) and some other log file handling refinements
  • Fixed authhash issues specific to the 2.2.2 release (mainly seen as a 462 error code when trying to use the management actions)
  • Fixed handling of unrecognised loopback addresses causing incorrect addresses in some of the DNAS responses e.g. the listen.* methods
  • Fixed MP3 intro files breaking stream playback (such as causing stuttering or just not playing anything else) when transitioning to the actual audio stream e.g. most Flash based players (this is an issue going all the way back to the v1.x DNAS!)
  • Fixed MP3 streams not starting on a full audio frame (this should improve client compatibility, more so with Flash based players)
  • Fixed the 'Block User Agent' column on the stream admin page not showing the correct action (it could be shown in the 'Reserve Client' in some cases)
  • Fixed repeated admin login prompt when trying to manage an authhash in some cases (mainly if having per-stream admin passwords)
  • Removed specific handling for the deprecated AOL shoutcast.com site / embeddable Flash player (that specific player is no longer officially supported hence removing support for it)
  • Other miscellaneous code changes, improvements and related documentation updates

New in SHOUTcast DNAS 2.2.1.109 (Dec 5, 2013)

  • Completed remaining v1.x compatibility improvements (specifically relating to YP availability issues so clients are now only blocked from connecting if there is no source connected)
  • Added experimental 'streamportlegacy' option to allow for supporting more than one direct legacy v1 source connection to the server (see documentation for usage / limitations)
  • Changed Windows service install / uninstall messages when UAC elevation / admin access is required to undertake the action
  • Fixed issues due to a bug in the handling of the 'useicy' option which is now deprecated and replaced by the 'disableicy' option (see documentation for usage)
  • Fixed reported issues with the 'Source Login Details' page (mainly showing mode availability incorrectly)
  • Fixed missing 'UID' value for client disconnects in the main log output
  • Fixed some clients being incorrectly shown as 'HTML5' client types when they were not on the admin pages
  • Fixed compile issues preventing the BSD build from being built for the prior release
  • Other miscellaneous code changes, improvments and related documentation updates

New in SHOUTcast DNAS 2.0.0.29 (May 29, 2012)

  • Changed SHOUTcast 2 client header to show the DNAS's actual version instead of just 'SHOUTcast 2.0'
  • Fixed SHOUTcast 2 compatible clients only allowed to connect as a SHOUTcast 1 client (build 27 / 28 specific)
  • Fixed more config files being shown than allowed on non-Windows versions when no configuration file specified

New in SHOUTcast DNAS 1.9.6 (Jun 20, 2006)

  • fixed "/content/" exploit #2
  • html in source info