File: ChangeLog

package info (click to toggle)
gnump3d 2.9.3-1sarge3
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 2,420 kB
  • ctags: 366
  • sloc: perl: 10,649; sh: 188; makefile: 147
file content (1002 lines) | stat: -rw-r--r-- 42,857 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
	

  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
	


 
  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 <body> 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
	  <aonq05@dsl.pipex.com>
	- Added new option 'recursive_randomize' which will force normal
	  recursive playlists to be randomized also.
	- Updated the gnump3d-config script to use the correct config file.
	  (Debian GNU/Linux specific fix).
	- Added support for downsampling IN PROGRESS..
        - Expand $LENGTH In the templates -> length of the track in HH:MM:SS	
	- User playlists are re-written appropriatly.
	- Added a bug reporting plugin to help people make good bug reports.
	- Link to the new online forums.


  0.9.9.9.2 [Jul 14th 2002]
  	- BUGFIX: Fixed potential bug with CUtility::replaceStrInStr();
	- BUGFIX: Correctly terminate the shoutcast header.
	- BUGFIX: Don't trample on any existing gnump3d.conf file on install.
	- BUGFIX: Fully qualify the string namespace in CBase64.  (GCC 3)
        - BUGFIX: Expand '$BPS' into the bitrate of the tracks.
	- BUGFIX: The track number of MP3's is now available.

	- CLEANUP: Change the parsing of URL parameter arguments.
	- CLEANUP: Removed several obsolete functions.
	- CLEANUP: We now use one centralized config file parser.

	- CLEANUP: Only show 'subdirectories' section if subdirs exist.
	- CLEANUP: Only show 'files' section if songs exist.
	- CLEANUP: Only show 'playlists' section if playlists are found.
	- CLEANUP: Only show 'play results' if songs were found in the search.

	- PORTABILITY: Included an Autoconf bootstrapping script.
	- PORTABILITY: Test for more header files and types in 'configure'
        - PORTABILITY: Integrated version of 'mplib' for reading ID3v[12]
	  tags.

	- MISC : Added support for loadable modules with libtool + libltdl
	- MISC : Migrated lots of core functionality into external modules.
	- MISC : Added 'last 20 tracks' plugin.
	- MISC : Added 'theme browsing' plugin.
	- MISC : A new configuration option 'denied_clients'.
	- MISC : If a song has no artist + title information use the filename.
	
	- Added the ability to limit the starting path of searchs.
	- Cache the contents of template files.
	- Included several loop optimizations.
	- Included an updated Nausicaa theme from Lawrence Lin.
	- Process and display user generated playlists.

	- Updated the version number.
	  
	
  0.9.9.9.1 [Jun 24th 2002]
	- CLEANUP: Each theme shows itself as being selected.
	- CLEANUP: Use libvorbis if available to parse song tags.
	           [This allows international characters to display]
	- CLEANUP: 'Play All' links aren't shown for empty directories.
	- CLEANUP: 'Play Recursively' links aren't shown unless there
	           are subdirectories present.
	- CLEANUP: User may specify the text to show for the play all/
	           play recursively links.
	- CLEANUP: The banner shown above search pages is correct.
	
	- BUGFIX:  Fixed default directory_format string.
	- BUGFIX:  Made sure that theme_directory is specified in gnump3d.conf
	- BUGFIX:  Improved URL encoding function to handle foreign characters.
	- BUGFIX:  Don't send extra newline after the end of HTTP headers.
	
	- PORTABILITY: Install to /usr/local/{ bin man etc} by default.
	- PORTABILITY: Use autoconf + automake.
	             : Test the libraries we need to use for socket functions.
	             : Test for different versions of pthreads.
		     : Insert the correct path to the Perl interpretter.
	

	- Other Changes:
	-  Allow content to be served from the template directories, eg logos.
	-  Updated error messages.
	-  Added decent error reporting for missing _directories_.
	-  The search results page show the directory which contains the
	   given result.
	-  Minor updates have been applied to the supplied themes.
	
	-  All names of scripts directorys and programs have been changed:

	        *mp3d* -> *gnump3d*

	   This is a pain for users, but it's better to do it sooner than
	   later - we were having collisions with the perl server 'mp3d'
	
	-  Optional minimal support for syslog.
	-  Optional support for libid3.
	-  Updated version number.
	
	

  0.9.9.9 [12-Jun-2002 04:33]

	- CLEANUP: The uninstall target is much more streamlined.
	- CLEANUP: Permissions are corrected on theme installation.
	- CLEANUP: Not a single malloc in the entire server!
	- CLEANUP: Protected all singleton objects with private
	           copy constructors and assignment operators.

	- BUGFIX: Minor cleanup to allow streaming upon FreeBSD/OpenBSD.
	- BUGFIX: Only display audio files in the directory listings.
	- BUGFIX: mp3d-top uses the first 'log_file' value it finds.

	- PORTABILITY: Included patch found in the FreeBSD ports tree.
	- PORTABILITY: Added distinct NetBSD and OpenBSD Makefiles.

	- DOCUMENTATION:  Moved README-C++ to src/
	- DOCUMENTATION:  Update man pages.

	- Other changes:
	-  Updated version number.
	-  Accept multiple values in 'allowed_clients'.
	-  Added 'realm' password protection to the server.
	-  Added base64.[ch] - (Implements realm decoding from BASE64).
	-  Removed obsolete 'allow_save' config option.
	-  Added Debian configuration script 'mp3d-config'.


  0.9.9.8 [Wednesday, May 29th 2002 16:43 EDT]
	- CLEANUP: 'make install' will install all themes properly.
	- CLEANUP: Major updates made to the configuration file.
	- CLEANUP: Themes are tested for validity prior to usage.

	- BUGFIX: Search results display the correct files.
	- BUGFIX: Search results takes notice of 'always_stream'.
	- BUGFIX: Logfile works with '--background'.
	- BUGFIX: Genres are now supported in MP3's via $GENRE

	- PORTABILITY: User may specify the theme directory.
	- PORTABILITY: Minor fix for Mac OS X compatibility.
	- PORTABILITY: Updated the 'test-tag-parser' test program.

	- DOCUMENTATION: Removed duplication in source code documentation.

	- Other changes:
	-  Updated version number.
	-  New theme 'nausicaa' - A coloured version of the default.
	-  New theme 'split' - A two paned 'explorer' style theme.
	-  Themes may be specified on a per client basis, with cookies.
	-  All themes have been updated to include a theme choosing option.
	-  Themes may contain configuration options which override 'mp3d.conf'
	-  Debian packages built!


  0.9.9.7 [16-May-2002 06:43]

	- BUGFIX:  Fixed off-by-one error when reading config file.
	- BUGFIX:  Fixed thread creation/termination bug.
	- BUGFIX:  OGG tag parsing is now more robust.
	- BUGFIX:  `make uninstall` removes the correct binary.

	- PORTABILITY: MacOS X port now builds and runs.

	- CLEANUP:  Added the small test programs to the CVS repository.
	- CLEANUP:  The server configuration isn't browsable via /status/
	- CLEANUP:  New virtual path '/search/' which serves a search form.
	- CLEANUP:  If the hostname isn't set use 'localhost' in playlists.

	- Other changes:
	-  Updated version number.
	-  Introduced a theming system which allows end-users to completely
          customize the appearence of the server.
	-  Use the clients 'Host: ' header, if present.
	   (New configuration variable 'use_client_host' controls this).


  0.9.9.6 [05-May-2002 22:23]
	- BUGFIX:  Allow songs to contain '..' in their filenames.
	- BUGFIX:  Added fixes which allow compilation under GCC 3.x.
	- BUGFIX:  Tidied up headers + namespaces for GCC 3.x
	- BUGFIX:  'all.m3u', and 'recurse.m3u' links work for directories
                   requested without trailing '/' character.
	- BUGFIX:  Delete the results of CDir::ReadDirectory.
	- BUGFIX:  Free the results of 'scandir' correctly.
	- BUGFIX:  Free the results of CUtility::splitString

	- CLEANUP:  Made CServer a singleton object.
	- CLEANUP:  Renamed all singleton accessors 'GetInstance'.
	- CLEANUP:  Documented CMutex properly.
	- CLEANUP:  Removed unnecessary #include's to speed compilation.
	- CLEANUP:  Minor optimizations to CFile::normalizePath

	- Other changes:
	- Updated version number.
	- Received another RC file from: watsondk@pobox.com
	- Added previous release dates to the changelog.
	- Be more carefull setting the group + user ID.
	- Doubled the size of the file serving buffer.
	- Greatfully received several new logo submissions at:
		http://www.gnump3d.org/logos.html



  0.9.9.5 [21-Apr-2002 15:27]

	- CLEANUP: Removed 'CFile::GetFullPath' its not used anywhere.
	- CLEANUP: Removed some system headers that aren't needed.
	- CLEANUP: Renamed 'CHeader' class to 'CRequestHeader'.
	- CLEANUP: Introduced mutex abstraction class 'CMutex'.
	- CLEANUP: Changed CApacheLog + CDebugLog to have CMutex members.
	- CLEANUP: Changed the signature of 'sendData'.
	- CLEANUP: Tidied up the Makefiles for all systems.
	- CLEANUP: Don't attempt to remove previous versions on 'make install'.
	- CLEANUP: Install manpages in correct location for FreeBSD.
	- CLEANUP: Move file comparison function into CFile.
	- CLEANUP: Move song tag comparison function into CPlaylist.
	- CLEANUP: Order object files alphabetically.
	- CLEANUP: Remove '-g' when compiling.

	- BUGFIX:  Close the debug file handle when destroyed.
	- BUGFIX:  Show unknown command line options after usage info.
                   (Simpler to read that way).
	- BUGFIX:  Don't print 'Not reached' - when server exits.
	- BUGFIX:  Removed a lot of printf's which aren't often seen.
	- BUGFIX:  Show the correct error message when the server admin
                   disables access to '/status/'
	- BUGFIX:  Correctly bound the header when reading a request from the
	           client.  (Off by one error in CRequestHeader::ReadHeader).
	- BUGFIX:  New class CConnectionCount; handles max_connections properly
	- BUGFIX:  mp3d-top takes notice of 'always_stream'.
	- BUGFIX:  CApacheLog - fixed off by one error in 'AddEntry'.
	- BUGFIX:  Expand '$COMMENT' in song displays.
	- BUGFIX:  Display directories sorted alphabetically
	- BUGFIX:  URL Encode files in playlists, this allows files with '+' in
	           their names, for example, to work.
	- BUGFIX:  Use correct thread type - fixes compilation issue on *BSD
	- BUGFIX:  CUtility::stripWhitespace will return "" if given a string 
	           composed wholly of whitespace characters.
	- BUGFIX:  Delete the CClientConnection object on thread termination.

	- DOCUMENTATION:  Updated misleading comments throughout the code.
	- DOCUMENTATION:  Cleaned up + expanded the man pages.

	- Other Changes:
	-  Expand $HOST in the header and footer templates.
           (This is $HOSTNAME minus any domain information).
	-  New option 'allow_saving' if this is enabled a 'save' link is
	   generated next to each track, to allow simple downloads.


  
  0.9.9.4 [14-Apr-2002 09:09]

	-  Major update : Re-wrote all the code in C++.
	-  Major update : Re-wrote all the code in C++ - worth stating twice.

	-  DOCUMENTATION:  Added manpages, in doc/
	-  DOCUMENTATION:  Updated README for grammer, spelling, etc.
	-  DOCUMENTATION:  Added README-C++
	-  DOCUMENTATION:  Updated comments in 'mp3d.conf'
	-  DOCUMENTATION:  Document the hostname option in mp3d.conf
	-  DOCUMENTATION:  Added source code documentation in src/html/

	-  BUGFIX: Handle the debugging options correctly.
	-  BUGFIX: Expand the MP3 Albumn tag, via $ALBUM.
	-  BUGFIX: Close filehandle when an abort happens on file serving.
	          (ie. ignore SIGPIPE).
	-  BUGFIX: Allow searching on song tags
	-  BUGFIX: Abort if the configuration file doesn't exist.
	-  BUGFIX: Handle directories without a trailing '/' correctly.
	-  BUGFIX: Removed striping on search results.
	-  BUGFIX: Terminate headers with '\r\n' as per RFC's.
	-  BUGFIX: Don't show play link if search returns no results.
	-  BUGFIX: URL encoding/decoding RFC 1738 compliant.
	-  BUGFIX: Loop until all network data sent - stops random stuttering.

	-  PORTABILITY: Code builds + runs on Solaris properly now.
	-  PORTABILITY: Updated Cygwin build.
	-  PORTABILITY: Embryonic MacOS X support.
	-  PORTABILITY: Use 'stat' instead of FILE * functions.

	- Other changes:
	-  Tidied up the startup banner.
	-  Removed logo from the source code repository, now in website src.
	-  Implemented access controls, and connection limiting.
	-  /status/ now shows source versions.
	-  Configurable shoutcast title streaming - thanks to the author of
	   Ample for a good explaination of how this works:
		http://ample.sf.net/
	-  New command line option '--background'
	-  Received an RPM .spec file, from:
	   Angles  Puglisi <devel@aminvestments.com>
 	-  Perform thread cleanup correctly.
	-  Parse OGG Vorbis tags - this is very simplistic.
	-  Cache the ID3/OGG TAG information which we retrieve.
	-  Added debug tracing throughout the entire codebase.
	-  Add option to disable server browsing, strange as that might seem.

	
	
  0.9.9.3 [12-Mar-2002 07:48]

	-  Made portability fixes to portable.c - for FreeBSD.
	-  Added Slackware rc file, 
	   from : Boris Kurktchiev <linux@BgDefenderS.zzn.com>
	-  Added logo, from: Adam Doxtater <adoxx@hotmail.com>
	-  Made the daemon re-read its configuration file upon receipt
	   of SIGHUP.
	-  Allows config file to control the notion of what is an audio file.
	-  BUGFIX: Make sure file info is served with a playlist for a single
 	   file, as a result of 'always_stream=1', and 'advanced_playlist=1'
	-  Added Access Control, based upon IP addresses.
	-  Updated Header template, contributed by :
	   Boris Kurktchiev  <linux@BgDefenderS.zzn.com> 
	-  BUGFIX: Send proper HTTP header prior to sending error messages.
	-  BUGFIX: Send message to clients that aren't allowed to connect.
	-  Default to appending to our logfile, with config file controlling
	   whether we truncate or not.
	-  BUGFIX: Stop blanking out the hostname, as this broke the template
	   expansion.
	-  Removed all references to WIN32 - AS OF NOW THERE IS NO WINDOWS PORT
	-  Show IP address (hostname) in the top N users.
	-  CODE-CLEANUP: Handle the special requests in a neater manner.
	-  CODE-CLEANUP: Don't, needlessly, return the requested path
	-  BUGFIX: Remove trailing slashes from clickable directory headers.
	-  mp3d-top : Don't cache hostnames needlessly.
	-  BUGFIX: Removed the trailing slash which is displayed on 
	   all directory names in the main index.
	-  BUGFIX: $VERSION is now expanded in header + footer files.
	-  BUGFIX: mp3d-stats use numerical comparison, fix by
           TAHARA Ryozo <r-tahara@yamatosokki.co.jp>
	-  BUGFIX: serve .m3u files properly, fix by:
           TAHARA Ryozo <r-tahara@yamatosokki.co.jp>
	-  Updated handling of comments, and 'logfile' key in mp3d-top from:
	   TAHARA Ryozo <r-tahara@yamatosokki.co.jp>	
   


  0.9.9.2 [01-Mar-2002 10:47]

	-  Moved mutex handling code into threads.[ch]
	-  Added Cygwin Makefile.
	-  Renamed links to '/' to read 'Home'
	-  Added song titles to playlists, so that the players may use them.
	   This is controlled by the config entry "advanced_playlist".
	-  Wrapped server status in pretty HTML to match search results, etc.
	-  Avoided reading the 'Hostname:' from client requests, if this
	   is not equal to our server hostname bad things are afoot - the
	   server hostname may be explicitly set by the configuration entry
	   'binding_host' option anyway.
	-  Re-write playlist files on the fly, if they aren't http entries.
	   Code from: TAHARA Ryozo <r-tahara@yamatosokki.co.jp>
	-  Added a statistics program, which is run when people request
	   '/stats/'
	   (The statistics program is "mp3d-top", and running 
	    "mp3d-top --help" will give running instructions.)
	-  Added an RC file for Debian.
	-  Tidied up the usage of the configFile, and port handling.
	-  Added the "contrib/debian/" directory, which can be used to build
	   a .deb binary file - contributed by : Henning Glawe <glawe@web.de>
	-  Created contrib/win32/
	-  Finally solved the issues with terminating the server.
	   As suggested by : Andrew Birkett <adb@tardis.ed.ac.uk>, over a pint.
	-  Honour the "Range:" header - this allows people to seek within a 
	   song, if the player supports it.  (WinAmp does).
	-  Made all the files + directories in the stats page clickable.
	-  Allow the user to specify the colour of the border used in all
	   the display sections, via the "border_colour" config file entry.
	-  Massive code commentry update.
	-  Fixed a filehandle leak.  (We were losing one handle for each 
	   music file served).
	-  Added the ability to play all the results of a search.
	-  Added SuSe rc file, from: Daniel Troeder <daniel@troeder.de>



  0.9.9.1 [23-Feb-2002 12:35]

	- Added simple search.
	- Added option 'search_enabled'.
	- Updated header template to include a search form.
	- Search results now honour the 'always_stream' flag.
	- Added patch to encode URL's in generated playlists, from:
	  Francesco Usseglio Gaudi <cecco@libero.it>
	- Perform variable expansion in /status page.
	- Improved the portability of code in 'portable.c'.
	- Fixed playlists so they are served properly.  
          (Hand made playlists, which are placed in the directory tree,
          not the auto-generated all.m3u / recurse.m3u files).
	- Updated the comments in the supplied config file considerably.
	- Updated the links at the top/bottom of directories to be made of 
	  links to the path components.	
	- Fixed access logging, the log is written at the start of a 
	  file-serving transaction, not the end.



  0.9.9  [19-Feb-2002 11:57]

        - Created a centralized routine for searching for files.
	- Migrated existing code to use it.
        - Updating network connection, no more "Address already in use" errors!
	- Addition of a new config option, to specify the log file.
	- Accesses are logged in an Apache common log compatable format.
	- BUGFIX: Playlists had erroneous '\n' character in them.
	- BUGFIX: Report + abort on unknown command line option.
	- BUGFIX: make install works correctly, and the binary reads
          the installed configuration file properly.
	- New 'theme' system, allows all pages to be surrounded by
	  user specified text.
	- Expand $HOSTNAME, and $DIRECTORY in template files.
	- BUGFIX: Install signal handlers only if they're available.
	  Contributed : by Alan Stein <ajs@ajsoft.com>
	- Updated the Win32 port.
TODO: FIXME - Allow playlists to be listed in the directory tree.
        - BUGFIX: Handling of missing files killed server, if they didn't
          have a suffix.
	- BUGFIX: The number of currently active connections only increased.




  0.9.8  [12-Feb-2002 10:02]

        - Changed the link title for the server status.
	- Updated the header + footer.
	- Made some code cleanups.
	- Moved all file handling code to files.[ch].
	- Moved all debug handling code to debug.[ch]
	- Added 'always_serve' option, as suggested by : Thomas Sattler
	- Fixed up logging, so that 'all.m3u', and 'recurse.m3u' are
	  correctly reported.
        - Added a simple build system for dealing with new platforms,
	  this includes those files/changes submitted by other people.
	- Fixed bug: generated m3u files not having port numbers in them.
	- Fixed bug: searching for suffixes stopped at the first period.
	- Code cleanup : Pass connection_info around, not client_socket.
	- Code cleanup : centralized debug interface.
	- Added --debug switch, to replace the x-debug target.
	- Added "ostype" to the --version information, and updated the startup banner.
	- Added Emacs mode settings.
	- Fixed bug: signal 11 -> replacestrinstr was buggy.  bigtime.
	- Fixed bug: make sure subdirectories + links have "%20", not ' '.



  0.9.7 [08-Feb-2002 04:01]

	- Added id3parse.[ch] - C routines for accessing ID3 tags.
	- A new make target 'test': will build test programs for the ID3 parser,
	  and the config file parser.
	- Allow user to specify how files are displayed, via 'song_format'
	- Fixed issue with processing the files in a directory.
	- Updated the handling of missing files to send the appropriate
	  HTTP status code, (404), along with a more friendly error message.
        - A working recursion option.
	- Added bzero, and stricmp implementations for those that lack them.
	- Test that the root directory exists before starting the server. D'oh.
	- Updated "IsAudioFile", to compare case insensitively, this fixes 
	  incorrect file count bugs.
	- Added DoesDirExist
	- Allow the server to change UID & GUID after bind().
	  (means server can be started with port<1024, and no risk ;).
	- Send "Date" headers with all pages.
	- Save starting date + time of server, not just time.
	



  0.9.6 [08-Feb-2002 04:01]

	- Added basic logging; connection number, ip address, and request path
	- Added server-start-time to the status page.
	- Show the number of active connections.
	- Added new configuration option "stripe_depth", controls the size of
	  stripes.
	- Updated the HTML generation, to change the layout.
	- Updated Makefile(s) to build on FreeBSD.
	- Added server stats in a basic manner.



  0.9.5  [06-Feb-2002 04:34]

	- Added the configuration file, to control the server, this involves
	  the introduction of many new features, eg. controllable mime typing.
	- Added parse.[ch], removed getopt.[ch].
	- Added the ability to report on server status.
	- Added test program for the parser.
	- Added '--quiet' option.



  Released to the World, via Freshmeat.net

  Pre-history:

  0.9  - Allows directory contents to be played, via an "All" link.

  0.8  - Shows the contents of directories in an attractive manner.
       - Allows navigation back up the directory tree.

  0.7  - Correctly processes directories.
       - Ignores '.' files, and directories.
       - Has a root directory, browsing outwith this is prohibited.

  0.6  - Serve files.  Woo hoo!
	 No longer shows dotfiles of any kind.
         Note: content type is fixed at text/html.  This should be
         teakable via a config file, something like:

         [MimeTypes]
         .htm=text/html
         .html=text/html
         .txt=text/plain

  0.5  - Shows directory listings, which include ".", and ".."

  0.4  - Replace string in string works multiple times.

  0.3  - Control the errors, via text substitution.  Replace this with
         an error file for each permissable error, eg. HTTP 404 -> not found.

  0.2  - Send an error message when things go bad... ;)

  0.1  - Start up the listening socket - and make sure that its not
         already in use, and >= 1024