SC_SERV v2 Build 29 ------------------- 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 SC_SERV v2 Build 28 ------------------- Added listen.asx to the /listen* playlist options available (so now pls, m3u and asx are available on a stream) Added detection of sc_serv.ini if no configuration file was passed on loading (detects v1 configuration files) Added 'type=xml' parameter to the 'updinfo' action to allow for v2 style XML metadata titles to be manually done Changed streampath handling to allow '/' to be used again (was disabled in build 27) Fixed kicking of listeners failing to respond / taking multiple attempts to react Other miscellaneous code changes, improvments and related documentation updates SC_SERV v2 Build 27 ------------------- Added ability to create, update and remove authhashes via the administrator summary page (accessed from admin.cgi?sid=0) Added reporting of per-stream and total server listener counts on admin.cgi or admin.cgi?sid=0 Added 'streamw3clog' option for per-stream logging with fallback to 'w3clog' if not specified Added 'faviconfile' and 'faviconmimetype' to allow for a local icon / image file to be served as the favicon.ico for the server webpages Added 'robotstxtfile' to allow for a local robots.txt to be served as the robots.txt for the server Added supporting features for in-stream artwork (related to March 2011 protocol changes) with online verions viewable via 'admin.cgi?mode=art&sid=#' for admins to check (see documentation for usage) Added /stats?sid=# to allow easier access to the stream information (this mirrors admin.cgi?sid=#mode=viewxml&page=1) and is the effective replacement of 7.html Added 'hidestats' to allow disabling of the new /stats?sid=# mode (see documentation for usage) Added 'admin.cgi?mode=rotate' and SIGHUP support to rotate 'logfile', 'w3clog' and 'streamw3clog' whilst sc_serv is running (see documentation for usage) Added ability to restart a kicked relay source via the administration pages Added 'relayconnectretries' to control how many times a relay attempts to reconnect to the specified source before it is failed Added a 5 second refresh delay when 'admin.cgi?mode=reload' is used and results in changes to source connections / relays unlikely to be displayed immediately Added back clickable link support for IRC stream entries on the administration pages only if the IRC stream entry begins with irc:// Added UNIQUELISTENERS to admin.cgi?mode=viewxml to complement REPORTEDLISTENERS (as the server status pages display) Added STREAMPATH to admin.cgi?mode=viewxml for pages 0, 1 and 6 to show the 'streampath' of the specified stream configuration otherwise will output /stream// Changed the ban action for connected clients on the administation pages to also kick the client connection used for the ban action Changed accessing stream and root urls (i.e. http://ip:port or http://ip:port/stream/1) in a browser to show the html pages (index.html) instead of providing the stream (replicates v1 DNAS behaviour) Changed the /listen* handling to improve auto-filling of the server IP in the generated playlist files Changed the /listen* handling to attempt to provide a title much like the YP generated playlist files instead of just an address Changed the delimiter in file paths read from the configuration file to be converted to the correct format for the OS being used Changed the admin.cgi?mode=viewxml action to return a slimmer xml response compared to prior builds (to save more bandwidth) Changed the rotate action to reset the 1 day delay until the next automatic rotation if a rotate is manually run Changed how the SHOUTcast Directory metadata puller / tester is handled in client statistics to no longer skew listener totals Changed how the version of the DNAS is reported to make it more like the v1 DNAS as well as fixing it not being reported in some error response Removed REPORTEDLISTENERS from admin.cgi?mode=viewxml for pages 0 and 1 as it duplicated the CURRENTLISTENERS entry Removed POINTER from admin.cgi?mode=viewxml for page 3 as it duplicated the UID entry Removed direct support for specifying 'relayport' and 'relayserver' (though if found then they are mapped to streamrelayurl against streamid=1 and will be removed if using configrewrite=1) Fixed 'autodumpsourcetime' and 'streamautodumpsourcetime' not being applied correctly especially if either were set to 0 Fixed usage of 'streampath' in the listen playlists generated to ensure the formed playlist entry will work where possible for client connections Fixed connection issues with YP directory listings when no 'streampath' is specifed (now ensures /stream// is set as the path so connections will be made against the correct stream) Fixed some client connection issues when 'streampath' has been specifed (could lead to sid=1 being played even if the streampath_2 was attempted) Fixed non-english title compatibility with v1 sources i.e. titles with accented characters, was leading to title issues (also affected legacy DNAS builds) Fixed some specific stream configuration issues with not all values being correctly mapped to the expected stream configuration Fixed 'admin.cgi?mode=viewlog' to escape the log file contents correctly so appears correctly in the html output Fixed issues with 'admin.cgi?mode=reload' where it could cause a lockup (non-Windows versions), caused incorrect removal of a configuration groups, source password changes not always applied, relays not being updated or started in all cases Fixed logfile not being correctly set if no config file is passed but a selection is then made from the list shown Fixed kicking and banning not working in some cases Fixed issues handling invalid stream id values on source counnection attempts Fixed crash when attempting to use configuration groups where 'streamrelayurl' contains an url Fixed incorrect loading of some v1 DNAS boolean based configiruation options Fixed 'allowrelay=0' from preventing connection attempts to be made to the YP directory when there is no relay Fixed crash when changing a stream's authhash and then doing a configuration reload Fixed 'include' not working with some relative file paths e.g. include=sc_serv_debug.conf when include=.\sc_serv_debug.conf worked Fixed listen.m3u not always providing a valid stream url especially when using 'streampath' Fixed 'configrewrite' to no longer write some old / invalid configuration options when enabled Other miscellaneous code changes, crash fixes, improvments and related documentation updates SC_SERV v2 Build 19 ------------------- Changed password handling to not allow 'password' to be the same as 'adminpassword' with relevant checks on the per-stream passwords Changed Ultavox 2 Winamp clients (typically prior to v5.60x) to receive a v1 SHOUTcast stream instead of an Ultravox 2 stream to resolve missing stream titles Changed some of the reported details in the http headers used for SHOUTcast 2 (Ultravox 2.1) streams Changed the stream admin page to also report the user agent of the connected clients Fixed some more issues with password handling related to the changes in builds 17 and 18 SC_SERV v2 Build 18 ------------------- Added prompt for configuration file to load if one is not specified or there is an error loading the configuration file in non-daemon / service mode Fixed some admin options not working due to password related changes in the previous release e.g. prevented legacy client title updates Fixed loading issues on non-Windows versions related to the handling of the banned and reserved IP files SC_SERV v2 Build 17 ------------------- Added per stream versions of the following configuration options (prefix with 'stream' to use them in addition to the master options e.g. streampassword): password, adminpassword, publicserver, allowrelay, allowpublicrelay, riponly, autodumpsourcetime, autodumpusers, listenertime, songhistory, uvoxcipherkey, introfile, backupfile, banfile, ripfile Added 'logclients' configuration option to allow for client connections and disconnects to not be logged (default behaviour is to log these events) Added summary administration page accessed via admin.cgi or admin.cgi?sid=0 instead of going to the default stream summary page (only works with 'adminpassword' access) Added '&iponly=1' support to 'admin.cgi?mode=viewxml' so listener stats (in standard mode or when using &page=3) will only output the listener's IP address instead of all other information Changed 'admin.cgi?mode=reload' to only be available via the new summary administration page instead of on each stream administration page Changed the /currentsong and values to be a formatted title as 'artist - title' if the v2 stream source metadata allows instead of just showing 'title' Changed the /listen* actions to auto-fill the server IP in the generated playlist files if 'dstip / destip' is not set so the playlist is more likely to be valid Changed the /home action to open the stream url in a new window / tab instead or replacing the current view of the admin pages Changed the server to not load if appropriate passwords have not been specified (including per stream configurations) to improve security especially with per-stream password support Changed the title produced for v1 clients to be 'artist - title' instead of 'artist - album - title' to resolve some legacy client related issues Changed some of the admin page text spacing and other misc html changes Changed administration pages to not allow access to the 'tail logfile' and 'view logfile' pages when using 'streamadminpassword' to prevent information from other stream configuration groups being seen Fixed the Ban and Reserve IP administration actions to not re-add an already banned or reserved IP (overlap of single vs subnets still happens) Fixed stream configuration options not being applied correctly when using the plain name (without _X on the end) for streamid=1 configurations Fixed /stream/sid client access not working correctly if an invalid station id (sid) was passed on the connection attempt Fixed the root index.html page occassionally reporting streams as available when they are not Fixed 'admin.cgi?mode=reload&sid=#' not always updating or removing stream configurations correctly despite reporting it had especially with streamid=1 changes or the source password changed Fixed YP2 connections not following the 'yptimeout' configuration option Fixed 'admin.cgi?sid=#&mode=updinfo' only updating the default stream configuration instead of the stream configuration required Removed invalid link for the IRC stream entry on the administration pages Updated Configuration Builder to latest version Updated documentation to reflect new options and related errata SC_SERV v2 Build 14 ------------------- Improved handling of the mimetype reported by legacy mp3 sources to improve usage of v1 sources (maps more mimetypes to audio/mpeg as applicable) Added /nextsongs?sid=# to show the next coming songs in an xml form (if known) when using a compatible v2 stream source Added 'admincssfile' option to allow for using v1 DNAS / SHOUTcast 2 / custom css styling of the index.html and the admin pages (check documentation for usage) Changed 'admin.cgi?mode=reload&sid=#' to also update 'password' and 'requirestreamconfigs' Changed 'configrewrite=1' to not output 'include' on exit Fixed Windows version logfile path generation if none or an invalid configuration file is passed (relates to change of default logfile path to %temp%\sc_serv.log in previous build) Fixed Windows service not running and being identified as sc_trans in the system event logs Updated some of the example configurations to resolve issues with platform specific path handling Updated Configuration Builder to latest version SC_SERV v2 Build 13 ------------------- Added 'streammaxuser' to the stream configuration group options to allow for a per stream limit with 'maxuser' still ensuring a maximum client limit on the server Added support for wildcards via the 'include' feature e.g. 'include=stream/*.conf' to allow for a specific file for each stream configuration on the server Added a new 'admin.cgi?mode=reload&sid=#' mode to the administration support which will make the server reload its stream configurations by adding / removing / updating any streams on the fly where it can (unless '&force=1' is also passed) otherwise it will kick sources and clients as applicable Added YP connection status on the 'Server Status' message on index.html and the admin page to make it easier to see if a YP connection on a public server exists Added more information to the log generated to indicate if a YP connection has worked or not without having to enable debugging in the configuration file or completely cryptic messages Added &page=5 additional param handling to the admin.cgi?mode=viewxml stats action to provide the currently held metadata of the playing song (amount of information depends on the source and what metadata it provides) Added &page=6 additional param handling to the admin.cgi?mode=viewxml stats action to provide the currently known stream configurations (amount of information depends on the number of stream configurations specified) Added Configuration Builder (see config_builder folder) as a graphical way of making working configuration files (in combination with forum user thinktink) Now ships in linux 64-bit - is identified as 'posix(linux x64)' with the 32-bit version now identified as 'posix(linux x86)' Changed YP2 connection failures to be reported more clearly instead of an obscure /yp/resp/updatefreq missing error or requiring 'yp2debug=1' to be enabled Changed default location of the log file on Windows installs to %temp%\sc_serv.log instead of c:\sc_serv.log (resolves some issues on Windows Vista / 7 and write permissions) Changed pvt_update(..) to not spam the logs when 'yp2debug=1' is enabled in the configuration file if a connection attempt to the YP2 fails Changed http header checks to allow empty values from a 'key:value' pair to resolve some client connection issues Changed the 'Server Status' message on the index.html and the admin pages to show 'There is no source connected or no stream is configured for stream #X' when the stream is not active or there is no source connected Changed the reported configuration file on the index.html and the admin pages to be the base file loaded instead of the last included file if 'include' is used in the configuration files Changed handling of v1 sources to autofill the aim, irc and icq entries with N/A or 0 as appropriate if not set in what the source sends to the server e.g. Nicecast on Mac Fixed an api dependency issue preventing this from running on Windows 2000 Fixed /nextsong?sid=# to show the unescaped version of the metadata tag if received from the source Fixed clients trying to connect via Ultravox 2.0 (e.g. Winamp 5.5x and older versions) not being able to connect or causing non-Windows versions of the server to terminate incorrectly Fixed logging not working when passing certain invalid configuration files Fixed admin.cgi?mode=resetxml not working - now will reset and fields to mimick v1 DNAS handling Disabled the block in the admin.cgi?mode=viewxml stats (as well as via the &page=2 additional param) for the time being Disabled some of the admin.cgi?mode=viewxml stats entries not currently being filled in just to cut down on unnecessary bandwidth usage - better use the &page=# option to get specific sets of stats instead of all in one go to keep bandwidth usage down Updated documentation based on user feedback and related changes, added sc_serv_simple.conf as an ultra simple configuration example, minor other issues & changes made SC_SERV v2 Build 10 ------------------- Now ships in BSD 8.x and Windows 64-bit Added 'next song' to the stream + admin pages Added a disconnect message indicating the duration, number of bytes sent and agent of the connection being closed Added a current and next song pages (/currentsong?sid=# and /nextsong?sid=#) along with in the xml report for consistency Added description for the Win32 service so it's clearer the service is ours Accessing any admin / info pages with no stream id or the stream id is less than or equal to zero will show a summary of any available streams (if there are any) Fully enabled SHOUTcast 2 (Ultravox 2.1) protocol support with server output (used with YP2=1 in config and a compatible connecting client) Changed 'yp2' configuration setting default to 'on' Changed config handling to close sc_serv if not set or missing / invalid Fixed locale issues preventing sc_serv from loading without changing the machine's locale (non-Win32 issue) Minor log message changes to sort of standardise the message style Fixed segfault issue when attempting to connect to YP2 (may have been an internal thing, not sure) On Windows versions 'ctrl + break' is now handled as a valid quit command instead of just having the running instance closed Upgraded libraries to use expat-2.0.1