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/<sid>/
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/<sid>/ 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 <songtitle> 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 <soon/> 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 <peaklisteners> and <streamhits> fields to mimick v1 DNAS handling
Disabled the <webdata/> 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 <NEXTSONG> 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
