feature differences from CVS

fast pre-buffering - burst a certain amount of data at connection time.
mp3 accepts artist and title separately on the url.
program invocation at stream start and end, per mount based.
on-demand relays, activated on first listener, disconnected when listeners 
falls to 0
initial implementation of multiple Ogg codec streaming, theora, vorbis and
speex. more work needed to start at theora key frame.

kh31
. fix for bug when adding clients from pending list.

kh30
. add make static for those who want it
. changed code on list processing for active and pending clients
. changed when format-specific client data gets freed up
. shuffle code around, OK response to source client only source_client_thread
. 404 sent to client on failed on-demand relay
. more re-sync work + various non-functional cleanups

kh29
. revert test harness code left from before which advertised private streams
  and cleanup unwanted messages
. more cleanups, more sync work with CVS
. source_t wasn't going after source client disconnection

kh28
. more re-sync work
. fixed a yp deadlock case for stuffed yp servers.

kh27
. fixed 2 possible deadlock cases
. fixed race wrt to alias lookup after HUP change
. reset ogg stream type to "Ogg Vorbis" even if it isn't, so that YP
  shows icons correctly.

kh26
. fixed YP related bugs, leaks + bad pointer access
. fixed rare segv case in format_mp3
. more cleanup work in source shutdown
. Changed how client http headers are sent back
. Implement on demand relay, enabled with <on-demand>1</on-demand> in <relay>

kh25
. Changed Ogg module
  - added Ogg multiplexing
  - added theora and speex streaming
  - URL updates removed from vorbis, due to multiple codec support, maybe added later.
. continue with more re-sync to CVS work
. fixed a few rare races that had shown up with the re-sync work.

kh24
. more re-sync work with CVS.
. Identified a couple more locking issues via the admin interface
. remove errno use from stream dump routines

kh23
. re-sync with CVS tree, fallback override, no-mount, initial work on
  listener authentication.
. locking updates 
. on-connect/disconnect scripts are started and not waited on.
. icy/ice headers cleanup
. initialise config correctly

kh22
. fix some rare lock races
. page samples fix on EOS flush, reset granulepos to 0 on new stream
. add /admin/streamlist.txt from beta3
. big update of the relay code, supports master relay now
. added yp-log-headers tag in <logging> to disable YP header logging, it
  can make for lots of noise in the logs

kh21
. only send a 200 OK for source connections that are from source clientts
  and not relays
. on failed source init, some setup was not cleared and the source count
  was not decremented
. Check that writes to clients have actual data available
. fix deadlock case with yp
. fix locking for url metdata updates generically
. fix use of non thread-safe function localtime in yp

kh20
. fixed slave/stats shutdown race
. re-applying avl fix for null free function
. fix for vorbis, API changes caused stalls when sending to client
. relay updating/restarting code fixed.
. changes to vorbis input to allow for url updates
. allow for stating artist and title on url

kh19
. fix a few more signed/unsigned problems, affecting mp3 mainly
. re-worked pthread configure option
. update various bits to bring in line with v2.0 beta2

kh18
. another signed/unsigned int bug fixed
. added a short delay trigger for waiting clients, improves bursting
. added --disable-log-ip for the access log
. fix segv when adding clients to inactive relays

kh17
. cleanup some api bits
. fix mp3 bug causing glitches in the audio
. added pidfile support

kh16
. made outgoing serial numbers unique, helps in fallback situations
. revert date field to where it was in access.log. That way it conforms
  to the common log format for analysers.
. changed interal api of the client write function so that handling of
  burst limits is better. Also allow the queue to be more format specific.

kh15
. Updated vorbis input to rebuild stream, forcing pages to contain around
  1 second worth of audio.

kh14
. use localtime_r when available
. compile time switch for enabling/disabling logging IP in access log
. handle source counts better.
. relays retain the source struct so source clients don't steal inactive
  relay mountpoints.

kh13
. update to latest CVS docs
. fixup source timeout, internally it's in milliseconds, and can be
  stated per mount as well as globally.

kh12
. terminate stream if inline metadata does not contain "StreamTitle"
. Added docs by oddsock, and other updates from CVS
. wait for source start/stop run scripts to finish, linuxthreads
  were leaving zombies.
. missing initialiser for relay connection, caused segv on failed
  connections
. fix 3 mp3 metadata mis-alignment bugs on stalled links

kh11
. fix a bad memory reference from kh9
. don't free finished clients too early, bad memory reference

kh10
. when reading from straight mp3 stream (no shoutcast metadata)
  updates via url were not getting to clients. fixed

kh9
. per-mount queue and burst size options
. pre-mount on-connect/on-disconnect scripts
. more re-sync with cvs updates
. force relay re-check on xml update

kh8
. timeout value had multiple applied
. more dead code removal
. make initial mp3 metadata block blank
. fix potential leak in mp3 reading code.

kh7
. added stream type check for client moving
. various cleanups, dead code removal
. minor relay structure mem leak fix
. fix source count check.
. enable the fileserve thread again

kh6
. stream dumping added
. mp3 title update via url fixed up
. fixed up listclients, moveclients.
. re-implemented source fallbacks

kh5
. 2 lots of ;; caused compile problems on windows
. enable curl for YP access
. allow the format specific get buffer routine to return
  NULL for retry, needs to set running to 0 now
. add vorbis header parsing for artist title stats
. add mp3 title parsing for the stats

kh4
. handle relay start and shutdown better.
. apply avl rwlock leak fix
. apply stats thread sleep avoidance fix
. update sock.c errno check
. enable stats/YP thread, add various stat triggers

kh3
. fix burst size larger than queue size case
. prevent relay connections initiating if connection is running
. send server package string from autoconf
. fixed a few segvs from previous update

kh2
. fix mp3 handling, metadata handling wasn't correct.
. fix flow control, locks/source counts with relay
. Added <burst-size> tag default 0 (in bytes)
. Use queue size field, was hardcoded before
. Don't filter refbuf if 0 length but have associated data
. handle EOF/error from socket in format_mp3

kh1 - core update
. removed many locks
. used single queue for source data.
. clients start at end of queue and allowed to repeat writes, thus
  giving bursts at connection. capped at 8 writes
. many secondary things not working. stream dumping, YP, stats,
  web interface
. mp3 incl shoutcast meta and ogg should work 

2003-10-12
    Added documentation

2003-04-23
    Support aliases

2003-03-09
    Support listening on multiple sockets.

2003-03-08
    Support for shoutcast source protocol added.

2003-03-08
    Started implementing generic admin interface. Supports (so far): 
    - dynamic configuration of mount fallbacks
        /admin/fallbacks?mount=/mount&fallback=/fallback
    - setting of mp3 metadata
        /admin/metadata?mount=/mount&mode=updinfo&song=New%20Title
    - dumping raw xml stats
        /admin/rawstats
    - listing all connected clients on a mountpoint: 
        /admin/listclients?mount=/mountname

2003-03-05
    Implemented the ability to reread the config file on SIGHUP. For now, this
    does not affect configuration for currently running sources (only new
    sources and global parameters like max-listeners)

2003-03-02 
    More features:	 
    -- per mountpoint listener maxima   
    -- static configuration of mountpoint fallbacks   
    -- stream dumping (write incoming stream to disk)

2003-02-27
    Fix log buffering on win32 - previously, logs were never flushed, so they
    only got output every few tens or hundreds of lines.

2003-02-27
	Support new icy-audio-info header, to communicate various parameters to
    clients and yp servers, including sample rate, quality, channels, bitrate

2003-02-25
    Full support for relaying mp3 metadata (if turned on in config file)

2003-02-25
    Allow configuration of maximum client queue length (in bytes)

2003-02-14
    Finished full IPv6 support. 

2003-02-12
	Allow configuring local mountpoint seperately from remote mountpoint for
    relays

2003-02-12
	Per mountpoint usernames and passwords (for sources)

2003-02-11
	Now that it's been officially assigned, use application/ogg instead of
	application/x-ogg

2003-02-07
    Allow relaying of mp3 streams from icecast 1.x and shoutcast

2003-02-07
    Added ability to configure individual relays (rather than just all streams
    from a single server).

2003-02-03
    Added support for YP directory services listings
	are only used by the yp listing routines

2003-02-03
    Support command line parameter -b to run in the background (not supported
    on win32)

2002-12-31 
    Implement configurable mountpoint fallbacks (on source exit, clients are
    transferred to another mountpoint automatically, without disconnecting
    them)

2002-12-31
    Implemented full mp3 metadata support.

(older stuff is missing from here)

