CHANGELOG - GNUMP3d This is the Changelog for the GNU Audio Streamer, GNUMP3d. As a brief summery: v0.1 - v0.9.9.3 Were coded in C v0.9.9.4 - v1.0 Were coded in C++ v1.0 - Current Were coded in Perl 3.0 [ 17th October 2007] - Removed several perl warnings. - Removed password protection as being broken beyond repair. 2.9final [22nd April 2007] - BUGFIX: Movie links are non-broken in the output. - DEVELOPMENT: HTTP Auth Digest Patch. 2.9.9.1 [ 11th September 2006 ] - BUGFIX: file.types is installed. - BUGFIX: gnump3d-top works. 2.9.9 [ 2rd September 2006 ] - LANGUAGES: New Basque translation. - BUGFIX: Theme names may contain underscores. - BUGFIX: Directories are sorted in playlist correctly. - BUGFIX: Search plugin and quality are never sent as cookies. - BUGFIX: "Now playing" identifies multiple connections from the same IP. - CLEANUP: Better Ogg Vorbis Tag handling. - CLEANUP: Suggest a filename for playlists. - CLEANUP: Case-insensitive sorting in several places. - CLEANUP: EXTINF formatting is improved. - CLEANUP: Downsample cache files are less liable to suffer from collisions. - PLUGINS: /info/ now shows playlist information too. - PLUGINS: Massively more flexiable, scalable, and sexy plugin system. TODO - Finish! - DEVELOPMENT: A new collection of test cases. - MISC: Added a more current MIME file. - MISC: The filetypes we understand are now user-modifiable, via the file /etc/gnump3d/file.types 2.9.8 [ 17th November 2005 ] - MISC: New Spanish translation of error texts & etc. - MISC: Updated German translation of error texts & etc. - THEMES: New theme Avalon, from Stan Mulder. - BUGFIX: Random directory selection doesn't result in DOS with no tag cache file present. - BUGFIX: Don't give warnings when sorting by track number. - BUGFIX: /random/directory works on Windows machines too now :) - SECURITY: Remove insecure usage of /tmp. [CVE-2005-3349] - SECURITY: Filter input parameters/cookies. [CVE-2005-3355] 2.9.7 [ 28th October 2005 ] - BUGFIX: The previous release was broken. - BUGFIX: Allow files to start with ... 2.9.6 [ 28th October 2005 ] - BUGFIX: When "disable_tag_cache" is set don't spawn gnump3d-index. - BUGFIX: Still run `gnump3d-index` on startup if given --quiet. - BUGFIX: Playlist play-lengths are correctly displayed now. - BUGFIX: "/COPYING" link is now non-broken - BUGFIX: Process playlist files that share directory names. - BUGFIX: ".ram" files are playlist, not audio files. - SECURITY: Remove XSS attacks. [CVE-2005-3122] - SECURITY: Prevent path traversal. [CVE-2005-3123] 2.9.5 [ 8th September 2005 ] - BUGFIX: Don't stat the file twice in the indexer. - BUGFIX: Have Info plugin handle non/newly-cached items. - BUGFIX: Escape filenames more. - BUGFIX: Allow the 'new_days' parameter to work properly. - BUGFIX: Strip newline characters from tag values. - BUGFIX: Filter user supplied input in 404 page. (XSS). - BUGFIX: MPEG4 tracknumber reading bugfix. - BUGFIX: Avoid warnings about 'sanitizePath'. - CLEANUP: HTML Validation fixes for the playlist plugin. - THEMES: New theme 'Liquid' from Daniel Eiland - THEMES: New theme 'BlueBox' from Aaron Brown - MISC: "Most recent" now shows the time of the songs played. - MISC: The "currently playing files" are cleaned up on Windows 2.9.4 [ 10th May 2005 ] - FEATURES: Updated MP3::Info module to support newer tags. - BUGFIX: Fixed the broken /info/ links from the previous release. - MISC: Fixed typos on 'extra.html' pages. - MISC: Avoid warning due to depreciated use of split in custom playlist. 2.9.3 [ 1st April 2005 ] - CACHING: Allow incremental tag cache updating. - MISC: Show new files instead of new directories. - MISC: Tag support for .WMA files. - MISC: Tag support for .MP4 / .AAC files. - MISC: Be paranoid about cookie values and parameter values. - MISC: Added French language translation. - MISC: Added a couple of new sorting options. - THEMES: Fix the broken link in the footer of the Nomad Theme. - THEMES: Add
tags to the LaFrere theme. - THEMES: Use JavaScript to focus the search forms on all search pages. - BUGFIX: URL Encode files on the random playlist page. - BUGFIX: Fix 'FILENAME' tag computation in the worker children; it was exposing filesystem layout. - BUGFIX: Tag cache reload should happen in the parent. 2.9.2 [19th Feb 2005] - Identical to previous release, issued immediately afterwards due to screwup uploading to savannah.gnu.org 2.9.1 [ 19 Feb 2005 ] - FEATURES: Support .aif/.aiff tag display and processing. - FEATURES: Show .shn files as audio files too. - FEATURES: Show all audio files in the statistics page. - BUGFIX: Applied patch from Martin Lohmeier for broken tag handling. - BUGFIX: Quoting files is handled slightly better. - PLUGINS: Added a new link to serve a random directory's playlist. - MISC: Added '--debug' flag to gnump3d-top. - MISC: Added support for custom META tags to be added, to allow users to customize Content-type, etc. - THEMES: New theme from Jeff Smith 2.9 [ 11th Jan 2005 ] - BUGFIX: Avoid infinate loop when calling /random/ with empty cache file - BUGFIX: Handling sorting of track numbers more intelligently. - BUGFIX: Allow library files to install correctly on Mac OS X - BUGFIX: Correct the rewriting of absolute pathnames in premade playlists - MISC: Added --debug option go gnump3d-index - MISC: Quote command line arguments more safely when invoking commands - MISC: Allow meta information to persist even when downsampling. - MISC: Don't print 'tag cache initialized' when starting. - FEATURES: Allow recently modified directories to be flagged. new config, new_format, new_days, and $NEW for directory_format - FEATURES: Allow URL rewriting when behind a proxy server. - THEMES: Added a new theme optimized for handheld devices. - THEMES: Added new 'Club Nomad' theme. - PLUGINS: Updated the handling of nested directorys in custom playlist - PLUGINS: Updated playing of nested playlists. (esp. for Firefox 2.8 [ 18 May 2004 ] - MISC: Added more comprehensive support for Microsoft Windows - MISC: Don't output 'indexing complete' when running with '--quiet' - MISC: mpc is a valid audio file type. - MISC: Leave playlists which point to external sites alone. - MISC: Test for password files all the way up to the root of the archive. - MISC: Deal with the root directory containing a trailing '/'. - MISC: Added explicit DOWNSAMPLING document. - MISC: Highlight entire row in tabular theme. - MISC: Updated version numbers - BUGFIX: Fix date used for logging to access log. - BUGFIX: Abort with error if indexing program fails. - BUGFIX: Don't hold server socket open in child processes, this fix allows logrotation to function correctly. - BUGFIX: Fixed up playlists which were erroneoulsy empty - BUGFIX: Downsampling treats its arguments case insensitively. - PLUGINS: Allow the configuration file to set the default number of random songs generated via 'random.pm'. - PLUGINS: Custom playlist verified working properly. 2.7 [ 25th March 2004 ] - MISC: New module 'sorter.pm' - MISC: Removed module 'playlist.pm' - MISC: Updated the Debian rcfile, to source /etc/default/gnump3d - MISC: Fixed the display of version on the templates and startup. - MISC: Available themes are sorted upon the preferences page. - MISC: .wma is recognised as an audio file. - MISC: .m4p is recognised as an audio file. - MISC: Make sure each plugin is mentioned in each theme directory. - MISC: Added startup script for Gentoo Linux. - MISC: Allow caching of downsampled files. - MISC: Report perl version on --help and --version output - MISC: New module gnump3d::MD5 - FEATURES: Much improved installation system - FEATURES: Sorting of playlists and track display are *identical* - FEATURES: Enhanced logfile writing, the user may specify the format. - FEATURES: Massive speedup of indexing via file modification date cache. - THEMES: Fixed to use the $RELEASE variable instead of hardcoding. - THEMES: Corrected a couple of typos and HTML errors. - THEMES: Fixed obsolete references to /last/ - THEMES: Font tweaking and cosmetics in default theme. - THEMES: Added new 'SchwartzNGrau' theme by Pat Riehecky - THEMES: Several minor cleanups. - THEMES: dotNet cleanup. - THEMES: Updated version numbers in static pages to 2.7 - THEMES: Removed `simple` - BUGFIX: Don't escape the ':' character. (Broke banners). - BUGFIX: Allow downsampling commands to work case insensitively of filename suffix. - BUGFIX: 'Random Selection' on the directory index links properly. - BUGFIX: Added several new test scripts. - BUGFIX: Advanced playlists contain the track lengths in seconds. - BUGFIX: gnump3d-index has a valid shebang line. - BUGFIX: Searching with no terms returns an error rather than all files. - BUGFIX: Searching on genre fixed. - BUGFIX: XHTML 1.0 output cleanups (default theme only). - BUGFIX: Default preference is to show all file types, not hide them. - BUGFIX: Don't offer to play the prefs panel - BUGFIX: gnump3d-index '--root' argument works correctly. - BUGFIX: Indexing ignores 0-byte files. - BUGFIX: Document log_format, and remove mention of maximum_connections. - BUGFIX: Quieten gnump3d2 debugging output. - BUGFIX: Make sure the 'accept' call succeeds. - BUGFIX: Committed fix from rpmohn for filenames with '.' in their names. - BUGFIX: Persist downsample quality in pre-made playlists. - BUGFIX: Ignore zero-byte sized files when indexing. - PLUGINS: Preferences plugin shows installed languages. (doesn't allow switching; wanna encourage more contributions) - PLUGINS: Now possible to search on artist, album, or song title. - PLUGINS: Browsing by categories such as artist, year, genre. 2.6 [ 16th October 2003 ] Moved to hosting at Savannah / gnu.org - CACHING: Added patch from Solomon Peachy for improved tag caching. - CLEANUP: Remove gnump3d-index, and gnump3d-index.1 on uninstall - CLEANUP: Removed FreezeThaw.pm - CLEANUP: Changed the way the "currently playing" works. - BUXFIX: Escape song and directory names in the info plugin. - BUGFIX: Chop out trailing '/' in banner section if necessary. - BUGFIX: Plugin disabling works properly again. - BUGFIX: gnump3d-index will work with symlink for the root directory - BUGFIX: Sorting works again. - BUGFIX: Movies are displayed correctly. - BUGFIX: Advanced playlists work again - and are optional. - BUGFIX: Switch GID before UID. - BUGFIX: Initialise the tag index after running gnump3d-index, not before. - BUGFIX: URL Encode form submission values in the random plugin. - BUFFIX: Sort directories case insensitiviely. - PLUGINS: The random plugin will includes "Random Directory". - PLUGINS: Added new plugin '/size' to show the size of your archive. - PLUGINS: Search plugin removes XSS attacks properly. - THEMES: Added new theme 'Clean' based upon the layout of steve.org.uk - LANGUAGES: The code is moving towards multilingual support now! - MISC: Fix install permissions. - MISC: rewrote getlibdir to be much neater. - MISC: gnump3d-index will now follow symbolic links correctly. - MISC: 'gnump3d-index --stats' will display more intersting stats. - MISC: Changed the sample downsample lines for the OGG files. - MISC: Most of the startup error messages now contain instructions on fixing the problem. - MISC: .WMV is now marked as being a movie filetype. - MISC: The 'Tabular' theme now has fixed menus. - MISC: Make cookies persist "indefinately". Updates: - PLUGINS: The random plugin honours downsampling settings. - PLUGINS: The currently playing plugin shows the times of tracks - BUGFIX: Escape the HTML banner section. - BUGFIX: Now playing works properly. 2.5b [ 2nd July 2003 ] - CLEANUP: Don't duplicate commented lines in gnump3d.conf.win - CLEANUP: Removed an annoying tracing message. - CLEANUP: Added more links to the new Tabular Theme. - PORTABILITY: Allow gnump3d-index program to be read from gnump3d.conf - PORTABILITY: Run indexing script even on windows. - PLUGINS: Show song tags for the custom playlist plugin. - Added massive optimization for displaying directories with large numbers of files inside them. - Added the ability to ignore song tags via 'hide_song_tags = 1' 2.5 [ 29th June 2003 ] - PORTABILITY: Generate gnump3d.conf.win as part of 'make dist' - PORTABILITY: Added initial multilingual support. - FEATURES: Added configuration option 'tag_cache'. - FEATURES: Use FreezeThaw for the currently playing list. - FEATURES: Added the ability to limit access to a specific referrer. - FEATURES: Added tag indexer as seperate script. - FEATURES: Highlight the matching search terms on the results page. - FEATURES: Show the directory name in search results. - FEATURES: More robust tag handling. - DOWNSAMPLING: Added support for 'default_quality'. - DOWNSAMPLING: Abort aborted connections properly. - MISC: Removed bin/installer - looks like I'm never going to use it. - MISC: Updated version numbers - MISC: Convert root to using '/' characters upon Windows. - MISC: Added support for .m4a files. - MISC: Added 'profile' target to the Makefile. - MISC: Spell checked all the README's and the configuration file. - MISC: Hide the 'lost+found' mountpoint directories. - BUGFIX: Open the access log before dropping privileges. - BUGFIX: Fix OGG Vorbis comment handling. - BUGFIX: '/info' link works for movies too. - BUGFIX: Space characters are encoded correctly to '%20' not '+' now. - BUGFIX: gnump3d-top shows the most popular user agents properly. - THEMES: Added the dotNET theme from MarquiS - THEMES: Each plugin now uses a dedicated template file. - THEMES: Taking advantage of the new flexibility - a new template: Tabular, using pure CSS to make tab menus. - THEMES: Removed 'split' as it was ugly and hard to deal with. - PLUGINS: The currently playing plugin works again. - PLUGINS: The search function will works nicely. - PLUGINS: Highlight the matching search terms on the results page. - PLUGINS: Show the directory name in search results. - PLUGINS: Added new 'random tracks' plugin - PLUGINS: The currently playing works correctly again. 2.4 [ 2nd May 2003 ] - BUGFIX: Make the logfile format really be Apache common format. - BUGFIX: Give error when user-playlists are empty. - BUGFIX: Correctly handle downsample commandlines. (quoting and inserting filename appropriately) - BUGFIX: Sorting by track number works again. - BUGFIX: Always retrieve bitrate and length of MP3s regardless of missing ID3 tags. - BUGFIX: Fixed the currently playing for non-windows systems. - BUGFIX: Password protection works for plugins. - BUGFIX: Directory access works without trailing '/' - BUGFIX: Make the 'isWindows' function work correctly. - BUGFIX: Serve HTTP header for downsampled audio - Misc: Updated the version number(s). - Misc: Record the remote username of visitors within the access log. - Misc: Record invalid login attempts. - Misc: Allways present $LENGTH and $BITRATE - Misc: Added a reaper function to collect zombie children. - Misc: Don't load DB_File under Microsoft Windows systems. - Misc: /now/ and /recent/ refresh every 30 seconds. - Misc: Tested under Microsoft Windows 2000 Professional. (Successfully). - Misc: Content type of web pages is served as UTF. - Misc: Added POD to some of the modules. - Misc: Added .aac as an audio file suffix. - Misc: Url encode filenames. - Misc: Renamed '/last' to '/recent' - Misc: Show song tags for the most recent tracks. - Misc: Added UNTESTED local playback (jukebox) mode. For single files only. 2.3 [ 16th March 2003 ] - BUGFIX: Don't attempt to switch user under Windows. - BUGFIX: Search results take notice of 'always_stream'. - BUGFIX: Search results only contain audio files. - BUGFIX: Report the correct title in the search and playlist plugins. - BUGFIX: Better song tag handling - BUGFIX: stats_args -> stats_arguments - BUGFIX: /playlist/ honours 'song_format' and 'always_stream' - BUGFIX: Make the bug reporting plugin work correctly. - BUGFIX: Better testing of the permissions of our logfile. - CLEANUP: Updated the option handling. - CLEANUP: Insert the correct plugin directory into the config file upon installation. - CLEANUP: /last/ includes the hostname - CLEANUP: Make sure $HOME is defined before using it. - MISC: Added sort by filename to the preferences page. - MISC: Custom playlist feature now displayes nested directories. - MISC: Allow individual songs to be selected with the custom playlist feature. - MISC: Show the release version in the --help and --version text. - MISC: Added song info plugin. - MISC: Document that keys and values may span lines with '\' - MISC: Theme files can now include command output. - MISC: Theme files can now include other files. - MISC: The most popular directories now optionally hides plugin dirs. - MISC: Seeking over HTTP works correctly now. - MISC: Custom playlist functionality is much improved. - MISC: Added minimal currently playing support. - MISC: Added the startup files for Mac OS X. - DOCUMENTATION: Ensure all configuration values are documented. - DOCUMENTATION: Added specific README's for Windows and Mac OS X - DOCUMENTATION: Added a readme to the templates/ directory. 2.2 [ February 3rd, 2003 ] - BUGFIX: Install correctly. 2.1 [ February 3rd, 2003 ] - BUGFIX: Expand $FILENAME - BUGFIX: Password file cleanup. - BUGFIX: Include our own base64 decoding module. - BUGFIX: Include our own mime.types file. - Documentation: Include the INSTALL file in the release. 2.0 [ February 2nd, 2003 ] - Recoded entirely in Perl. - Updated the man pages. - Display the theme creator alongside the theme name. - Use the system-wide 'mime.types' file when serving content. - Added support for serving/streaming movies. - Updated the bug reporting form considerably. Mention privacy too. - Add titles to MPEG files via `basename`.title - Handle allowed_clients/denied_clients with CIDR notation. - Improved the sanity testing. - Support for intelligent playlist re-writing. - Added support for per-client preferences. - Added a test system, and several test scripts. - .title files override all other forms of meta information viewing. 1.0 [ November 30, 2002 ] - MISC: Keep track of the currently streaming songs. - MISC: Optimize CUtility::uc and CUtility::lc - MISC: Optimize CUtility::replaceStrInStr - MISC: Use CUtility::int2str function, which is new, throughout. - MISC: Fixed memory leaks in ID3 tag handling. - MISC: Cleaned up the configuration file. - MISC: Several minor optimizations and cleanups. - MISC: Be more forgiving of user agent identification. - MISC: Use a large buffer when reading stats output. - PLUGINS: Added custom playlist generated plugin. - PLUGINS: Added currently playing plugin. - PLUGINS: Attempt to allow them to build under Cygwin better. - PLUGINS: Allow arbitary plugins to be selectively disabled. - PLUGINS: Search plugin will allow multiple terms. - PLUGINS: Search plugin will highlight matches on the output page. - PLUGINS: Ignore non-readable shared libraries and directories when searching for plugins to load. - CLEANUP: CDirectory::ReadDirectoryRecursively stores directory names. - CLEANUP: Remove .deps and .libs prior to building a distribution. - CLEANUP: Logfiles now record the actual data size served to clients. As well as the HTTP header code served. - CLEANUP: Minor autoconf changes. - CLEANUP: Report errors in the main GUI if files can't be read. - CLENAUP: Limit $FILENAME to the filename minus suffix, and directory name. - BUGFIX: Updated default config file on gnump3d-top script. - BUGFIX: The stats script will report errors to the server via STDOUT now - so permission problems will be caught with ease. Hopefully. - BUGFIX: Fixed big per-connection memory leak. :( - BUGFIX: Playlists don't contain duplicate '//''s. - BUGFIX: Directory limiting for searching is restored. - BUGFIX: Send HTTP status code when serving search form. - BUGFIX: Escape directory names when sending banner. - BUGFIX: Exit cleanly if the socket cannot be bound for listening. - BUGFIX: Fixed crash on unreadable .OGG files. - BUGFIX: Make sure the song+directory names in the 'last' plugin are absolute. - PORTABILITY: Optionally use 'dlopen' interface for loading plugins. (Useful for Cygwin systems). - PORTABILITY: Detect when building under Cygwin. - Updated version number. - Allow the user to control the display order of files in the GUI, and in the playlists via new option 'sort_order'. - Allow the server admin to selectively disable individual plugins via the configuration file. - Changed all mutex protection. - Added hook for passing arguments to the stats program. - Attempt to display hostnames rather than IP addresses when possible. - Track numbers are recognised in OGG Vorbis files. - Serialize incoming requests if we're using paranoid threading. - Don't use any caching if we're paranoid about threading. - Added support for more media types. - Added new 'RedGrey' theme from Rodolphe Quiedeville - Added new 'LaFrere' theme from Rodolphe Quiedeville - Switched to using the GNU regex code. 1.0-pre1 [ August 19th 2002 ] - BUGFIX: Fixed bad HTML in the /versions/ plugin - BUGFIX: Applied patch from FreeBSD ports collection. - BUGFIX: Don't assume a plugin handled the path it said it would. - BUGFIX: Handle broken 'Host:' headers. - BUGFIX: Don't abort if the root directory contains '.'. (Only abort if it contains '..'). - BUGFIX: Strip trailing '/' from root directory if present. - BUGFIX: Updated the contributed RC files. - BUGFIX: Escape '+' characters in file and directory names. - BUGFIX: Make CUtility::splitStr deal with the last entry in the string correctly. - BUGFIX: Correctly close shared library handles if they don't implement our plugin API. - BUGFIX: Strip the '.so' from plugins when initializing them. - CLEANUP: gnump3d-top script decodes URL's prior to display. - CLEANUP: Removed some obsolete config options. - CLEANUP: Moved regular expression class into seperate source + header files. - CLEANUP: Log malformed requests in 'serveDirectory'. - CLEANUP: Improved Makefile.am's. - CLEANUP: Default template is now valid XHTML. - CLEANUP: The split theme is now valid XHTML. - CLEANUP: The simpled theme is now valid XHTML. - CLEANUP: The default HTML is now lowercased to be valid XHTML - MISC: Added dump of loaded plugins to /versions/ output. - MISC: Set the stream URL to something sensible for the WinAmp minibrowser. - MISC: Added optional command line argument '--pid fileName' - MISC: Reopen the logfile in response to SIGHUP. - MISC: Added function to mplib - mp_get_bitrate. - MISC: Record the build date of each file. - MISC: Allow the size of the servering buffer to be tweaked. - PORTABILITY: Reorded headers so that FreeBSD compile works. - PORTABILITY: Fixes for 64bit archs - PORTABILITY: Autoconf stuff may now build without GNU Make. - Updated the version number. - Added new playlist type 'random.m3u' this will behave as a randomized recursive playlist contributed by Mark Howson