]> git.tuebingen.mpg.de Git - paraslash.git/commitdiff
Merge branch 't/rl_free_keymap'
authorAndre Noll <maan@systemlinux.org>
Tue, 22 Apr 2014 00:30:02 +0000 (02:30 +0200)
committerAndre Noll <maan@systemlinux.org>
Tue, 22 Apr 2014 00:30:02 +0000 (02:30 +0200)
Cooking since 2014-03-10.

* t/rl_free_keymap:
  build: Check whether rl_free_keymap is declared.

183 files changed:
.changelog_before_cvs [deleted file]
.changelog_cvs [deleted file]
Doxyfile
Makefile.in
Makefile.real
NEWS
aac.h
aac_afh.c
aac_common.c
aacdec_filter.c
acl.c
acl.h
afh.c
afh.h
afh_common.c
afh_recv.c
afs.c
afs.cmd
afs.h
aft.c
alsa_mix.c
alsa_write.c
amp_filter.c
ao_write.c
attribute.c
audioc.c
audiod.c
audiod.cmd
audiod.h
audiod_command.c
bash_completion
blob.c
buffer_tree.c
buffer_tree.h
check_wav.c
check_wav.h
chunk_queue.c
chunk_queue.h
client.c
client.h
client_common.c
close_on_fork.c
command.c
command_util.bash [new file with mode: 0755]
command_util.sh [deleted file]
compress_filter.c
configure.ac
convert_0.3-0.4.sh [deleted file]
crypt.c
crypt.h
crypt_backend.h
crypt_common.c
daemon.c
dccp_recv.c
dccp_send.c
error.h
error2.c
exec.c
fade.c
fd.c
fd.h
fecdec_filter.c
file_write.c
filter.c
filter.h
filter_common.c
flac_afh.c
flacdec_filter.c
gcrypt.c
ggo.c
ggo.h
grab_client.c
grab_client.h
gui.c
gui.h
gui_theme.c
http_recv.c
http_send.c
imdct.c
interactive.c
interactive.h
ipc.c
m4/gengetopt/afh.m4
m4/gengetopt/afh_recv.m4
m4/gengetopt/alsa_write.m4
m4/gengetopt/amp_filter.m4
m4/gengetopt/ao_write.m4
m4/gengetopt/audioc.m4
m4/gengetopt/audiod.m4
m4/gengetopt/client.m4
m4/gengetopt/compress_filter.m4
m4/gengetopt/dccp_recv.m4
m4/gengetopt/fade.m4
m4/gengetopt/file_write.m4
m4/gengetopt/filter.m4
m4/gengetopt/gui.m4
m4/gengetopt/http_recv.m4
m4/gengetopt/makefile
m4/gengetopt/mp3dec_filter.m4
m4/gengetopt/oss_write.m4
m4/gengetopt/osx_write.m4
m4/gengetopt/play.m4
m4/gengetopt/prebuffer_filter.m4
m4/gengetopt/recv.m4
m4/gengetopt/resample_filter.m4
m4/gengetopt/server.m4
m4/gengetopt/udp_recv.m4
m4/gengetopt/write.m4
man_util.bash [new file with mode: 0755]
mix.h
mm.c
mm.h
mood.c
mood.h
mp3_afh.c
mp3dec_filter.c
net.c
net.h
ogg_afh.c
ogg_afh_common.c
ogg_afh_common.h
oggdec_filter.c
opus_afh.c
opus_common.h
opusdec_filter.c
oss_mix.c
oss_write.c
osx_write.c
para.h
play.c
playlist.c
portable_io.h
prebuffer_filter.c
recv.c
recv.h
recv_common.c
resample_filter.c
ringbuffer.c
ringbuffer.h
sched.c
sched.h
score.c
send.h
send_common.c
server.c
server.h
sideband.c
sideband.h
signal.c
signal.h
spx.h
spx_afh.c
spx_common.c
spxdec_filter.c
stat.c
stdin.c
stdin.h
stdout.c
stdout.h
string.c
string.h
time.c
udp_recv.c
udp_send.c
user_list.c
user_list.h
version.c
vss.c
vss.h
wav_filter.c
web/header.html
web/header2.html
web/manual.m4
web/screenshots/audiod.log
web/screenshots/gui.png
web/screenshots/server.log
wma_afh.c
wma_common.c
wmadec_filter.c
write.c
write.h
write_common.c
write_common.h

diff --git a/.changelog_before_cvs b/.changelog_before_cvs
deleted file mode 100644 (file)
index 7f95255..0000000
+++ /dev/null
@@ -1,378 +0,0 @@
-This is the old Changelog, before the icc project switched to cvs.
-
-dbtool (sa): fix SEGFAULT when some attributes are NULL
-icc_dbtool.template: add help command
-Makefile: Check for mp3info
-dbtool.c: Handle files with Â«'» properly
-
-****** Version 91 (Sat Nov 30 13:52:37 MET 2002) *******
-Makefile: include icc_dbtool.conf.sample
-icebear: Remove unneeded signal handlers
-icc_dbtool.c Add documentation to upd command
-Documentation update
-dbtool.c: Add config file functionality
-icc_dbtool.c: Add upd command
-command.c: Bug: cs prints current stream in err msg
-zombies, zombies
-many fixes all over the place
-dbtool.c: new command: vrfy (verify entries in database)
-dbtool.c: implement clean command
-icc_dbtool: implement skip
-dont use pointers to malloced mem in shared area (causes SEGFAULT)
-icebear: SEGFAULT when cs was called after server had got HUP. Nasty bug
-icc_bash_completion: adapt to new syntax
-command.c: nuke drop_ss and new_ss
-dbtool.c: Add da (drop attribut) command (replaces old drop_ss)
-dbtool.c: Add na (new attribut) command (replaces old new_ss)
-Makefile: Changelog contains entries not yet done
-
-****** Version 90 (Wed Nov 13 02:05:34 MET 2002) *******
-icebear: kill unneeded signal handlers
-icebear: call info only if it is a valid command
-server: code cleanup
-command.c uptime: print #connections and #commands
-server: count #connections and #commands
-server/icebear/command: count/display number of songs already played
-icc.h: cleanup
-command.c: nuke ms command
-dbtool.c: add summary command
-dbtool.c: new command: sa, replaces old ss (set subset) command
-dbtool.c: new command: streams
-server: renew command list on SIGHUP
-icebear: call us only if it is a valid command
-command.c: sort command list alphabetically
-server: Nicify logging
-command.c: New command: perms
-command.c: Rewrite command handlers to use linked list
-command.c: introdule linked list of commands
-
-****** Version 89 (Sat Nov  9 17:27:32 MET 2002) *******
-command.c: Major cleanup
-
-****** Version 88 (Sat Nov  9 01:34:14 MET 2002) *******
-icebear: New command: cs
-init_icebear put default_stream to freshly allocated shared mem
-server: pass default_stream to init_icebear
-server: new configfile option: default_stream
-command.c help: call icc_dbtool help
-
-****** Version 87 (Fri Nov  8 23:03:03 MET 2002) *******
-Makefile: new target icc_dbtool
-icc_dbtool: Switch to mysql C API
-
-****** Version 86 (Thu Oct 17 22:38:37 MEST 2002) *******
-New file: README.dbtool
-client/server: use OPENSSL define of config.h instead of hard coded path
-client/server: include config.h
-README: add icecast to requirements
-
-****** Version 85 (Thu Oct 10 22:56:29 MEST 2002) *******
-Makefile: Don't include tdldb in tgz
-Makefile: New target: distclean (clean no longer removes Changelog, TODO and version.h)
-dbtool ms: print each dot only once (reduces size of ps from 171kb to 22kb)
-
-****** Version 84 (Fri Oct  4 15:01:54 MEST 2002) *******
-icc_server.conf.sample/icecast.conf.sample: Use same passwd
-Makefile: include icecast.conf.sample in tarball
-Makefile: mkdir ~/public_html
-
-****** Version 83 (Wed Sep 25 01:59:06 MEST 2002) *******
-Makefile tgz: php crap got messed up
-
-****** Version 82 (Wed Sep 25 01:56:55 MEST 2002) *******
-server: Reread configuration on SIGHUP
-Makefile: New Changelog format
-Makefile tgz: create archive with leading directory icc-$version
-
-************* Version 81 *************
-server update_str: fix bug: uptime string messed up
-README: add description of icc_bash_completion
-INSTALL: Update, extentions and nicifying
-icc_bash_completion: adapt to new layout of Â«icc help«
-
-************* Version 80 *************
-server: print uptime in welcome message
-server: new functions: uptime,uptime_str
-command.c: new commands: uptime,version
-icebear: exec_cmd: test if stopped for ff/jmp/next. Fixes Segfault when eg Â«next» was called with no file opened yet
-
-************* Version 79 *************
-server: implement remaining part of configuration part
-server: implement basic configuration file functionality
-
-************* Version 78 *************
-Makefile: install icc_client.conf.sample and also include it in tgz
-new file: icc_client.conf.sample
-client: actually print version and info if loglevel is at least info
-client: new function: print_version
-client: read_config: change verbose setting to loglevel
-client: new option -l (loglevel) obsoletes -v (verbose)
-client: Fix Â«if(verbose==TRUE)» madness, use loglevels instead
-client: write log function similar to server's log function
-README: Update icc_client description: Delete sentence on telnet
-
-************* Version 77 *************
-client: take localhost as default host, not p133
-client: new option -c (specify config file)
-client: implement reading of config file
-
-************* Version 76 *************
-server sigchld_handler: Add exit status also as numerical value
-command.c: Add description for drop_ss, fut, us
-
-************* Version 75 *************
-icebear: fix segfault on nomore (double close mp3_stream)
-icebear: nm->nomore
-command.c: add nomore command (got forgotten)
-client: catch SIGCHLD
-client: introduce internal variable debug to toggle debug before command line argumants are parsed (for verbose switch)
-client: Nicify verbose output
-client: Fix command line parsing
-
-************* Version 74 *************
-Makefile tgz: use prefix icc-0.0.
-Makefile tgz: bug: forget to read VERSION
-Makefile: Add .tdldb to sources
-
-************* Version 73 *************
-client: new option -V (version)
-server: new option -V (version)
-Makefile: new target: tgz (implies version)
-Makefile: fix version numbering
-Makefile: include INSTALL in sources
-Makefile: Use -p Option for tar
-
-************* Version 72 *************
-icc_server: print info on who we are serving to argv[0]
-icebear: print status to argv[0]
-command.c: Add missing descriptions to all internal commands
-dbtool.template: Use find instead of locate
-server: send proper error message if client sent unkown command
-
-************* Version 71 *************
-client: Added help option -h
-command.c help: Nicify output. Include needed permissions.
-command.c: Add description for stat, sb and term
-Makefile: Add target dbtool_install
-Makefile install: don't install dbtool
-server/client: print version number
-icc.h include version.h
-Makefile: added target version.h
-added INSTALL
-README: Remove Warning message concerning lack of authentification
-Makefile: implement PREFIX
-icebear: typo in jmp command
-icc_dbtool.template us: Don't print warning
-Makefile install: Install also icc_dbtool.template
-
-************* Version 70 *************
-
-************* Version 69 *************
-icc_dbtool.template: Change fut so that it does not need bogosort anymore
-
-************* Version 68 *************
-Makefile: include icc_dbtool.template in tgz package
-server: new command line options: P, i, ip
-server: kill global variable conn
-command.c parse_cmd: Fix SEGV when in interactive mode and no option given (reported by Christof Müller)
-Makefile: all: dont make TODO and Changelog
-icc.client: remove passwd
-icc.h remove maan
-
-************* Version 67 *************
-icebear: delete option for id3 comment in mp3info call
-icebear: Fix bug: pollret returns strange events
-icebear: fix division by 0 bug when length of file is zero seconds
-
-************* Version 66 *************
-
-************* Version 65 *************
-command.c: perror -> log
-command.c: new fuction: check_permissions
-command.c: insert dummy at the beginning of command list to let start command numbers by 1 instead of 0
-
-************* Version 64 *************
-server: add string strerror(errno) to log file entries
-command.c: make parse_command only return command number and call handle_cmd from main
-server: print log msg _before_ exit(1) if send fails
-server: exit(1) if send fails
-
-************* Version 63 *************
-command.c: code cleanup
-icc_server: implement option -c (specify config file)
-client: fix SEGFAULT when command line ends with invalid option
-client: add option -k (secret key file)
-
-************* Version 62 *************
-implement permission check for all commands
-
-************* Version 61 *************
-implement basic configuration file functionality
-icc_server/client: implement rsa authentification via openssl
-
-************* Version 60 *************
-command.c: add help text for jmp and ff commands
-command.c: help: print command handler and needed privileges
-icebear: minor code cleanups
-icebear: Nicify log output
-icebear: split poll_cmd_listener to allow blocking reads => no more sleep(1)
-
-************* Version 59 *************
-icebear: Code documentation
-icebear: move shout init/shoutdown to exec_cmd. This might fix pause command.
-
-************* Version 58 *************
-icebear: increase number of allowed invalid files before giving up to 100
-dbtool clean: Handle files with Â«'» properly
-
-************* Version 57 *************
-dbtool: add summary command
-icc_process_form.php: change strcmp(a,b)=0 to not strcmp(a,b)
-
-************* Version 56 *************
-
-************* Version 55 *************
-kill id3 code
-dbtool: change info and fut to avoid Lost connection to MySQL server during query
-icebear: It dies if there no valid songs. Stop and lurk for play instead
-icebear: code cleanup
-
-************* Version 54 *************
-icebear/icc.h: use long unsigned int to avoid overflow in status bar
-
-************* Version 53 *************
-server: BUG in help: dont check args if args=NULL
-command.c help: implement Â»help command«
-README: add LICENSE
-README: include description to php scripts
-server: kill guics command
-server: kill log command
-dbtool: kill pw
-dbtool: add local for all local vars
-
-************* Version 52 *************
-command.c, icc.h: cleanup declaration of command struct
-dbtool us: add option to specify update time
-add bash completion for icc_client
-
-************* Version 51 *************
-kill spl command
-dbtool: add ls command
-icc_server: add ls command
-icc_server: kill cd command
-
-************* Version 50 *************
-php/icc_form, php/icc_process_form: fix several bugs
-
-************* Version 49 *************
-add background gradient image
-
-************* Version 48 *************
-write mp3 search form icc_form.php
-icebear: log seconds with 2 digits
-icc_gui: Add sleep(2) before each reconnect
-php: delete unneeded pics
-
-************* Version 47 *************
-icc_server: add time and date to log
-
-************* Version 46 *************
-php/icc_dbgui: fix off by one bug
-dbtool: clean reports files as deleted which are still there
-remove wtc.jpg
-
-*** Version 45 ***
-improve php scripts
-
-*** Version 44 ***
-add php scripts for apache/mysql
-
-*** Version 43 ***
-icc.h changed #define ERR to #define ERROR
-
-*** Version 42 ***
-gui: make it survive window resize
-
-*** Version 41 ***
-Add short description of all icc tools to README
-
-*** Version 40 ***
-dbtool fut: replace use of ancient anplay variable by aprropriate one
-dbtool ss: make it work again when args _are_ given
-server: Add -p <port> option
-client: catch SIGINT
-
-*** Version 39 ***
-dbtool: ps does not work if no arg is given
-dbtool: ss does not work if no arg is given
-server: log GPL banner (loglevel INFO)
-client: Add GPL banner in welcome message
-dbtool last: print full filenames
-dbtool info: print name if no argument was given
-
-*** Version 38 ***
-icebear: make jmp,ff,next,pause,play,stop,nm actually respond via new pipe
-create new pipe icebear->server for responses to icebear commands
-
-*** Version 37 ***
-dbtool cs: print info if no argument is given
-
-*** Version 36 ***
-icebear: kill getenv code
-icebear: rewrite startup code to prevent icebear from playing on startup
-
-*** Version 35 ***
-icebear: nicify log messages
-icebear: make pause, play, stop work in all possible cases
-
-*** Version 34 ***
-Makefile version: include COPYRIGHT, GPL and README files in tarball
-Add COPYRIGHT and GPL files
-*.c *.h dbtool: Add GPL headers
-inplement option -L logfile
-client: Fix bug: commands with options don't work
-
-*** Version 33 ***
-Makefile: only put completed todos into Changelog
-server: implement Daemon mode
-icc_client: Dont send empty lines
-
-*** Version 32 ***
-command: Fix nasty bug which caused sending 2 nullbytes instead of only one
-dbtool info: print info on current song if no argument was given
-
-*** Version 31 ***
-dbtool: Another silly bug in info which prevented dir to be printed
-client: Fix silly bug caused it to send wrong number of bytes
-icc_server: implemented term command
-Makefile: strip away useless tdl info
-icc_dbtool: Changed Warning message for commands not yet implemented
-icc_server: Added help command
-icc_client: add readline support
-icc_dbtool fut: Fix bug when there is exactly one new song
-db_tool: implement skip
-db_tool: implement ss
-db_tool: implement clean
-db_tool: implement upd
-dbtool: implemented pw
-move icc ms to dbtool
-icc_shell: ms
-icc_server/dbtool: new command hist
-dbtool: implement last
-created icc_shell
-make icebear use icc_dbtool instead of mp3
-write db_tool basics (fut, ass, ps, info, us)
-Makefile improvements
-icc_client: Add verbose flag -v
-Adjust loglevels and make logging nicer
-icc_client: properly handle command line options
-icc_server: Dont start playing on startup
-take output of info command as misc info
-icc_client: treat nr_options correctly
-log messages cleanup
-log proper exit status (WIFSIGNALED...)
-icebear: stop actually restarts icebear
-icc_client: interactive mode
-icc_server: on errors send messages clients
-
-
diff --git a/.changelog_cvs b/.changelog_cvs
deleted file mode 100644 (file)
index 889f23c..0000000
+++ /dev/null
@@ -1,12680 +0,0 @@
-2006-02-20 07:52  maan
-
-       * filter.c: cosmetics
-
-2006-02-20 07:51  maan
-
-       * crypt.h: add doxygen file comment
-
-2006-02-20 07:50  maan
-
-       * Doxyfile: exclude some more files
-
-2006-02-20 07:16  maan
-
-       * NEWS: [no log message]
-
-2006-02-20 07:16  maan
-
-       * CREDITS: add Lorenzo Bettini
-
-2006-02-20 05:24  maan
-
-       * Makefile.in: with gengetopt-2.16 we no longer need the conversion
-         optind=1 -> optind=0. Get rid of it.
-
-2006-02-19 07:46  maan
-
-       * crypt.c: add documentation
-
-2006-02-19 05:55  maan
-
-       * crypt.c: para_decrypt_challenge() leaks 128 bytes if
-         para_decrypt_buffer() fails. Fix it
-
-2006-02-19 05:47  maan
-
-       * gcc-compat.h: trivial: fix comment
-
-2006-02-19 05:46  maan
-
-       * crypt.c: whitespace cleanup
-
-2006-02-19 05:46  maan
-
-       * Doxyfile: activate the source browser
-
-2006-02-19 05:34  maan
-
-       * fade.c: make fade() static
-
-2006-02-19 04:15  maan
-
-       * Doxyfile: deactivate latex and man output, activate search engine
-
-2006-02-19 03:35  maan
-
-       * sdl_gui.c: add missing file name in comment
-
-2006-02-18 01:52  maan
-
-       * scripts/demo-script: download paraslash-0.2.10
-
-2006-02-18 01:21  maan
-
-       * web/index.in.html: typo
-
-2006-02-18 00:51  maan
-
-       * Makefile.in, NEWS, configure.ac: new codename, reset version to
-         cvs
-
-2006-02-18 00:49  maan
-
-       * versions/: paraslash-0.2.10.tar.bz2,
-         paraslash-0.2.10.tar.bz2.asc: paraslash-0.2.10
-
-2006-02-18 00:48  maan
-
-       * Makefile.in, NEWS, configure.ac, web/index.in.html: paraslash
-         0.2.10
-
-2006-02-18 00:12  maan
-
-       * Doxyfile: config file for doxygen
-
-2006-02-17 23:23  maan
-
-       * ortp_recv.c: increase number of bad chunks before returning an
-         error
-
-2006-02-16 05:28  maan
-
-       * README.mysql: [no log message]
-
-2006-02-16 04:48  maan
-
-       * filter.ggo: update help text for --list_filters
-
-2006-02-16 02:37  maan
-
-       * web/: documentation.in.html, index.in.html: annonce the new API
-         Reference
-
-2006-02-16 02:36  maan
-
-       * Makefile.in: new targets: doxygen, web/header2.html. Target www
-         implies doxygen
-
-2006-02-16 02:32  maan
-
-       * server.c: rename 'Reference Manual' to 'API Reference'
-
-2006-02-16 02:31  maan
-
-       * web/header.html: use the new stylesheet
-
-2006-02-16 02:30  maan
-
-       * web/para.css: the new stylesheet for the paraslash web pages
-
-2006-02-16 00:41  maan
-
-       * db.h, dopey.c, filter.h, mysql.c, recv.h, server.c: some small
-         documentation cleanups and additions
-
-2006-02-15 22:56  maan
-
-       * http_send.c, ortp_send.c, send.h, server.c: struct sender: rename
-         set_fds/handle_fds to pre_select/post_select and add
-         documentation
-
-2006-02-15 22:55  maan
-
-       * http_recv.c: kill superfluous parenthesis
-
-2006-02-15 22:14  maan
-
-       * oggdec.c: rename private_ogg_data to private_oggdec_data
-
-2006-02-15 22:13  maan
-
-       * http_recv.c: add remaining documentation
-
-2006-02-15 22:12  maan
-
-       * afs.h, filter.h, mp3.c, ortp.h, recv.h, ringbuffer.h, signal.c,
-         string.c, string.h: add missing doxygen file comments
-
-2006-02-15 05:49  maan
-
-       * http.h: and doxygen file comments
-
-2006-02-15 05:49  maan
-
-       * net.h: add GPL header and doxygen file comments
-
-2006-02-15 05:04  maan
-
-       * exec.c: add documentation of all functions
-
-2006-02-15 04:19  maan
-
-       * recv_common.c: gcc-compat.h gets included by para.h
-
-2006-02-15 03:51  maan
-
-       * mysql.c, string.c, string.h: rename regex_list to para_macro and
-         add documentation
-
-2006-02-15 03:11  maan
-
-       * Makefile.in, afs.c, audioc.c, audiod.c, client.c,
-         close_on_fork.c, command.c, compress.c, crypt.c, daemon.c, db.c,
-         dbadm.c, dopey.c, exec.c, fade.c, filter.c, filter_chain.c,
-         grab_client.c, gui.c, http_recv.c, http_send.c, mp3dec.c,
-         mysql.c, net.c, ogg.c, oggdec.c, ortp_recv.c, ortp_send.c,
-         para.h, recv_common.c, ringbuffer.c, sdl_gui.c, server.c,
-         slider.c, stat.c, string.c, string.h, wav.c: move the function
-         prototypes of string.c from para.h to its own header file
-         string.h
-
-2006-02-15 02:20  maan
-
-       * ortp_send.c: add documentation of struct ortp_target
-
-2006-02-15 02:00  maan
-
-       * error.h: some new error messages for the mp3 audio format handler
-
-2006-02-15 01:59  maan
-
-       * mp3.c: use the error subsystem everywhere
-
-2006-02-15 01:27  maan
-
-       * mp3.c: whitespace cleanup, make mp3_read_chunk() static
-
-2006-02-15 01:21  maan
-
-       * mp3.c: typdefs are evil
-
-2006-02-15 00:35  maan
-
-       * mp3dec.c: another quite serious issue: do not try to convert if
-         the output buffer is almost full. Otherwise we risk that the next
-         frame does not fit into the ouput buffer and we only can error
-         out in this situation. This patch avoids the problem.
-
-2006-02-15 00:31  maan
-
-       * filter.c: fix serious bug: -1 is no valid error number for
-         filter.c. The proper error number is returned from filter_io()
-         anyway, so use that one.
-
-2006-02-14 23:24  maan
-
-       * server.c: doxification
-
-2006-02-14 23:24  maan
-
-       * http_send.c: typo
-
-2006-02-14 22:57  maan
-
-       * http_send.c, ortp_send.c, server.c: add documentation of all
-         structures used by http_send, rename para_http_init to
-         http_send_init, likewise for ortp
-
-2006-02-14 22:09  maan
-
-       * command.c, server.h: add documentation of struct misc_meta_data.
-         Kill the unused send field of struct_sender_command_data and add
-         documentation for that struct as well.
-
-2006-02-14 22:08  maan
-
-       * server.c: add documentation of mmd_lock() and mmd_unlock()
-
-2006-02-14 21:25  maan
-
-       * README: add gcc to the list of required software
-
-2006-02-14 21:07  maan
-
-       * Makefile.in: make gcc-2.95.4 happy
-
-2006-02-14 21:02  maan
-
-       * Makefile.in, configure.ac: let gcc produce the dependencies for
-         make rather than doing it by hand
-
-2006-02-14 20:17  maan
-
-       * para.h: kill another unused macro
-
-2006-02-14 19:46  maan
-
-       * para.h: kill two unused macros, change year in copyright to 2006
-
-2006-02-14 19:41  maan
-
-       * server.h: add more documentation on AFS_READ and friends
-
-2006-02-14 19:40  maan
-
-       * daemon.c, daemon.h, para.h: move enum uptime from para.h to
-         daemon.h. Include daemon.h from daemon.c
-
-2006-02-14 19:26  maan
-
-       * para.h: use the __printf_x_y macros
-
-2006-02-14 19:20  maan
-
-       * para.h, server.h: move permission flags from para.h to server.h,
-         turn them into an enum and doxify
-
-2006-02-14 19:14  maan
-
-       * command.c, dopey.c, mysql.c, server.h: rename usage to synopsis
-         in struct server_command
-
-2006-02-14 19:09  maan
-
-       * server.h: add documentation of struct server_command and
-         struct_user
-
-2006-02-14 19:04  maan
-
-       * Makefile.in, list.h, ortp_recv.c, server.h, web/download.in.html:
-         oops, the last commit was an accident, back to previous versions
-
-2006-02-14 18:59  maan
-
-       * Makefile.in, list.h, ortp_recv.c, server.h, web/download.in.html:
-         add documentation o
-
-2006-02-14 03:36  maan
-
-       * server.c: log error message if database init failed
-
-2006-02-14 03:34  maan
-
-       * error.h, mysql.c: add two more error messages
-
-2006-02-14 02:56  maan
-
-       * command.c, db.h, dopey.c, mysql.c, server.h: add some
-         documentation, rename struct command to struct server_command
-
-2006-02-14 02:16  maan
-
-       * grab_client.h: cosmetics
-
-2006-02-14 02:07  maan
-
-       * mysql.c: make a function static, add documentation
-
-2006-02-14 02:05  maan
-
-       * filter_chain.c: fix typo, add file comment
-
-2006-02-14 02:04  maan
-
-       * audiod.c: add documentation of struct slot_info
-
-2006-02-14 01:25  maan
-
-       * stat.c: cosmetics
-
-2006-02-13 22:29  maan
-
-       * audiod.c: rename struct stream_io to struct slot_info
-
-2006-02-13 20:59  maan
-
-       * audiod.c: struct audio_format_info: rename wcmd to write_command
-         and add documentation
-
-2006-02-13 20:39  maan
-
-       * audiod.c: add documentation of struct audiod_command
-
-2006-02-13 20:32  maan
-
-       * audiod.c: rename struct command to audiod_command
-
-2006-02-13 02:41  maan
-
-       * time.c: add documentation
-
-2006-02-13 01:49  maan
-
-       * audiod.c: kill unused filter_cmds field in struct stream_io, add
-         some documentation, minor cleanups
-
-2006-02-12 03:55  maan
-
-       * recv.c: make parse_config() static
-
-2006-02-12 03:44  maan
-
-       * recv.c: only print an error message if the return value is
-         negative
-
-2006-02-12 03:42  maan
-
-       * close_on_fork.c, close_on_fork.h: add documentation for all
-         public symbols
-
-2006-02-12 03:12  maan
-
-       * audiod.c: make two functions static. Add documentation of
-         para_audiod's different modes and of num_filters()
-
-2006-02-11 22:04  maan
-
-       * list.h: kill two unused macros
-
-2006-02-11 21:23  maan
-
-       * grab_client.c: finish documentation of all public functions
-
-2006-02-11 20:42  maan
-
-       * audiod.c, audiod.h, error.h, grab_client.c: make
-         get_audio_format_num() public and use it from grab_client.c, add
-         documentation of grab_client_new().
-
-2006-02-11 20:28  maan
-
-       * grab_client.h: add documentiation of struct grab_client
-
-2006-02-11 19:48  maan
-
-       * audiod.c: new function get_audio_format_num()
-
-2006-02-11 01:47  maan
-
-       * audiod.c, audiod.h, grab_client.c: nuke the 'name' field of
-         struct audio_format
-
-2006-02-11 00:57  maan
-
-       * audiod.h, grab_client.h: move AUDIO_FORMAT_MP3,
-         AUDIO_FORMAT_ARRAY and MAX_STREAM_SLOTS from grab_client.h to
-         audiod.h.
-
-2006-02-11 00:35  maan
-
-       * http_recv.c, ortp_recv.c: fix typo in comment
-
-2006-02-10 04:38  maan
-
-       * Makefile.in: add some missing dependencies
-
-2006-02-10 04:37  maan
-
-       * grab_client.h: oops, argc, argv _are_ used. Add them again.
-
-2006-02-10 03:37  maan
-
-       * grab_client.h: make mode type enum rather than int, nuke two
-         unused members in struct grab_client
-
-2006-02-10 03:32  maan
-
-       * grab_client.c: whitespace cleanup
-
-2006-02-10 02:42  maan
-
-       * oggdec.c: Use the pointer to the filter_node as datasource for
-         the ov_callbacks. This makes the filter chain info available for
-         the read callback via the new fn->fci pointer. Use that pointer
-         instead of keeping a copy of the relevant information in struct
-         private_ogg_data. As this simplifies oggdec.c quite a bit, add
-         documentation of struct private_ogg_data to compensate ;)
-
-2006-02-09 23:53  maan
-
-       * audiod.c, compress.c, daemon.c, filter.c, filter.h,
-         filter_chain.c, mp3dec.c, oggdec.c, ortp_send.c, wav.c: add new
-         pointer 'fci' to struct filter_node. It is initialized by
-         para_audiod/para_filter when the chain is constructed. This
-         allows to strip off the fci argument of the convert functions of
-         struct filter.
-
-2006-02-09 00:57  maan
-
-       * oggdec.c: simplify the read callback
-
-2006-02-09 00:01  maan
-
-       * mp3dec.c: remove unused mad_timer from private_mp3_data and add
-         documentation of said struct
-
-2006-02-08 23:19  maan
-
-       * ortp.h, ortp_recv.c, ortp_send.c: also encode the chunk timestamp
-         in each packet
-
-2006-02-08 20:23  maan
-
-       * http_recv.c: rename private_http_data to private_http_recv_data,
-         just to be consistent
-
-2006-02-08 20:21  maan
-
-       * db.c: add short description for db.c, fix a typo.
-
-2006-02-08 20:14  maan
-
-       * compress.c: add documentation of struct private_compress_data,
-         change clip and pn to unsigned type
-
-2006-02-08 19:46  maan
-
-       * Makefile.in, audiod.c, command.c, daemon.c, daemon.h, para.h,
-         server.c: move function prototypes for daemon.c to its own file
-
-2006-02-08 19:41  maan
-
-       * NEWS: [no log message]
-
-2006-02-08 17:49  maan
-
-       * ortp_send.c: fix a huge memory leak which was introduced
-         yesterday
-
-2006-02-08 04:46  maan
-
-       * audiod.c, command.c, daemon.c, para.h, server.c: add
-         documentation of daemon.c, minor cleanups
-
-2006-02-08 02:37  maan
-
-       * audiod.c, recv.h: nuke chunk_time from struct receiver_node
-
-2006-02-08 02:35  maan
-
-       * string.c: better docu of s_a_r()
-
-2006-02-08 02:05  maan
-
-       * filter_chain.c: filter_io: call the convert function of each
-         filter not just once, but in a loop that exits when nothing was
-         converted. Fixes drop outs with ortp and ogg.
-
-2006-02-08 01:28  maan
-
-       * error.h, ortp.h, ortp_recv.c, ortp_recv.ggo, ortp_send.c: encode
-         the chunk time and a flag which indicates whether headers get
-         streamed at the beginning of each data packet. This allows to
-         nuke the --chunk_time and --header command line options of the
-         ortp receiver.
-
-2006-02-08 01:00  maan
-
-       * wav.c: cosmetics
-
-2006-02-08 00:59  maan
-
-       * recv.c: print error message instead of error number
-
-2006-02-07 00:12  maan
-
-       * mp3dec.c: trvial rename: mp3dec_data -> private_mp3dec_data. Just
-         to keep naming consistent with the other filters/receivers
-
-2006-02-07 00:08  maan
-
-       * ortp_recv.c: finish documentation of struct private_ortp_data
-
-2006-02-06 18:43  maan
-
-       * ortp_recv.c: kill the timeout member of struct private_ortp_data.
-         Start documentation of this struct
-
-2006-02-06 17:48  maan
-
-       * filter.h: move the fancy macros to the end and exclude them from
-         doxification
-
-2006-02-06 17:46  maan
-
-       * afs.h: cosmetics
-
-2006-02-06 17:35  maan
-
-       * filter.h: add another reference
-
-2006-02-06 17:34  maan
-
-       * error.h, oggdec.c, recv.h: add some conditional sections to
-         nicify the doxygen output
-
-2006-02-06 17:22  maan
-
-       * afs.h: kill two unused prototypes
-
-2006-02-06 06:25  maan
-
-       * Makefile.in: add -Wunused-macros to DEBUG_CPPFLAGS
-
-2006-02-06 06:22  maan
-
-       * audiod.c, compress.c, sdl_gui.c: kill some more dead macros
-
-2006-02-06 06:18  maan
-
-       * gui.c: kill two unused macros
-
-2006-02-06 05:16  maan
-
-       * recv.h, recv_common.c: this array must be called 'receivers'
-         anyway as this is the name that gets exported a few lines above.
-         Hence, no need to make it a function-like macro.
-
-2006-02-06 05:09  maan
-
-       * recv.h: add documentation for struct receiver_node
-
-2006-02-06 04:42  maan
-
-       * filter.h: add some introductory text on paraslash filters, use
-         multi-line macros
-
-2006-02-06 04:00  maan
-
-       * http_recv.c, ortp_recv.c, recv.h: nuke unused print_help
-
-2006-02-06 03:55  maan
-
-       * recv.h: finish documentation of struct receiver
-
-2006-02-06 01:53  maan
-
-       * para.h: minor cleanup
-
-2006-02-06 01:52  maan
-
-       * http_recv.c: kill unused HTTP_DISCONNECTED, use named enum and
-         add documentaion of struct private_http_data
-
-2006-02-06 00:46  maan
-
-       * http_recv.c, ortp_recv.c, recv.c, recv.h: all receiver init
-         functions always return success. Let them return void instead.
-         Start doxification of recv.h. http_recv.c/ortp_recv.c: No need to
-         keep a copy of the configuration in the private data of each
-         receiver node. recv.c: Initialize the activated receiver only
-         once.
-
-2006-02-06 00:00  maan
-
-       * recv_common.c: delete two extern function declarations that are
-         already declared in recv.h
-
-2006-02-05 21:42  maan
-
-       * gui.c: cosmetics
-
-2006-02-05 21:38  maan
-
-       * http_send.c: do not use send_bin_buffer() as it retries on short
-         writes which might block. Use write() instead and queue the
-         remaining buffer on short writes.
-
-2006-02-05 21:34  maan
-
-       * audiod.c: add missing call to clear_slot()
-
-2006-02-05 19:41  maan
-
-       * gui.c: redraw bot win on SIGWINCH
-
-2006-02-05 02:09  maan
-
-       * Makefile.in: add ringbuffer.h to headers
-
-2006-02-05 00:52  maan
-
-       * gui.c: fix a off-by-one scrolling bug
-
-2006-02-05 00:11  maan
-
-       * gui.c: Kill the crappy output pager. It is no longer needed as
-         the bottom window is scrollable
-
-2006-02-04 22:33  maan
-
-       * recv.h: kill unused argc, argv from struct receiver_node
-
-2006-02-04 22:24  maan
-
-       * error.h: adjust NUM_SS
-
-2006-02-04 22:21  maan
-
-       * error.h: kill the unused first argument of PARA_ERROR()
-
-2006-02-04 22:09  maan
-
-       * error.h: doxyfication
-
-2006-02-04 20:36  maan
-
-       * audiod.c, filter.c, filter.h, filter_chain.c: make
-         check_filter_arg() return int (the filter number) which is a much
-         saner interface that what we've had before. Now, fn-conf is NULL
-         if no command line parser exists for that filter and
-         success/failure is detected by the return value. Add
-         documentation for filter_chain.c and the remaining part of
-         filter.h
-
-2006-02-04 03:08  maan
-
-       * audiod.c, compress.c, filter.c, filter.h, filter_chain.c,
-         mp3dec.c, oggdec.c, wav.c: init() and open() are always
-         successful, for all filters. So make them return void instead of
-         int. Include the mp3dec filter only if mad headers mad libs both
-         were detected. Make wav_open() static. Start doxyfication of
-         filter.h
-
-2006-02-04 00:01  maan
-
-       * audiod.c: use init_filters() instead of duplicating it
-
-2006-02-03 23:34  maan
-
-       * client.c, http_recv.c, net.c, net.h: rename do_connect() to
-         para_connect()
-
-2006-02-03 23:03  maan
-
-       * string.c: switch to doxygen format, add some references
-
-2006-02-03 22:40  maan
-
-       * Makefile.in, audioc.c, audiod.c, client.c, command.c, dopey.c,
-         http_recv.c, http_send.c, mysql.c, net.c, para.h, server.c,
-         string.c: add dependencies on new net.h, move para_hostname()
-         from net to string which makes afs independent of net as it
-         should be. No need to include gcc-compat.h twice.
-
-2006-02-03 22:37  maan
-
-       * net.h: contains function declarations for all non-static
-         functions in net.c. Yanked out from para.h.
-
-2006-02-03 21:47  maan
-
-       * Makefile.in: whitespace fixes
-
-2006-02-03 21:42  maan
-
-       * net.c: document all remaining non-static functions
-
-2006-02-03 21:41  maan
-
-       * stat.c: add documentation for stat_client_add()
-
-2006-02-03 07:13  maan
-
-       * audiod.c, para.h, stat.c: rename dump_stat_line() to
-         stat_client_write() and add documentation
-
-2006-02-02 18:42  maan
-
-       * afs.c, afs.h, mp3.c, ogg.c: simplify read_chunk()
-
-2006-02-02 16:48  maan
-
-       * afs.c, afs.h, db.h, ringbuffer.c, stat.c, string.c: switch to
-         doxygen comment style
-
-2006-02-02 16:47  maan
-
-       * db.c: whitespace fixes, switch to doxygen comment style
-
-2006-02-02 01:15  maan
-
-       * net.c, signal.c: switch to doxygen comment format
-
-2006-02-01 22:07  maan
-
-       * net.c, para.h: add more documentation, minor cleanups
-
-2006-02-01 22:06  maan
-
-       * ringbuffer.c: cosmetics
-
-2006-02-01 19:40  maan
-
-       * NEWS: [no log message]
-
-2006-02-01 19:40  maan
-
-       * error.h: add ringbuffer stuff
-
-2006-02-01 19:39  maan
-
-       * Makefile.in, configure.ac: gui and audiod need ringbuffer.o
-
-2006-02-01 19:38  maan
-
-       * gui.c: make bottom window scrollable
-
-2006-02-01 19:36  maan
-
-       * audiod.c: use the generic ringbuffer functions from ringbuffer.c
-
-2006-02-01 19:25  maan
-
-       * ringbuffer.c, ringbuffer.h: generic ring buffer routines to be
-         used by audiod and gui
-
-2006-02-01 19:24  maan
-
-       * http_send.c: comment out noisy debug message
-
-2006-01-29 21:52  maan
-
-       * oggdec.c: no source doc for static functions, kill obsolete
-         comment
-
-2006-01-29 21:30  maan
-
-       * mp3.c, play.c: no docbook for static functions
-
-2006-01-29 21:25  maan
-
-       * afs.c, db.h, dopey.c, server.c: make update_audio_file()
-         optional, add documentation of struct dbtool
-
-2006-01-29 14:38  maan
-
-       * pics/paraslash/no_pics.jpg: no need to include this in each
-         tarball
-
-2006-01-27 19:34  maan
-
-       * server.c: use ifdef HAVE_ORTP rather than ifdef HAVE_LIBORTP as
-         the former is only defined if libortp _and_ the ortp headers were
-         found, which is what we want here.
-
-2006-01-27 19:14  maan
-
-       * audiod.c: add missing <cr>
-
-2006-01-27 17:48  maan
-
-       * stat.c: add documentation for stat_line_valid()
-
-2006-01-27 17:35  maan
-
-       * configure.ac: fix ortp detection
-
-2006-01-27 15:28  maan
-
-       * string.c: fix some typos in documentation
-
-2006-01-27 15:17  maan
-
-       * stat.c: add documentation for for_each_line()
-
-2006-01-27 15:01  maan
-
-       * audiod.c, gui.c, gui_common.c, para.h, stat.c: rename
-         check_buf_for_items() to for_each_line()
-
-2006-01-27 13:14  maan
-
-       * NEWS, audiod.c, error.h, gui.c, http_recv.c, para.h, server.c,
-         signal.c: simplify para_signal_init(), add documentation for each
-         non-static function in signal.c
-
-2006-01-27 12:13  maan
-
-       * server.c: use para_reap_children() from signal.c rather than
-         duplicating its code in server.c
-
-2006-01-27 10:14  maan
-
-       * afs.h: add documentation for struct audio format
-
-2006-01-26 20:36  maan
-
-       * afs.c: add documentation for afs_send_chunk()
-
-2006-01-26 19:56  maan
-
-       * afs.c, afs.h, server.c: simplify afs_preselect() and add
-         documentation
-
-2006-01-26 19:29  maan
-
-       * afs.c: afs_preselect(): kill an unused variable and add some
-         documentation
-
-2006-01-26 19:08  maan
-
-       * afs.c, afs.h, server.c: rename afs_mainloop() to afs_preselect()
-
-2006-01-26 19:06  maan
-
-       * command.c: com_nomore(): only set the NO_MORE bit if playing or
-         paused
-
-2006-01-26 19:03  maan
-
-       * afs.c: add documentation of afs_init() and of afs_playing() and
-         friends
-
-2006-01-26 17:22  maan
-
-       * http_recv.c, net.c: use the return value of do_connect(). Move a
-         generic log message from http_recv.c to net.c.
-
-2006-01-26 15:34  maan
-
-       * error.h, net.c: E_HOST_INFO belongs to the net error list rather
-         than the recv error list. That fixes an audiod segfault when
-         given an invalid hostname as the http receiver option (because
-         the recv error list is undefined in audiod). Also, kill pointless
-         log message in get_host_info().
-
-2006-01-25 16:48  maan
-
-       * play.c: cosmetics
-
-2006-01-25 15:32  maan
-
-       * client.c, crypt.c, db.c, dopey.c, ogg.c: replace 2005 by 2006 in
-         GPL headers
-
-2006-01-25 15:23  maan
-
-       * error.h: fix NUM_SS
-
-2006-01-25 15:06  maan
-
-       * NEWS, command.c, db.h, error.h, mysql.c, server.c: convert the
-         remaining part of para_server to the new error subsystem
-
-2006-01-25 12:32  maan
-
-       * dopey.c, error.h: convert dopey.c to the new error subsystem
-
-2006-01-25 11:53  maan
-
-       * error.h, http_send.c, ortp_send.c, send.h: the return value of
-         sender.set_fds and sender.send is never checked. In fact, all
-         these functions always returned 1. Let them return void instead.
-
-2006-01-25 11:32  maan
-
-       * error.h, http_send.c, net.c, para.h: convert the http sender to
-         the new error subsystem
-
-2006-01-25 10:42  maan
-
-       * client.c, command.c, crypt.c, crypt.h: rename
-         para_encrypt/para_decrypt to
-         para_encrypt_challenge/para_decrypt_challenge
-
-2006-01-25 10:35  maan
-
-       * crypt.c, error.h: convert crypt.c to the new error subsystem
-
-2006-01-25 09:48  maan
-
-       * db.c, db.h, dopey.c, error.h, mysql.c: convert db.c to the new
-         error subsystem. Move the common directory changing/restoring
-         code from dopey.c/mysql.c to db.c. Add documentation for
-         find_audio_files().
-
-2006-01-25 08:06  maan
-
-       * mp3.c: kill the 'file' parameter of find_valid_start() as
-         find_valid_start() knows it anyway
-
-2006-01-25 07:57  maan
-
-       * afs.c, afs.h, error.h: convert afs to the new error subsystem. As
-         the return values of afs_send_chunk() and afs_mainloop() are
-         never used, change them to return void
-
-2006-01-24 13:21  maan
-
-       * afs.c, afs.h, server.c: kill unused afs_handle_sighup()
-
-2006-01-24 13:11  maan
-
-       * error.h, mp3.c, ogg.c: convert ogg.c to the new error subsystem
-
-2006-01-24 11:33  maan
-
-       * error.h, mp3.c: error messages for the mp3 format handler
-
-2006-01-24 10:37  maan
-
-       * error.h: first preparations for para_server towards the new error
-         subsystem
-
-2006-01-24 10:36  maan
-
-       * Makefile.in, configure.ac: cleanup of the build system
-
-2006-01-24 07:40  maan
-
-       * afs.c: cosmetics
-
-2006-01-24 05:54  maan
-
-       * Makefile.in, NEWS, configure.ac: new codename, reset version to
-         cvs
-
-2006-01-24 05:51  maan
-
-       * versions/: paraslash-0.2.9.tar.bz2, paraslash-0.2.9.tar.bz2.asc:
-         paraslash-0.2.9
-
-2006-01-24 05:50  maan
-
-       * Makefile.in, NEWS, configure.ac, scripts/demo-script,
-         web/index.in.html: paraslash 0.2.9
-
-2006-01-24 05:43  maan
-
-       * web/demo.in.html: kill the instructions for manual installation
-         as they do not work with paraslash-0.2.9 any more.
-
-2006-01-24 05:01  maan
-
-       * audiod.c: fix null pointer dereference in error log message
-         (s->receiver_node->receiver may well be NULL on errors)
-
-2006-01-24 03:54  maan
-
-       * README: [no log message]
-
-2006-01-24 03:16  maan
-
-       * command.c: initialize argv pointer to NULL as it is freed
-         unconditionally at the end of handle_connect()
-
-2006-01-23 14:18  maan
-
-       * FEATURES: [no log message]
-
-2006-01-23 08:52  maan
-
-       * web/license.in.html: add a link to a diff between v2 and v3 of
-         the GPL
-
-2006-01-23 08:08  maan
-
-       * Makefile.in: use para_util to make the changelog. Restrict output
-         to log messages newer than one year to reduce size
-
-2006-01-23 06:47  maan
-
-       * grab_client.c: handle short grab client writes properly according
-         to their grabbing mode: close pedantic grab clients, ignore the
-         short write for sloppy grab clients and rewrite the remaining
-         buffer in case of aggressive grab clients
-
-2006-01-23 06:44  maan
-
-       * audiod.c: make client_write() return an error on short writes,
-         always use the non-blocking write_client() instead of the
-         blocking send_buffer()
-
-2006-01-23 06:27  maan
-
-       * audiod.c: only set the filter chain error if there is a filter
-         chain. Fixes potential NULL pointer dereference.
-
-2006-01-23 06:25  maan
-
-       * grab_client.c: fix a use-after-free bug and remove the grab
-         client fd from the close_on_fork list in gc_close()
-
-2006-01-23 05:01  maan
-
-       * audiod.c, error.h, http_send.c, net.c, para.h, server.c:
-         generalize and simplify do_accept() so that it can also be used
-         by audiod. Rename it to para_accept() and add documentation as we
-         are at it.
-
-2006-01-23 04:29  maan
-
-       * gcc-compat.h, string.c: add documentation for each function in
-         string.c
-
-2006-01-23 01:54  maan
-
-       * Makefile.in: add some missing dependencies
-
-2006-01-23 01:43  maan
-
-       * mp3dec.c, ortp_send.c, wav.c: fix some signed issues noted by
-         gcc-4.0.2
-
-2006-01-23 01:39  maan
-
-       * filter.h: make gcc-4.0.2 happy
-
-2006-01-23 00:49  maan
-
-       * audiod.c, compress.c, filter_chain.c, http_send.c, oggdec.c: kill
-         some unused function parameters or mark them __unused if
-         appropriate
-
-2006-01-23 00:38  maan
-
-       * Makefile.in: add -W to DEBUG_CPPFLAGS instead of -Wunused wich
-         appeared tiwce
-
-2006-01-23 00:35  maan
-
-       * grab_client.c: fix serious typo
-
-2006-01-23 00:13  maan
-
-       * audiod.c: open_filters() exits immediately on errors, no need to
-         provide a return value
-
-2006-01-22 22:59  maan
-
-       * audioc.c, command.c, http_send.c, mp3.c, play.c, recv.c,
-         server.c, signal.c, stat.c, string.c, wav.c: change 2005 to 2006
-         in GPL header
-
-2006-01-22 22:59  maan
-
-       * NEWS: [no log message]
-
-2006-01-22 22:53  maan
-
-       * daemon.c: cosmetics
-
-2006-01-22 22:41  maan
-
-       * FEATURES: typo
-
-2006-01-22 08:13  maan
-
-       * README.mysql: [no log message]
-
-2006-01-22 07:52  maan
-
-       * FEATURES: [no log message]
-
-2006-01-22 07:19  maan
-
-       * skencil/overview.sk: update to forthcoming v0.2.9
-
-2006-01-22 05:22  maan
-
-       * command.c, server.c: shut down non-authorized connections after
-         10 seconds
-
-2006-01-22 04:41  maan
-
-       * audiod.c, filter_chain.c, recv_common.c: comment out some debug
-         messages
-
-2006-01-22 04:41  maan
-
-       * Makefile.in: format the output of cvs2cl to avoid long lines
-
-2006-01-22 04:32  maan
-
-       * Makefile.in: typo
-
-2006-01-22 04:27  maan
-
-       * Makefile.in: adjust filename of startup 'screenshots'
-
-2006-01-22 04:23  maan
-
-       * web/screenshots.in.html: adjust filename of startup 'screenshots'
-
-2006-01-22 04:21  maan
-
-       * pics/screenshots/: para_audiod-startup.txt,
-         para_server-startup.txt: recent versions
-
-2006-01-22 04:19  maan
-
-       * pics/screenshots/: para_audiod-2005-11-10.loglevel1.txt,
-         para_server-2005-10-13.loglevel1.txt: replaced by
-         para_audiod-startup.txt and para_server-startup.txt
-
-2006-01-22 03:55  maan
-
-       * audiod.c, daemon.c, para.h, server.c, string.c: make sure fd 0,
-         1, and 2 are valid. In daemon mode, dup2() these fds to /dev/null
-
-2006-01-22 03:27  maan
-
-       * audiod.c, audiod.ggo: new command line option:
-         --no_default_filters to deactivate the automatic filter
-         activation. Kill ifdefs HAVE_MAD and HAVE_OGGVORBIS as audiod now
-         supports both mp3 and ogg even if the mp3dec/oggdec filter is not
-         compiled in. Use --no_default_filters and e.g 'madplay -' as the
-         stream write command in this case.
-
-2006-01-22 00:37  maan
-
-       * ortp_recv.c: loglevel adjustment
-
-2006-01-22 00:36  maan
-
-       * audiod.c: filter_io() returns a proper error value, so set
-         fci->error accordingly
-
-2006-01-21 23:57  maan
-
-       * http_send.c: replace http_check_perms() by a saner version and
-         rename it to host_in_access_perm_list()
-
-2006-01-21 22:12  maan
-
-       * audiod.c: remove an unused variable
-
-2006-01-21 22:08  maan
-
-       * Makefile.in, NEWS, audiod.c, configure.ac, error.h, exec.c,
-         filter.c, filter_chain.c, grab_client.c, grab_client.h,
-         http_recv.c, mp3.c, mp3dec.c, net.c, oggdec.c, ortp_recv.c,
-         para.h, recv.c, recv.h, recv_common.c, signal.c, stat.c,
-         string.c: the shiny new error subsystem
-
-2006-01-21 22:07  maan
-
-       * web/download.in.html: mention that the nightly snapshot may or
-         may not compile
-
-2006-01-21 22:06  maan
-
-       * wav.c: write the wave header and the first chunk in one run if
-         output buffer can hold both
-
-2006-01-21 22:01  maan
-
-       * compress_filter.ggo: reduce default value of gain_max
-
-2006-01-18 20:39  maan
-
-       * compress.c: fix a nasty casting bug which sometimes caused an
-         output buffer overflow by 2 bytes. Also make sure we always
-         convert an even number of bytes
-
-2006-01-16 00:23  maan
-
-       * audiod.c: do not close filters as long as writer pid > 0
-
-2006-01-16 00:19  maan
-
-       * para.h: add some missing parentheses
-
-2006-01-15 18:07  maan
-
-       * audiod.c: fix nasty thinko: close_decoder_if_idle() might close
-         the receiver node, so s->receiver_node becomes NULL in this case.
-         The current code, however, saves s->receiver node in the local
-         variable 'rn' _before_ it calls close_decoder_if_idle() which
-         means that rn points to memory already freed. Fix is trivial:
-         Just call close_decoder_if_idle() at the beginning of the
-         FOR_EACH_SLOT loop
-
-2006-01-15 16:53  maan
-
-       * ortp_send.c: comment out two noisy debug messages
-
-2006-01-15 07:30  maan
-
-       * configure.ac: set mad_defs to the empty string if mad was not
-         detected
-
-2006-01-15 07:30  maan
-
-       * grab_client.c: cosmetics
-
-2006-01-15 06:56  maan
-
-       * NEWS: [no log message]
-
-2006-01-15 06:33  maan
-
-       * FEATURES, INSTALL, Makefile.in, NEWS, README, audiod.c,
-         audiod.ggo, compress.c, compress_filter.ggo, configure.ac,
-         filter.c, filter.h, filter_chain.c, grab_client.c, grab_client.h,
-         http_recv.c, mp3dec.c, oggdec.c, oggdec_filter.ggo, ortp.h,
-         ortp_recv.c, ortp_recv.ggo, ortp_send.c, para.h, recv.c, recv.h:
-         integrate para_recv and para_filter into para_audiod
-
-2006-01-15 06:27  maan
-
-       * net.c: add GPL header, use sizeof(struct ucred) instead of
-         sizeof(*cred) for the length argument of memcopy
-
-2006-01-15 06:06  maan
-
-       * audioc.c: avoid an extra <cr>
-
-2006-01-15 06:03  maan
-
-       * audiod.h: ATM, only one function prototype that is used by the
-         grabbing routines
-
-2006-01-15 06:01  maan
-
-       * recv_common.c: contains functions that are shared between
-         para_audiod and para_recv
-
-2006-01-15 06:00  maan
-
-       * grab_client.c, grab_client.ggo, grab_client.h: functions and
-         command line options for the grab command of audiod.
-
-2006-01-07 13:32  maan
-
-       * play.c: fix prebuffering
-
-2006-01-06 15:29  maan
-
-       * mp3dec.c: do not feed more than 4k to libmad
-
-2006-01-02 11:37  maan
-
-       * INSTALL, Makefile.in, configure.ac, http_recv.c, http_recv.ggo,
-         oggdec.c, ortp_recv.c, ortp_recv.ggo, recv.c, recv.ggo, recv.h:
-         receivers use their own command line parser
-
-2006-01-02 06:48  maan
-
-       * Makefile.in, NEWS, configure.ac: new codename, reset version to
-         cvs
-
-2006-01-02 06:46  maan
-
-       * versions/: paraslash-0.2.8.tar.bz2, paraslash-0.2.8.tar.bz2.asc:
-         paraslash-0.2.8
-
-2006-01-02 06:45  maan
-
-       * Makefile.in, NEWS, configure.ac, scripts/demo-script,
-         web/index.in.html: paraslash 0.2.8
-
-2006-01-02 05:31  maan
-
-       * filter.h: make the FILTER_INIT macro work also in the unsupported
-         case
-
-2006-01-02 05:04  maan
-
-       * compress.ggo, compress_filter.ggo: rename compress.cmdline.h to
-         compress_filter.cmdline.h
-
-2006-01-02 04:50  maan
-
-       * configure.ac: Add oggdec_filter.cmdline.o to $ogg_filter_objs.
-
-2006-01-02 04:50  maan
-
-       * filter.c: Do not print help via the -L option. Use the -f
-         filtername:-h instead.
-
-2006-01-02 04:50  maan
-
-       * Makefile.in: Use the same gengetopt options for all
-         xxx_filter.ggo files.
-
-2006-01-02 04:50  maan
-
-       * compress.ggo: cosmetics.
-
-2006-01-02 04:50  maan
-
-       * filter.h: new macros DECLARE_EXTERN_FILTER_INIT and FILTER_INIT
-         filter.h
-
-2006-01-02 04:50  maan
-
-       * compress.c: replace compress.cmdline.h by
-         compress_filter.cmdline.h, simplify compress_parse_config().
-
-2006-01-02 04:49  maan
-
-       * filter_chain.c: check_filter_arg(): only check filter args if the
-         filter has a config parser.
-
-2006-01-02 04:47  maan
-
-       * oggdec.c, oggdec_filter.ggo: make the ogg output buffer size a
-         config option
-
-2005-12-31 11:53  maan
-
-       * Makefile.in, compress.c, filter.c, filter.ggo, filter.h,
-         filter_chain.c, mp3dec.c, wav.c: make the filters use their own
-         ggo command line parser
-
-2005-12-31 05:31  maan
-
-       * Makefile.in, http_recv.c, ortp_recv.c, recv.c, recv.ggo, recv.h:
-         http_recv and ortp_recv no longer depend on the args_info struct.
-         This should allow that code to be reused from within para_audiod.
-
-2005-12-31 02:25  maan
-
-       * filter.c, server.ggo: cosmetics
-
-2005-12-30 11:52  maan
-
-       * command.c: com_version(): nicify output
-
-2005-12-30 10:26  maan
-
-       * compress.c: cosmetics
-
-2005-12-30 10:19  maan
-
-       * oggdec.c: make some functions static
-
-2005-12-30 07:00  maan
-
-       * filter.ggo: the command line options for para_filter
-
-2005-12-30 06:48  maan
-
-       * INSTALL, Makefile.in, NEWS, README, compress.c, configure.ac,
-         filter.c, filter.h, filter_chain.c, mp3dec.c, oggdec.c, wav.c:
-         the new modular filter design
-
-2005-12-30 04:48  maan
-
-       * ortp_send.c: turn off jitter compensation as it also delays the
-         EOF packet
-
-2005-12-29 03:04  maan
-
-       * play.c: fix nasty bug that caused para_play to stall: We must not
-         read more than chunk_buf bytes.
-
-2005-12-27 20:31  maan
-
-       * web/index.in.html: paraslash-0.2.7
-
-2005-12-27 20:21  maan
-
-       * Makefile.in, NEWS, configure.ac: new codename, reset version to
-         cvs
-
-2005-12-27 20:18  maan
-
-       * versions/: paraslash-0.2.7.tar.bz2, paraslash-0.2.7.tar.bz2.asc:
-         paraslash-0.2.7
-
-2005-12-27 20:17  maan
-
-       * Makefile.in, NEWS, configure.ac, index.html, scripts/demo-script:
-         paraslash 0.2.7
-
-2005-12-27 18:47  maan
-
-       * oggdec.c: use ov_raw_tell() to determine the initial delay in
-         case of holes in data
-
-2005-12-27 18:44  maan
-
-       * ogg.c: increase eof_timeout, reintroduce chunk_table shift
-
-2005-12-27 18:37  maan
-
-       * ortp_send.c: only reset each connection once
-
-2005-12-26 20:10  maan
-
-       * compress.ggo: better default values for gain_smooth and gain_max
-
-2005-12-26 20:03  maan
-
-       * afs.c: introduce a small delay before shutting down the senders.
-         This allows com_stat() to send 'audio_format=-1' in between
-
-2005-12-26 19:49  maan
-
-       * ortp_send.c: use rtp_session_reset() instead of
-         rtp_session_destroy()
-
-2005-12-26 19:25  maan
-
-       * daemon.c: fix minor mem leak
-
-2005-12-24 20:43  maan
-
-       * audiod.c: fix thinko in do_filter_io(): We tested ret==len (short
-         write) _AFTER_ decrementing len which triggred the memmove to
-         shift the buffer even if we had written the whole damn thing. But
-         the real bug is that the memmove was not executed in some rare
-         cases where we did have a short write. Kill that nasty bug with
-         pleasure and simplify the surrounding code a bit while we're at
-         it.
-
-2005-12-24 19:51  maan
-
-       * oggdec.c: distinguish between OV_HOLE and other errors
-
-2005-12-24 19:44  maan
-
-       * ortp_send.c: loglevel adjustment: use NOTICE loglevel for removal
-         of targets
-
-2005-12-23 23:27  maan
-
-       * audiod.c: clear play_time when stopped
-
-2005-12-23 23:26  maan
-
-       * ortp_send.c: turn off libortp's debug logging
-
-2005-12-23 23:23  maan
-
-       * http_recv.c, ortp_recv.c: para_log() is already declared in
-         para.h
-
-2005-12-23 23:00  maan
-
-       * CREDITS: add Jaroslav Kysela
-
-2005-12-23 22:41  maan
-
-       * command.c: com_stat(): only print mtime if we have a valid audio
-         file
-
-2005-12-23 22:40  maan
-
-       * afs.c: new function afs_eof() to be called when the 'next' flag
-         is set. Reset audio file info, dbinfo etc.
-
-2005-12-23 22:36  maan
-
-       * server.c: also refresh status after afs_send() if neccessary
-
-2005-12-23 19:34  maan
-
-       * command.c: get_status(): always use the copy of the mmd struct as
-         we do not hold the mmd_lock
-
-2005-12-23 19:12  maan
-
-       * command.c: com_stat(): kill an unused variable
-
-2005-12-22 23:48  maan
-
-       * http_send.c: kill unused http_send_header(). http_send(): the
-         current_chunk arg _is_ used, so nuke the __unused annotation
-
-2005-12-22 18:37  maan
-
-       * http_send.c: cosmetics
-
-2005-12-22 04:55  maan
-
-       * play.ggo, recv.ggo: typo
-
-2005-12-22 02:19  maan
-
-       * http_send.c: cosmetics
-
-2005-12-22 02:03  maan
-
-       * audiod.c: store last death time instead of last start time for
-         each format and use it together with the new MIN_PENALTY_MS to
-         avoid immediate restart of the (wrong) decoder
-
-2005-12-22 01:59  maan
-
-       * http_send.c: fix send-double-header-sent bug
-
-2005-12-21 22:12  maan
-
-       * server.c: kill an unused variable, add debug message
-
-2005-12-21 22:12  maan
-
-       * audiod.c: The previous change was a brain fart. Revert it.
-
-2005-12-21 22:11  maan
-
-       * audiod.ggo: reduce default stream delay to 200ms
-
-2005-12-21 17:09  maan
-
-       * audiod.c: wait for the audio format to be resent by para_server
-         before restarting the stream reader
-
-2005-12-21 02:28  maan
-
-       * recv.c: cosmetics
-
-2005-12-21 01:43  maan
-
-       * recv.c: add GPL header, whitespace cleanup
-
-2005-12-20 22:48  maan
-
-       * INSTALL, NEWS, README, audiod.c, audiod.ggo, http_recv.c: replace
-         para_http_recv and para_ortp_recv by para_recv
-
-2005-12-20 22:36  maan
-
-       * NEWS: [no log message]
-
-2005-12-20 22:36  maan
-
-       * play.c, string.c: cosmetics
-
-2005-12-20 22:35  maan
-
-       * list.h: reintroduce list_add_tail() as it is needed by
-         http_send.c
-
-2005-12-20 22:34  maan
-
-       * mp3.c: write chunk info as 'num_chunks x chunk_time' as this info
-         is read by audiod, increase eof time
-
-2005-12-20 22:34  maan
-
-       * ogg.c: write chunk info as 'num_chunks x chunk_time' as this info
-         is read by audiod. comment out some rather strange workaround
-         code in tunetable()
-
-2005-12-20 22:31  maan
-
-       * audiod.ggo: specify delay in milliseconds
-
-2005-12-20 22:30  maan
-
-       * oggdec.c: prebuffer data if hole was detected, increase output
-         buffer size
-
-2005-12-20 22:26  maan
-
-       * audiod.c: read the chunk time from server info and push that time
-         to the executed commands via the new CHUNK_TIME() macro. Use
-         milliseconds for the stream delay. Some misc fixes also
-
-2005-12-20 22:19  maan
-
-       * http_recv.c: rewrite to fit into the new receiver struct which is
-         also used by the ortp receiver. This should ease the inclusion
-         into para_audiod
-
-2005-12-20 22:16  maan
-
-       * ortp_recv.c: almost a complete rewrite. The inclusion into
-         para_recv, the update to ortp-0.8.x  and the new ORTP_EMPTY
-         packet type made this neccessary. Should chew less CPU now
-
-2005-12-20 22:12  maan
-
-       * http_send.c: implement a per-client packet queue that holds
-         packets which can not be sent out immediately
-
-2005-12-20 22:10  maan
-
-       * afs.c: always call the senders, even if there is no data to send.
-         This allows the senders to send out buffered data
-
-2005-12-20 22:08  maan
-
-       * recv.ggo: combined ortp_recv.ggo and http_recv.ggo, slightly
-         modified
-
-2005-12-20 22:07  maan
-
-       * http_recv.ggo, ortp_recv.ggo: these went to recv.ggo
-
-2005-12-20 22:05  maan
-
-       * Makefile.in, configure.ac, recv.c, recv.h: this combines
-         para_ortp_recv and para_http_recv into one binary
-
-2005-12-20 22:03  maan
-
-       * ortp.h, ortp_send.c: use the new ORTP_EMPTY packet to indicate
-         that no data packet is going to be sent right now, compute the
-         timestamp of the packet always by multiplying chunk_time and
-         chunks_sent instead of asking the ortp library, turn off
-         scheduling mode
-
-2005-12-17 22:16  maan
-
-       * compress.c: kill some dead code
-
-2005-12-15 15:26  maan
-
-       * ortp_send.c: use rtp_session_time_to_ts() instead of
-         rtp_session_get_current_send_ts() for computing the timestamp
-
-2005-12-15 15:24  maan
-
-       * afs.c: compute offset after reading the first chunk
-
-2005-12-08 16:02  maan
-
-       * web/footer.html: comment out ssi for last modification date.
-
-2005-12-08 12:52  maan
-
-       * afs.c: add some docu
-
-2005-12-08 12:52  maan
-
-       * mysql.c: com_streams(): If called with arg 'current_stream',
-         print the name of the current stream. This info is also availabe
-         by calling cs (change stream) with no args, but cs is restricted
-         to users with DB_WRITE privileges..
-
-2005-12-08 12:48  maan
-
-       * play.c: prebuffer data if start_time is not reached rather than
-         simply sleep until that time. Add some documentation
-
-2005-11-28 23:05  maan
-
-       * ortp_send.c: destroy session also in case EOF notifier could not
-         be sent
-
-2005-11-28 23:04  maan
-
-       * web/demo.in.html: mention -Z option for mpg123
-
-2005-11-23 16:42  maan
-
-       * web/contact.in.html: [no log message]
-
-2005-11-23 16:41  maan
-
-       * server.c: Oops. Fix random number generation.
-
-2005-11-15 14:48  maan
-
-       * sdl_gui.c: fix zombie bug
-
-2005-11-13 19:57  maan
-
-       * Makefile.in: add ChangeLog to phony targets. This way it gets
-         always rebuild.
-
-2005-11-13 19:29  maan
-
-       * Makefile.in: modify rule for PUBLIC_KEY so that it also applies
-         to key.anonymous
-
-2005-11-13 19:16  maan
-
-       * Makefile.in: add anonyous key to web_misc
-
-2005-11-13 19:11  maan
-
-       * key.anonymous: for www.paraslash.org
-
-2005-11-13 18:47  maan
-
-       * Makefile.in: move some stuff around, make web/sync, use sk2ps
-
-2005-11-13 18:17  maan
-
-       * pics/screenshots/: gui-2005-11-12.png,
-         para_audiod-2005-11-10.loglevel1.txt,
-         para_server-2005-10-13.loglevel1.txt: new screenshots
-
-2005-11-13 18:13  maan
-
-       * web/: contact.in.html, demo.in.html, documentation.in.html,
-         download.in.html, footer.html, header.html, index.in.html,
-         license.in.html, screenshots.in.html: new web pages
-
-2005-11-13 18:04  maan
-
-       * Makefile.in: add target www that replaces the old html target
-
-2005-11-13 04:00  maan
-
-       * dopey.c: add some more comments
-
-2005-11-13 03:59  maan
-
-       * CREDITS, FEATURES, INSTALL, NEWS, README, README.mysql: minor
-         corrections and cleanups
-
-2005-11-13 03:58  maan
-
-       * gcc-compat.h: make gcc 3.3.5 happy
-
-2005-11-10 23:28  maan
-
-       * afs.c, audiod.c, command.c, dopey.c, play.c, string.c: add some
-         missing includes
-
-2005-11-10 23:28  maan
-
-       * Makefile.in: tell gcc to bail out on implicit function
-         declarations
-
-2005-11-10 23:27  maan
-
-       * gui.c: para_gui does not kill any decoders. Remove obsolete help
-         text.
-
-2005-11-10 23:25  maan
-
-       * README: [no log message]
-
-2005-11-07 21:36  maan
-
-       * net.c, para.h: remove some incdudes which are not needed and move
-         inclusion ofnetdb.h from para.h to net.c
-
-2005-11-07 21:15  maan
-
-       * dbadm.c: whitespace cleanup
-
-2005-11-07 16:53  maan
-
-       * para.h: kill unused para_open_fifo()
-
-2005-11-07 16:28  maan
-
-       * stat.c: shutdown stat_client connection if corresponding fd is
-         not ready for writing
-
-2005-11-07 13:34  maan
-
-       * gcc-compat.h: remove the __const macro. It is not used by
-         paraslash, but alsa seems to use it for something else so gcc
-         produces the following warning: passing arg 4 of __assert_fail
-         discards qualifiers from pointer target type
-
-2005-11-06 19:08  maan
-
-       * index.html: typo
-
-2005-11-06 18:45  maan
-
-       * Makefile.in: make it work again for gcc-2.95.4
-
-2005-11-06 18:43  maan
-
-       * server.c: change #if HAVE_MYSQL to #ifdef HAVE_MYSQL
-
-2005-11-06 18:42  maan
-
-       * command.c, para.h: malloc.h is only needed from command.c, so
-         move the include from para.h to command.c
-
-2005-11-06 18:41  maan
-
-       * index.html: add icon, nicify layout, use :hover to highlight
-         links
-
-2005-11-06 18:37  maan
-
-       * pics/web/paraslash.ico: icon resource file
-
-2005-11-06 18:35  maan
-
-       * list.h: include stddef.h, kill unused macros
-
-2005-11-06 18:34  maan
-
-       * audiod.c: only list.h needs stddef.h, so include it from there
-
-2005-11-06 18:31  maan
-
-       * INSTALL: [no log message]
-
-2005-11-06 15:41  maan
-
-       * NEWS: [no log message]
-
-2005-11-06 15:41  maan
-
-       * Makefile.in: use common rule to let all object files depend on
-         gcc-compat.h and on para.h, add some more -W flags
-
-2005-11-06 14:53  maan
-
-       * daemon.c: fix warning: getpwnam discards qualifiers from pointer
-         target type
-
-2005-11-06 14:46  maan
-
-       * audiod.c: include gcc-compat.h and mark unused args as such.
-         Also, change third arg of accept() to proper type socklen_t*
-
-2005-11-06 14:42  maan
-
-       * client.c: include gcc-compat.h and mark arg of sigint_handler()
-         as unused
-
-2005-11-06 14:42  maan
-
-       * command.c: include gcc-compat.h and use __unused macros for
-         commands that take no args or do not output anything. Be a little
-         more anal and return -E_SYNTAX for commands that take no args in
-         case args were given
-
-2005-11-06 14:39  maan
-
-       * dbadm.c, audioc.c: include gcc-compat.h and mark args of dummy
-         para_log() as unused
-
-2005-11-06 14:37  maan
-
-       * db.c, dopey.c: kill unused arg dir, include and use gcc-compat.h
-
-2005-11-05 23:31  maan
-
-       * fade.c: include gcc-compat.h and mark loglevel arg of para_log()
-         as unused
-
-2005-11-05 23:30  maan
-
-       * http_send.c: include gcc-compat.h and use __unused macros for
-         unused args of http_send() (those are used by the ogg audio
-         format handler so we cannot simply kill the unused args),
-         http_handle_fds() no longer takes pointer to max_fileno. Mark
-         unused args of com_on() and com_off()
-
-2005-11-05 23:26  maan
-
-       * oggdec.c: use int main(void) as all args are unused
-
-2005-11-05 23:25  maan
-
-       * list.h: kill empty prefetch()
-
-2005-11-05 23:24  maan
-
-       * mysql.c: include gcc-compat.h and use __unused macros for
-         commands that take no args. Be a little more anal and return
-         -E_SYNTAX for commands that take no args in case args were given
-
-2005-11-05 23:22  maan
-
-       * net.c: include gcc-compat.h and use __printf and __must_check
-         macros
-
-2005-11-05 23:20  maan
-
-       * mp3dec.c: fix signedness bug, use int main(void) as all args are
-         unused
-
-2005-11-05 23:15  maan
-
-       * ortp_recv.c: include gcc-compat.h and use __printf macro
-
-2005-11-05 23:14  maan
-
-       * para.h: kill struct gui_command which was moved to gui.c, include
-         gcc-compat.h and use __must_check and __malloc macros
-
-2005-11-05 23:12  maan
-
-       * sdl_gui.c: use C99 array initializers, include gcc-compat.h and
-         mark loglevel arg of para_log() as unused
-
-2005-11-05 23:11  maan
-
-       * send.h: handle_fds() does no longer take a pointer to max_fileno
-
-2005-11-05 23:11  maan
-
-       * server.c: use macros from gcc-compat.h, move para_log(), no need
-         to init fd in init_random_seed(), handle_fds() does no longer
-         take a pointer to max_fileno
-
-2005-11-05 22:59  maan
-
-       * string.c: add __malloc and __must_check
-
-2005-11-05 22:57  maan
-
-       * gui.c: commands do not need to know the key which was pressed to
-         invoke them, just kill the arg. Move struct gui_command from
-         para.h to gui.c, use new __printf macro
-
-2005-11-05 17:22  maan
-
-       * gcc-compat.h: add __printf
-
-2005-11-05 17:19  maan
-
-       * afs.c, afs.h, mp3.c, ogg.c: no need to pass FILE pointer to
-         close_audio_file() as the audio format handlers know it anyway.
-         Kill unused function parameter raw_total in
-         ogg_compute_chunk_table()
-
-2005-11-05 17:12  maan
-
-       * index.html: new design with menu on the left
-
-2005-11-05 16:14  maan
-
-       * FEATURES: [no log message]
-
-2005-11-04 18:05  maan
-
-       * index.html: html links to directories should have a trailing
-         slash
-
-2005-11-01 13:57  maan
-
-       * http_send.c: fix dangerous typo in case of invalid get request
-
-2005-10-31 22:57  maan
-
-       * stat.c: use ISO C99 array initializers
-
-2005-10-31 22:56  maan
-
-       * Makefile.in: fix dependencies on close_on_fork.h, add
-         dependencies on new gcc-compat.h
-
-2005-10-31 22:53  maan
-
-       * audioc.c: add GPL header
-
-2005-10-31 22:05  maan
-
-       * client.c, command.c, crypt.c, net.c: fix some gcc-4 signedness
-         warnings regarding char vs unsigned char
-
-2005-10-31 22:05  maan
-
-       * play.c: fix gcc-4 signedness warning
-
-2005-10-31 22:02  maan
-
-       * audiod.c: use __noreturn gcc extenstion where appropriate which
-         allows to kill some bogus 'return 42' statements. Rename .buflen
-         of struct stream_io to .loaded (as in struct filter)
-
-2005-10-31 21:59  maan
-
-       * gcc-compat.h: beautified GCC extensions that define away for
-         non-gcc compilers and gcc 2. Kudos to Rob Love who mentioned that
-         at kernelplanet
-
-2005-10-29 22:19  maan
-
-       * Makefile.in, NEWS, configure.ac: new codename, reset version to
-         cvs, turn on debugging
-
-2005-10-29 22:16  maan
-
-       * versions/: paraslash-0.2.6.tar.bz2, paraslash-0.2.6.tar.bz2.asc:
-         paraslash-0.2.6
-
-2005-10-29 22:14  maan
-
-       * NEWS, configure.ac, index.html, scripts/demo-script: paraslash
-         0.2.6
-
-2005-10-29 21:18  maan
-
-       * Makefile.in: turn off debugging (-g)
-
-2005-10-29 18:32  maan
-
-       * command.c: cosmetics
-
-2005-10-29 18:32  maan
-
-       * compress.ggo: increase default values of gain_max and gain_smooth
-
-2005-10-28 21:46  maan
-
-       * command.c: cosmetics
-
-2005-10-28 21:38  maan
-
-       * command.c: mention the afs status bits in the help text of the
-         relevant commands
-
-2005-10-28 20:07  maan
-
-       * mysql.c: add some examples
-
-2005-10-28 18:12  maan
-
-       * mysql.c: typo
-
-2005-10-28 18:04  maan
-
-       * command.c: use 'audio file' instead of 'song'
-
-2005-10-28 17:56  maan
-
-       * afs.c, db.h, dopey.c, mysql.c: use 'audio file' instead of 'song'
-         also in struct dbtool
-
-2005-10-28 17:50  maan
-
-       * mysql.c: use 'audio file' instead of 'song', extend docu of ls
-
-2005-10-28 17:35  maan
-
-       * mysql.c: improve mbox docu
-
-2005-10-28 12:42  maan
-
-       * INSTALL, NEWS: [no log message]
-
-2005-10-27 20:48  maan
-
-       * crypt.h, crypt.c: fix debian compiler warning: passing arg 2 of
-         RSA_public_encrypt discards qualifiers from pointer target type
-
-2005-10-27 20:36  maan
-
-       * README: replace dead xiph link
-
-2005-10-27 20:25  maan
-
-       * INSTALL, README: [no log message]
-
-2005-10-27 19:55  maan
-
-       * index.html: mention new manual pages
-
-2005-10-27 19:32  maan
-
-       * mysql.c: typo
-
-2005-10-27 19:28  maan
-
-       * command.c: reformat help text of com_help
-
-2005-10-27 19:04  maan
-
-       * Makefile.in, index.html: include man pages that replace
-         manual.txt
-
-2005-10-27 18:29  maan
-
-       * 1.0, NEWS, command.c, mysql.c: further documentation cleanup
-
-2005-10-27 00:50  maan
-
-       * exec.c: kill unused para_open_fifo()
-
-2005-10-27 00:23  maan
-
-       * audiod.c, command.c, dopey.c, mysql.c: reformat, beautify and
-         improve documentation
-
-2005-10-26 01:37  maan
-
-       * net.c: whitespace cleanup
-
-2005-10-25 04:02  maan
-
-       * command.c: fix status update on db_write commands
-
-2005-10-24 01:26  maan
-
-       * client.c: kill debug message
-
-2005-10-23 21:16  maan
-
-       * audiod.c: handle short writes for grab clients properly according
-         to grab mode, logging improvements
-
-2005-10-23 20:50  maan
-
-       * audioc.c: use recv_bin_buffer() instead of recv_buffer(). Fixes
-         grab command
-
-2005-10-23 17:04  maan
-
-       * audiod.c, compress.c, dopey.c, para.h, string.c: introduce
-         para_calloc() and use it where aprropriate
-
-2005-10-23 16:57  maan
-
-       * NEWS: typo
-
-2005-10-23 16:37  maan
-
-       * client.c: kill unused function get_exit_status(), make two other
-         functions static
-
-2005-10-23 05:13  maan
-
-       * NEWS: [no log message]
-
-2005-10-23 04:56  maan
-
-       * stat.c: add GPL header
-
-2005-10-23 04:55  maan
-
-       * command.c, server.c: init random seed in parent, rather that in
-         each client. As reads of /dev/random may block, clients were
-         blocked under load if many connections arrived at the same time.
-
-2005-10-23 04:41  maan
-
-       * Makefile.in: add two missing header files to the tarball
-
-2005-10-23 04:07  maan
-
-       * audiod.c, para.h, stat.c: use macros from list.h for stat_client
-         list rather than homebrewed list logic, some smallish cleanups
-         also.
-
-2005-10-23 02:03  maan
-
-       * Makefile.in, audiod.c, stat.c: add stream readers/writers/filters
-         as well as grab/stat clients to the list of fds to be closed in
-         para_exec()
-
-2005-10-22 23:36  maan
-
-       * Makefile.in, audiod.c, exec.c: para_exec(): close fds on
-         close_on_fork after forking. Mark audiod's local socket fd for
-         close after fork
-
-2005-10-22 23:09  maan
-
-       * Makefile.in, http_send.c, server.c: use new close_on_fork list to
-         mark fds for closing in the child after fork
-
-2005-10-22 23:07  maan
-
-       * close_on_fork.c, close_on_fork.h: implement list of fds that
-         should be closed in the child after fork together with simple
-         functions to add/delete fds from that list as well a a function
-         that closes all fds on the list
-
-2005-10-22 20:18  maan
-
-       * gui.c: speed up display of command output by refreshing the
-         screen only after it is completely filled or there is no more
-         output available
-
-2005-10-22 19:58  maan
-
-       * gui.c, net.c, para.h, string.c: new macro: PARA_VSPRINTF, a
-         user-friendly and secure version of vsprintf(). Replace all
-         occurences of vsprintf by PARA_VSPRINTF, thus fixing some
-         potential buffer overflows in gui.c. Moreover, the new macro
-         allows to get rid of some duplicate code in make_message() and
-         send_va_buffer()
-
-2005-10-22 19:57  maan
-
-       * fade.c: simplify para_log()
-
-2005-10-22 19:48  maan
-
-       * NEWS: [no log message]
-
-2005-10-22 18:36  maan
-
-       * audiod.c: nuke another unused variable
-
-2005-10-22 18:33  maan
-
-       * audiod.c: nuke unused variable rb_bytes
-
-2005-10-22 17:28  maan
-
-       * client.c, command.c, para.h: major para_client cleanup: remove
-         sigchild-handling, change some old crufty code to use
-         make_message() and para_strcat(), improve SIGINT handling,
-         #define CHALLENGE_RESPONSE_MSG in para.h and use it from server
-         and client rather than harcoding the message text.
-
-2005-10-22 15:55  maan
-
-       * client.c: fix interactive mode (only the first command worked)
-
-2005-10-22 15:48  maan
-
-       * 1.0, Makefile.in, NEWS, audioc.c, audiod.c, client.c, client.ggo,
-         command.c, crypt.c, crypt.h, http_recv.c, net.c, para.h, rc4.h:
-         implement crypted connections by using openssl's rc4 stream
-         cipher algorithm
-
-2005-10-20 15:26  maan
-
-       * command.c: kill outdated comment
-
-2005-10-19 15:22  maan
-
-       * net.c: remove unused pass_fd()
-
-2005-10-19 15:18  maan
-
-       * net.c, para.h: make do_bind() static
-
-2005-10-19 15:17  maan
-
-       * net.c, para.h: make setserversockopts() static
-
-2005-10-19 11:52  maan
-
-       * server.h: whitespace cleanup
-
-2005-10-19 11:51  maan
-
-       * Makefile.in, NEWS, afs.c, command.c, db.c, db.h, dopey.c,
-         http_send.c, mp3.c, mysql.c, ogg.c, ortp_send.c, server.c,
-         server.h: major header cleanup
-
-2005-10-19 11:50  maan
-
-       * afs.h: contains afs related stuff, pulled out from server.h
-
-2005-10-17 09:45  maan
-
-       * SFont.c: cosmetics
-
-2005-10-17 07:54  maan
-
-       * Makefile.in, NEWS, README.mysql, client.c, dopey.c, mysql.c,
-         server.ggo, server.h: implement, use and document an internal
-         find command and get rid of exec.o in para_server
-
-2005-10-17 07:53  maan
-
-       * db.c, db.h: functions common to all database tools. ATM, only the
-         new internal find command
-
-2005-10-17 02:27  maan
-
-       * SFont.c: remove superflous include
-
-2005-10-16 22:15  maan
-
-       * net.c: cosmetics
-
-2005-10-16 22:13  maan
-
-       * INSTALL: [no log message]
-
-2005-10-14 10:10  maan
-
-       * krell.c: replace old email address
-
-2005-10-14 10:10  maan
-
-       * http_send.c: loglevel adjustment
-
-2005-10-14 05:23  maan
-
-       * README.mysql: whitespace cleanup
-
-2005-10-14 01:15  maan
-
-       * http_send.c, ortp_send.c, send.h, server.c: as senders can be
-         controlled at runtime, there is no need to panic on
-         sender-related syntax errors in command line args or  in the
-         config file. Just ignore invalid options and make corresponding
-         functions return void.
-
-2005-10-14 00:54  maan
-
-       * afs.c, mp3.c, ogg.c, server.c, server.h: afs_init is always
-         successful. Change it to return void.
-
-2005-10-14 00:45  maan
-
-       * afs.c, command.c, server.h: the set of supported audio formats is
-         known at compile time. So make it a preproccessor macro and
-         remove the function that computed this constant value. Also
-         introduce an array-version of all supported audio formats.
-
-2005-10-14 00:07  maan
-
-       * index.html: typo
-
-2005-10-13 23:00  maan
-
-       * Makefile.in, NEWS, configure.ac: new codename, reset version to
-         cvs
-
-2005-10-13 22:56  maan
-
-       * versions/: paraslash-0.2.5.tar.bz2, paraslash-0.2.5.tar.bz2.asc:
-         paraslash-0.2.5
-
-2005-10-13 22:55  maan
-
-       * NEWS, configure.ac, index.html, scripts/demo-script: paraslash
-         0.2.5
-
-2005-10-13 22:34  maan
-
-       * mysql.c: make debian's gcc-2.95.4 happy
-
-2005-10-13 20:56  maan
-
-       * server.c: another small memory leak
-
-2005-10-13 20:56  maan
-
-       * ogg.c: fix a memory leak
-
-2005-10-13 10:37  maan
-
-       * audioc.c, para.h, string.c: move concat_args() from string.c to
-         audioc.c. As it is only used there, make it static
-
-2005-10-13 10:33  maan
-
-       * daemon.c, string.c: move uptime_str() from string.c to daemon.c.
-         It is only used by para_server and by para_audiod
-
-2005-10-13 10:14  maan
-
-       * http_send.c: cosmetics
-
-2005-10-13 10:05  maan
-
-       * http_recv.c: decrease buffer size: 8k should be enough.
-
-2005-10-13 09:45  maan
-
-       * http_recv.c: add GPL header
-
-2005-10-13 09:00  maan
-
-       * exec.c, para.h, string.c: move split_args() from exec.c to
-         string.c. Each caller of split_args() links string.o anyway.
-         Moreover, para_server needs it, and the plan is to make
-         para_server fully single-threaded..
-
-2005-10-13 08:50  maan
-
-       * string.c: no need to include server.h. para.h is enough
-
-2005-10-13 07:35  maan
-
-       * command.c, http_send.c, ortp_send.c, send.h: add sender-specific
-         help commands
-
-2005-10-13 07:28  maan
-
-       * NEWS: [no log message]
-
-2005-10-13 05:29  maan
-
-       * ogg.c: free buffers on song exit, take packet-end time into
-         aacount when computing the chunk table (should fix dropouts at
-         the beginnin)
-
-2005-10-13 03:21  maan
-
-       * audiod.c: fix segfault in get_empty_slot() for invalid
-         stream_read commands
-
-2005-10-13 00:19  maan
-
-       * audiod.c: simplify check_sigchld(), fix potential segfault on
-         server shutdown
-
-2005-10-12 22:02  maan
-
-       * skencil/overview.sk: nuke para_send, change version to 0.2.5
-
-2005-10-11 21:15  maan
-
-       * oggdec.c: kill bogus usleep, increase bufsize to 64k, handle
-         short writes
-
-2005-10-11 21:03  maan
-
-       * ortp_send.c: check return values from rtp_session_send_with_ts()
-         and shut down target on errors
-
-2005-10-11 04:52  maan
-
-       * gui.c: fix memory leak in client_cmd_cmdline()
-
-2005-10-11 03:27  maan
-
-       * ortp_send.c: fix null pointer bug in com_si()
-
-2005-10-11 03:26  maan
-
-       * audiod.c: kill reader, writer and filters on stream timeout, fix
-         close_unused_stream_fds() in case stream writer dies first
-
-2005-10-10 07:30  maan
-
-       * ortp_send.c: cosmetics
-
-2005-10-10 06:08  maan
-
-       * mysql.c: fix a memory leak in get_query()
-
-2005-10-10 06:04  maan
-
-       * http.h, http_recv.c, http_send.c, net.c, para.h: send/recv proper
-         get request, not just a minimal one, so para_http_recv works also
-         with other http streamers like poc-http
-
-2005-10-10 06:00  maan
-
-       * Makefile.in: add missing dependencies of http_recv, add new
-         header files for the tarball, use -O0 optimization -- it produces
-         smaller binaries (on my current system) and valgrind likes it too
-
-2005-10-10 05:58  maan
-
-       * INSTALL: [no log message]
-
-2005-10-10 03:23  maan
-
-       * audiod.c: fix memory leak in handle_connect()
-
-2005-10-10 03:20  maan
-
-       * ortp_send.c: whitespace cleanup
-
-2005-10-10 03:18  maan
-
-       * ortp_recv.c: include ortp_recv.cmdline.h instead of former
-         recv.cmdline.h
-
-2005-10-10 03:17  maan
-
-       * server.c: fix memory leak in parse_config(), replace sprintf() by
-         make_message()
-
-2005-10-10 03:15  maan
-
-       * exec.c: fix memory leak in para_exec_cmdline_pid()
-
-2005-10-10 03:14  maan
-
-       * command.c: fix memory leak in com_si()
-
-2005-10-10 03:13  maan
-
-       * NEWS: [no log message]
-
-2005-10-07 10:15  maan
-
-       * Makefile.in: kill para_send-related targets
-
-2005-10-07 01:41  maan
-
-       * send.c, send.ggo: no more need for the stand-alone sender
-
-2005-10-07 01:35  maan
-
-       * audiod.c, audiod.ggo: make para_http_recv the default receiver
-
-2005-10-07 01:33  maan
-
-       * Makefile.in, configure.ac: change para_recv to para_ortp_recv
-
-2005-10-07 01:20  maan
-
-       * ortp_recv.c, ortp_recv.ggo: former recv.c and recv.ggo
-
-2005-10-07 01:20  maan
-
-       * recv.c, recv.ggo: renamed to ortp_recv.c and ortp_recv.ggo
-
-2005-10-07 01:16  maan
-
-       * ortp_send.c, server.ggo: new option: ortp_header_interval
-
-2005-10-07 01:15  maan
-
-       * afs.c: remove bogus check, only call the send functions if buffer
-         is non-empty
-
-2005-10-07 01:14  maan
-
-       * INSTALL, NEWS: [no log message]
-
-2005-10-04 01:31  maan
-
-       * afs.c: kill unused eof_time
-
-2005-10-04 00:10  maan
-
-       * afs.c: remove outdated comment
-
-2005-10-04 00:10  maan
-
-       * http_send.c, mp3.c, ogg.c, server.h: remove send_header function
-         pointer from struct audio format
-
-2005-10-03 21:59  maan
-
-       * afs.c: kill send_function(). It's kinda pointless.
-
-2005-10-03 21:28  maan
-
-       * afs.c, mp3.c, ogg.c, server.h: remove fifo. fifoname and sw_pid
-         from struct audio format
-
-2005-10-03 21:19  maan
-
-       * Makefile.in: afs depends on send.h
-
-2005-10-03 21:19  maan
-
-       * server.ggo: remove option stream_write_cmd
-
-2005-10-03 21:18  maan
-
-       * afs.c: kill some dead code: af->sw_pid is always -1
-
-2005-10-03 20:48  maan
-
-       * afs.c, server.h: kill open_cmd in struct audio info, kill
-         setup_stream_command()
-
-2005-10-03 20:47  maan
-
-       * command.c: increase event counter on pause
-
-2005-10-03 19:04  maan
-
-       * afs.c, command.c, server.h: kill the AFS_STREAM_WRITER flag
-
-2005-09-30 10:12  maan
-
-       * index.html: cosmetics
-
-2005-09-30 05:23  maan
-
-       * afs.c: fix paused mode: only set eof_barrier once
-
-2005-09-30 05:07  maan
-
-       * afs.c: fix status flags on eof when AFS_NOMORE is set
-
-2005-09-30 04:21  maan
-
-       * afs.c: sw_restart_barrier is no longer needed
-
-2005-09-30 04:18  maan
-
-       * afs.c: kill unused SW_RESTART_TIME
-
-2005-09-30 04:17  maan
-
-       * afs.c: kill unneeded sw_restart_tv
-
-2005-09-30 04:13  maan
-
-       * afs.c, server.c: there are no more children to handle for afs
-
-2005-09-30 03:58  maan
-
-       * server.c: only call afs_send_chunk() if select timeout expired
-
-2005-09-30 03:48  maan
-
-       * afs.c: kill afs_open_fifo(). It has no more callers
-
-2005-09-30 03:32  maan
-
-       * mp3.c, ogg.c, server.h: kill the mainloops themselves
-
-2005-09-30 03:16  maan
-
-       * afs.c: kill the call to the mainloop of audio format handlers as
-         it is no longer needed
-
-2005-09-30 02:45  maan
-
-       * afs.c: reset mmd->chunks_sent on sender shutdown rather than on
-         stream writer death
-
-2005-09-30 02:21  maan
-
-       * afs.c: compute data send barrier on repos and after sucessfully
-         getting the next audio file rather than after stream writer exec
-
-2005-09-30 01:09  maan
-
-       * afs.c, server.c: afs_compute_timeout: return -1 rather than 1
-         when chunk is overdue, otherwise select blocks on bof. server.c:
-         No more need to check the stream writer fd. It is no longer used.
-
-2005-09-29 23:58  maan
-
-       * afs.c: introduce extra check in afs_send_chunk() that tests
-         whether chunk is really due. This was previously broken: Whenever
-         select returned we sent a chunk which might happen too early. Not
-         serious though as the time got corrected automatically during the
-         next call to afs_mainloop()
-
-2005-09-29 23:41  maan
-
-       * afs.c: do not reset audio_format in afs_send_chunk() if eof was
-         encountered as this causes the audio file not to be closed in the
-         following call to afs_mainloop(). Also, invalidate af pointer
-         after closing the audio file
-
-2005-09-29 23:17  maan
-
-       * mp3.c: kill two unused functions
-
-2005-09-29 23:13  maan
-
-       * afs.c, mp3.c, ogg.c: call the new close_audio_file function from
-         afs.c rather than closing the file in the mainloop of the audio
-         format handler
-
-2005-09-29 23:02  maan
-
-       * mp3.c, ogg.c, server.h: new function pointer in struct audio
-         format: close_audio_file
-
-2005-09-29 22:48  maan
-
-       * afs.c, mp3.c, ogg.c: compute mmd->offset in afs.c rather than in
-         the audio format handlers
-
-2005-09-29 12:01  maan
-
-       * FEATURES, README: update docu wrt internal senders
-
-2005-09-29 09:56  maan
-
-       * afs.c: simplify AFS_NOMORE handling
-
-2005-09-29 09:15  maan
-
-       * afs.c, ogg.c: kill three unused variables
-
-2005-09-29 09:13  maan
-
-       * afs.c, mp3.c, ogg.c, server.h: nuke function parameter eof_time
-         which is no longer used
-
-2005-09-29 09:06  maan
-
-       * afs.c: compute eof_barrier from new eof field in struct audio
-         format. Also, do not base computation on stream writer death time
-         but on sender shutdown time
-
-2005-09-29 08:39  maan
-
-       * mp3.c, ogg.c, server.h: new element in struct audio format:
-         eof_tv
-
-2005-09-29 08:22  maan
-
-       * afs.c, mp3.c, ogg.c: move repositioning handling from audio file
-         handlers to afs.c
-
-2005-09-29 07:59  maan
-
-       * mp3.c, ogg.c, server.h: new function pointer in struct audio
-         format: reposition_stream
-
-2005-09-29 07:50  maan
-
-       * afs.c, mp3.c, ogg.c, server.h: remove calculation of next chunk
-         time from format handlers
-
-2005-09-29 07:44  maan
-
-       * afs.c: kill unused variable
-
-2005-09-29 07:42  maan
-
-       * afs.c: do calculation of next chunk time in afs.c rather than in
-         the audio format handlers
-
-2005-09-29 06:30  maan
-
-       * ogg.c: oops, we are not using milliseocnds..
-
-2005-09-29 03:10  maan
-
-       * mp3.c, ogg.c, server.h: new element in struct audio format:
-         chunk_tv that is filled in by the audio format handler
-
-2005-09-29 03:09  maan
-
-       * Makefile.in: add more missing dependencies
-
-2005-09-29 01:29  maan
-
-       * afs.c, mp3.c, ogg.c, server.h: kill send_chunk
-
-2005-09-29 01:24  maan
-
-       * afs.c, mp3.c, ogg.c, server.h: new function pointer in struct
-         audio format: read_chunk which is going to replace send_chunk as
-         the sending functions are better invoked from afs.c
-
-2005-09-29 01:14  maan
-
-       * string.c: typos
-
-2005-09-28 23:48  maan
-
-       * afs.c, http_send.c, mp3.c, ogg.c, send.h, server.c, server.ggo,
-         server.h: include support for the new ortp sender
-
-2005-09-28 23:48  maan
-
-       * net.c: log short writes
-
-2005-09-28 23:45  maan
-
-       * command.c: off by one bug
-
-2005-09-28 23:44  maan
-
-       * recv.c: use enums from new ortp.h
-
-2005-09-28 23:43  maan
-
-       * recv.ggo: change default host from XINGTV.MCAST.NET to the
-         officially unasaigned ip 224.0.1.38 which happens to resolve to
-         DANTZ.MCAST.NET. Change default port to 1500
-
-2005-09-28 23:39  maan
-
-       * Makefile.in, configure.ac: build the ortp sender if libortp was
-         found, add some missing dependencies
-
-2005-09-28 23:37  maan
-
-       * ortp.h, ortp_send.c: the new internal ortp sender
-
-2005-09-28 07:09  maan
-
-       * http_send.c, mp3.c, ogg.c, server.h: new function pointer in
-         struct audio_format: get_header_info. Use it in http_send.c
-         instead of the obsolete send_header function pointer
-
-2005-09-28 06:32  maan
-
-       * ogg.c: save header of starup rather than seeking the file
-
-2005-09-28 01:04  maan
-
-       * afs.c, http_send.c, server.c: more cosmetics
-
-2005-09-28 00:37  maan
-
-       * audiod.c, command.c, http_send.c, mp3.c: cosmetics
-
-2005-09-27 23:57  maan
-
-       * http_send.c: whitespace cleanup
-
-2005-09-27 23:57  maan
-
-       * command.c: comment out debug message
-
-2005-09-27 23:49  maan
-
-       * send.h, server.h: new struct sender_command_data for server
-         callbacks
-
-2005-09-27 23:48  maan
-
-       * server.c: implement callbacks for sender commands, only call send
-         functions if status is on
-
-2005-09-27 23:46  maan
-
-       * ogg.c: comment out noisy debug message
-
-2005-09-27 23:44  maan
-
-       * http_send.c: use new http sender options, implement sender
-         commands allow, deny, on, off, info
-
-2005-09-27 23:41  maan
-
-       * server.ggo: add some http sender options
-
-2005-09-27 23:40  maan
-
-       * command.c: implement new sender command
-
-2005-09-27 23:39  maan
-
-       * Makefile.in: add some more dependencies on server.cmdline.h
-
-2005-09-27 04:32  maan
-
-       * server.h: prototypes for new functions for testing
-         afs_status_flags. No need to pass status flags to the mainloop
-         and send_chunk functions
-
-2005-09-27 04:30  maan
-
-       * server.c: support for internal senders. Use init_tcp_socket from
-         net.c
-
-2005-09-27 04:27  maan
-
-       * para.h: add the two new function prototypes from net.c
-
-2005-09-27 04:26  maan
-
-       * oggdec.c: delay if hole in data was found
-
-2005-09-27 04:25  maan
-
-       * ogg.c: use new functions for testing afs_status_flags, support
-         for internal senders. Nuke initial_chunk logic.
-
-2005-09-27 04:22  maan
-
-       * net.c: pull init_tcp_socket() from server.c. It is also used by
-         http_send.c. New function rec_pattern to be used by both servers
-         and clients.
-
-2005-09-27 04:18  maan
-
-       * mp3.c: use new functions for testing afs_status_flags, support
-         for internal senders
-
-2005-09-27 04:17  maan
-
-       * afs.c: new functions for testing the afs_status_flags, support
-         for internal senders
-
-2005-09-27 04:16  maan
-
-       * Makefile.in: build http_recv, add http_send.o to server objects,
-         add some more header dependencies that were lost
-
-2005-09-27 04:12  maan
-
-       * http.h, http_recv.c, http_recv.ggo, http_send.c, send.h: internal
-         sender and external receiver
-
-2005-09-25 20:53  maan
-
-       * index.html: kernziel is dead
-
-2005-09-23 21:42  maan
-
-       * server.h: remove unused liked_cmd_list
-
-2005-09-22 00:40  maan
-
-       * mysql.c: fix empty stream definitions, ignore errors on remove
-
-2005-09-22 00:22  maan
-
-       * para.h: replace __func__ by __FUNCTION__ as this seems to be
-         supported by a wider class of complilers
-
-2005-09-21 20:07  maan
-
-       * Makefile.in, NEWS, configure.ac: new codename, reset version to
-         cvs
-
-2005-09-21 20:05  maan
-
-       * versions/: paraslash-0.2.4.tar.bz2, paraslash-0.2.4.tar.bz2.asc:
-         paraslash-0.2.4
-
-2005-09-21 20:04  maan
-
-       * NEWS, configure.ac, index.html, scripts/demo-script: paraslash
-         0.2.4
-
-2005-09-21 06:36  maan
-
-       * command.c: cosmetics
-
-2005-09-20 00:32  maan
-
-       * audiod.c: cosmetics
-
-2005-09-20 00:23  maan
-
-       * audiod.c: typo, make max_deviation a constant, no need to check
-         for items if itemnum < 0
-
-2005-09-19 22:12  maan
-
-       * audiod.c: simplify check_stat_line()
-
-2005-09-19 22:11  maan
-
-       * Makefile.in: audiod no longer needs gui_common.o
-
-2005-09-19 22:10  maan
-
-       * gui_common.c, para.h, stat.c: move some functions from
-         gui_common.c to stat.c since they are also needed by audiod.
-
-2005-09-19 20:35  maan
-
-       * gui_common.c: kill unused variable
-
-2005-09-19 20:24  maan
-
-       * command.c, server.c, server.h: logging improvements
-
-2005-09-19 05:17  maan
-
-       * mp3.c: loglevel adjustment
-
-2005-09-19 05:00  maan
-
-       * daemon.c: simplify log_welcome()
-
-2005-09-19 05:00  maan
-
-       * gui_common.c: fix check_buf_for_items()
-
-2005-09-19 04:58  maan
-
-       * server.c: fix logging for higher loglevels
-
-2005-09-18 19:08  maan
-
-       * ogg.c: increase eof time
-
-2005-09-18 00:54  maan
-
-       * gui.c: rename struct args_info to conf
-
-2005-09-18 00:38  maan
-
-       * server.c: simplify parse_config()
-
-2005-09-18 00:32  maan
-
-       * NEWS, afs.c, server.ggo: make announce_time a run-time option
-
-2005-09-18 00:28  maan
-
-       * Makefile.in: add some missing dependencies
-
-2005-09-12 16:48  maan
-
-       * NEWS, README: [no log message]
-
-2005-09-12 15:41  maan
-
-       * command.c: com_si(): report total size of memory allocated with
-         sbrk by malloc, in kbytes.
-
-2005-09-12 15:36  maan
-
-       * NEWS: [no log message]
-
-2005-09-12 15:36  maan
-
-       * configure.ac: check for presence and usability of some more
-         headers
-
-2005-09-12 15:35  maan
-
-       * crypt.c: fix potential memory leak
-
-2005-09-11 22:16  maan
-
-       * para.h: small cleanup and more comments
-
-2005-09-11 22:15  maan
-
-       * server.c: remove old crap from para_log(), typo, do not write to
-         console in daemon mode, close fd 0,1,2 in daemon mode
-
-2005-09-09 06:44  maan
-
-       * oggdec.c: make write_header() static. Cosmetics
-
-2005-09-09 05:28  maan
-
-       * audiod.c: replace global var by local ones
-
-2005-09-09 05:12  maan
-
-       * audiod.c: some more trivial cleanups
-
-2005-09-09 04:56  maan
-
-       * audiod.c: reorder global vars, defines and the like. Trivial.
-
-2005-09-09 04:46  maan
-
-       * audiod.c: remove an unused variable, man cmds[] static
-
-2005-09-09 04:43  maan
-
-       * audiod.c: make functions static where possible
-
-2005-09-09 04:39  maan
-
-       * audiod.c: remove pointless NULL-check in ring_buffer_free()
-
-2005-09-09 04:34  maan
-
-       * audiod.c: fix nasty mem leak. We must not reset s->format too
-         early as it is needed in the filter-free loop
-
-2005-09-08 23:48  maan
-
-       * NEWS: [no log message]
-
-2005-09-08 23:47  maan
-
-       * sdl_gui.c: better layout
-
-2005-09-08 16:15  maan
-
-       * configure.ac: new configure option: --enable-ssldir=path, fix
-         typo
-
-2005-09-06 01:17  maan
-
-       * play.c: use stringification macro to print err msg
-
-2005-09-06 00:55  maan
-
-       * Makefile.in: audiod.o depends on list.h. Add list.h to the
-         tarball
-
-2005-09-06 00:51  maan
-
-       * list.h: Needed by audiod. Copied from the Linux kernel source
-         tree.
-
-2005-09-06 00:50  maan
-
-       * NEWS: [no log message]
-
-2005-09-06 00:49  maan
-
-       * mp3dec.c: comment out debug message
-
-2005-09-06 00:37  maan
-
-       * audiod.c: new command: grab. Close fd 0,1,2 in deamon mode
-
-2005-09-06 00:32  maan
-
-       * audioc.ggo: new option: --bufsize
-
-2005-09-06 00:32  maan
-
-       * audioc.c: new option: --bufsize. Use select() rather than plain
-         read/write to avoid blocking writes writes when there is space
-         left in the buffer
-
-2005-09-06 00:29  maan
-
-       * client.c: only check the first data buffer for the
-         AWAITING_DATA_MSG. Always use full buffersize for recv
-
-2005-09-06 00:27  maan
-
-       * net.c: no need to waste one byte
-
-2005-09-04 11:05  maan
-
-       * client.ggo: add typestr to options
-
-2005-09-04 11:05  maan
-
-       * Makefile.in: use --unamed-opts only if neccessary
-
-2005-09-02 14:43  maan
-
-       * audiod.c: do_filter_io(): only add return value of read() to
-         loaded bytes if it is positive
-
-2005-09-02 14:41  maan
-
-       * index.html: typo
-
-2005-09-01 20:14  maan
-
-       * Makefile.in, NEWS, configure.ac: new codename, reset version to
-         cvs
-
-2005-09-01 20:12  maan
-
-       * versions/: paraslash-0.2.3.tar.bz2, paraslash-0.2.3.tar.bz2.asc:
-         paraslash-0.2.3
-
-2005-09-01 20:11  maan
-
-       * NEWS, configure.ac, index.html, scripts/demo-script: paraslash
-         0.2.3
-
-2005-09-01 19:49  maan
-
-       * NEWS: [no log message]
-
-2005-09-01 14:14  maan
-
-       * audiod.c: typo
-
-2005-09-01 13:44  maan
-
-       * NEWS, audiod.c, audiod.ggo: new audiod option: --stream_delay,
-         used if new macro START_TIME() was given for stream_write_cmd.
-
-2005-09-01 13:43  maan
-
-       * compress.ggo: use maximal volume as default
-
-2005-09-01 03:04  maan
-
-       * NEWS: [no log message]
-
-2005-09-01 02:09  maan
-
-       * index.html: add list of releases to top of page
-
-2005-09-01 01:04  maan
-
-       * Makefile.in: make xxx.cmdline.o always the first prerequisite,
-         use multiple targets in gengetopt rule
-
-2005-09-01 00:33  maan
-
-       * Makefile.in, play.c, play.ggo: command line options for para_play
-
-2005-08-31 22:06  maan
-
-       * FEATURES, README: mention para_compress
-
-2005-08-31 21:49  maan
-
-       * NEWS, audiod.c, audiod.ggo: better syntax for stream/filter
-         commands
-
-2005-08-31 18:42  maan
-
-       * CREDITS, Makefile.in, NEWS: add para_compress
-
-2005-08-31 18:41  maan
-
-       * compress.c, compress.ggo: a dynamic range compressor, derived
-         from AudioCompress-1.5.2
-
-2005-08-31 18:40  maan
-
-       * recv.c: save header, delay sending until first data packet
-         _after_ header arrives
-
-2005-08-31 18:38  maan
-
-       * play.c: make it understand wave headers, use plug_swmix for
-         snd_pcm_open()
-
-2005-08-29 06:49  maan
-
-       * net.c: do not use fprintf in net.c, whitespace cleanup
-
-2005-08-29 04:09  maan
-
-       * mysql.c: whitespace cleanup
-
-2005-08-26 13:51  maan
-
-       * mysql.c: tell mysql version on init
-
-2005-08-26 03:55  maan
-
-       * play.c: do not exit on buffer underruns, reduce sleep time on
-         -EAGAIN
-
-2005-08-26 03:54  maan
-
-       * audiod.c: also kill filters in kill_decoder()
-
-2005-08-26 02:32  maan
-
-       * FEATURES, Makefile.in, NEWS, README, configure.ac: include
-         para_play
-
-2005-08-26 02:31  maan
-
-       * play.c: a tiny alsa player
-
-2005-08-26 00:10  maan
-
-       * NEWS, audiod.c, audiod.ggo: implement filtering inside audiod
-
-2005-08-25 01:11  maan
-
-       * NEWS, mysql.c, stat.c: cosmetics
-
-2005-08-25 01:11  maan
-
-       * Makefile.in: remove funny characters around codename in version
-         string
-
-2005-08-24 11:27  maan
-
-       * afs.c: whitespace clenaup ;)
-
-2005-08-19 22:08  maan
-
-       * signal.c: add GPL header
-
-2005-08-19 21:32  maan
-
-       * scripts/demo-script: make it download paraslash.0.2.0
-
-2005-08-19 10:03  maan
-
-       * client.conf.sample, fade.conf.sample, sdl_gui.conf.sample,
-         server.conf.sample: these are both outdated and really pointless.
-         Read the nice online help instead
-
-2005-08-19 06:30  maan
-
-       * Makefile.in, NEWS, configure.ac: new codename, reset version to
-         cvs
-
-2005-08-19 06:28  maan
-
-       * versions/: paraslash-0.2.2.tar.bz2, paraslash-0.2.2.tar.bz2.asc:
-         paraslash-0.2.2
-
-2005-08-19 06:24  maan
-
-       * Makefile.in, NEWS, configure.ac: paraslash 0.2.2
-
-2005-08-19 02:24  maan
-
-       * mysql.c: cosmetics
-
-2005-08-19 02:16  maan
-
-       * NEWS, mysql.c: new command snp (set numplayed)
-
-2005-08-19 01:57  maan
-
-       * mysql.c: cosmetics
-
-2005-08-19 01:50  maan
-
-       * mysql.c: com_mv(): also update the name in the dir-table
-
-2005-08-19 00:57  maan
-
-       * net.c:
-         work around a gcc-4.1 bug (?) that caused send_cred_buffer() to
-         send only zeros. With this workaround, para_audioc works again.
-
-2005-08-18 07:44  maan
-
-       * scripts/demo-script: use -N option for wget to overwrite any
-         tarballs downloaded earlier
-
-2005-08-18 05:37  maan
-
-       * client.c: whitespace cleanup
-
-2005-08-18 04:01  maan
-
-       * INSTALL: typo
-
-2005-08-18 03:59  maan
-
-       * INSTALL: correct instructions for manual streaming
-
-2005-08-18 03:38  maan
-
-       * exec.c: fix fd leak in para_exec() just introduced
-
-2005-08-18 03:22  maan
-
-       * exec.c: trivial simplifications
-
-2005-08-18 02:56  maan
-
-       * exec.c: whitespace cleanup
-
-2005-08-18 01:29  maan
-
-       * Makefile.in, NEWS, dbadm.c, exec.c, fade.c, gui.c, mysql.c,
-         para.h: change all remaining users of popen_*() to use para_exec
-         instead. nuke popen_* functions from exec.c
-
-2005-08-17 04:37  maan
-
-       * NEWS, mysql.c: add command ne (new entry)
-
-2005-08-17 04:33  maan
-
-       * README: [no log message]
-
-2005-08-17 03:40  maan
-
-       * mysql.c, para.h, string.c: new mysql command: mv (rename
-         entries). This needs another helper, para_dirname(), which was
-         added to string.c. Use const attribute for para_dirname() and add
-         it to para_basename too.
-
-2005-08-17 02:13  maan
-
-       * audiod.c, client.c, dbadm.c, oggdec.c, server.c: cosmetics
-
-2005-08-17 01:35  maan
-
-       * NEWS, mysql.c: new command: rm to remove entries from the
-         database
-
-2005-08-17 01:35  maan
-
-       * command.c: cosmetics
-
-2005-08-17 00:41  maan
-
-       * skencil/overview.sk: change 0.2.0 to 0.2.x
-
-2005-08-17 00:37  maan
-
-       * fade.c: cosmetics
-
-2005-08-17 00:35  maan
-
-       * string.c, fade.c: whitespace cleanup
-
-2005-08-17 00:24  maan
-
-       * audioc.c, audiod.c, client.c, daemon.c, fade.c, gui.c, para.h,
-         recv.c, sdl_gui.c, send.c, server.c, slider.c: rename clog to
-         para_log
-
-2005-08-17 00:11  maan
-
-       * audiod.c, gui.c, para.h, server.c, signal.c: simplify
-         para_signal_init()
-
-2005-08-17 00:01  maan
-
-       * afs.c, audiod.c, client.c, command.c, daemon.c, dopey.c, fade.c,
-         mp3.c, mysql.c, net.c, ogg.c, recv.c, send.c, server.c, signal.c,
-         stat.c, string.c: nuke superflous __func__
-
-2005-08-16 23:31  maan
-
-       * krell.c: whitespace cleanup, change email address
-
-2005-08-16 22:47  maan
-
-       * NEWS, afs.c, audiod.c, client.c, command.c, daemon.c, dopey.c,
-         fade.c, gui.c, mp3.c, mysql.c, net.c, ogg.c, para.h, recv.c,
-         send.c, server.c, signal.c, stat.c, string.c: new log macros that
-         do not require __func__ each time and can be optimized away
-         easily
-
-2005-08-16 21:07  maan
-
-       * para.h: whitespace cleanup
-
-2005-08-16 21:06  maan
-
-       * audiod.c, gui.c, para.h, server.c: nuke loglevel VERBOSE
-
-2005-08-16 21:06  maan
-
-       * Makefile.in: use -O3 and add -Wuninitialized and
-         -Wredundant-decls
-
-2005-08-16 20:58  maan
-
-       * scripts/demo-script: make it download paraslash-0.2.1
-
-2005-08-16 20:48  maan
-
-       * audiod.c: stream readers do not read from stdin
-
-2005-08-16 20:45  maan
-
-       * exec.c: serious thinko. Close the right fds in para_exec(). This
-         was obviously incorrect before. Strange that only gcc 4 produced
-         a non-working audiod..
-
-2005-08-16 20:36  maan
-
-       * client.c, command.c, crypt.c: fix some signedness issues
-
-2005-08-15 23:28  maan
-
-       * Makefile.in, NEWS, configure.ac: new codename, reset version to
-         cvs
-
-2005-08-15 23:09  maan
-
-       * versions/: paraslash-0.2.1.tar.bz2, paraslash-0.2.1.tar.bz2.asc:
-         paraslash-0.2.1
-
-2005-08-15 23:04  maan
-
-       * NEWS, configure.ac: paraslash 0.2.1
-
-2005-08-15 22:35  maan
-
-       * Makefile.in: older versions of libreadline and libssl come with
-         header files that produce lots of warnings about redundant
-         redeclarations. Deactivate -Wredundant-decls for now
-
-2005-08-15 22:23  maan
-
-       * audiod.c: make gcc happy
-
-2005-08-15 07:47  maan
-
-       * mp3.c: simplify mp3_seek_next_header(), use para_fread() instead
-         of plain fread() and check the retval. Nuke unused id3 genre.
-
-2005-08-14 20:15  maan
-
-       * audiod.c: fix serious memory leak
-
-2005-08-13 21:45  maan
-
-       * audiod.c: kill decoders and close status pipe in clean_exit()
-
-2005-08-13 21:43  maan
-
-       * client.c, crypt.c, crypt.h: remove some redundant ssl includes
-
-2005-08-13 20:36  maan
-
-       * command.c: kill extra newline
-
-2005-08-13 04:32  maan
-
-       * audiod.c, command.c: oops, the previous whitespace cleanup was
-         only for slider.c. Revert to previous version.
-
-2005-08-13 04:27  maan
-
-       * audiod.c, command.c, slider.c: whitespace cleanup slider.c
-
-2005-08-10 22:08  maan
-
-       * NEWS, audiod.c: nuke hup command. It is both pointless and
-         non-trivial to get it right
-
-2005-08-10 11:14  maan
-
-       * NEWS: [no log message]
-
-2005-08-10 03:23  maan
-
-       * gui_theme.c: whitespace cleanup
-
-2005-08-10 03:21  maan
-
-       * NEWS, audiod.c, command.c, daemon.c, gui_theme.c, para.h,
-         server.c, server.h, stat.c, string.c: new status item:
-         audiod_uptime. Reduce size of mtime string, reduce number of
-         audiod slots to 5, redirect stdout of audiod stream writer to
-         /dev/null
-
-2005-08-09 23:30  maan
-
-       * stat.c: whitespace cleanup
-
-2005-08-09 23:29  maan
-
-       * Makefile.in: maintainer-clean: remove tar.bz files
-
-2005-08-09 23:16  maan
-
-       * Makefile.in, configure.ac: deactivate -O and -Wuninitialized, add
-         crypt.h to the set of headers shipped in the tarball, use a macro
-         from the autoconf archive for detecting openssl.
-
-2005-08-09 08:45  maan
-
-       * FEATURES, README: [no log message]
-
-2005-08-09 07:15  maan
-
-       * INSTALL: mention --stream_write_cmd
-
-2005-08-09 06:21  maan
-
-       * mp3dec.c: whitespace cleanup
-
-2005-08-08 02:18  maan
-
-       * afs.c, command.c, mp3.c, ogg.c: fix some (hopefully all) format
-         string mismatches
-
-2005-08-08 02:04  maan
-
-       * audiod.c, client.c, command.c, fade.c, gui.c, net.c, para.h,
-         server.c, string.c: nuke some redundant redeclarations
-
-2005-08-08 02:04  maan
-
-       * Makefile.in: add -Wredundant-decls to CPPFLAGS
-
-2005-08-08 01:54  maan
-
-       * client.c, dbadm.c, sdl_gui.c, server.c: fix some missing voids.
-         Harmless
-
-2005-08-08 01:54  maan
-
-       * Makefile.in: add -Wstrict-prototypes
-
-2005-08-08 01:46  maan
-
-       * afs.c, audiod.c, command.c, dbadm.c, fade.c, gui.c, mysql.c,
-         net.c, ogg.c, string.c: fix some potential uses of uninitialized
-         vars. Nothing serious I think
-
-2005-08-08 01:38  maan
-
-       * Makefile.in: make gcc a bit more anal: turn on warnings for
-         uninitialized vars
-
-2005-08-07 23:39  maan
-
-       * NEWS: [no log message]
-
-2005-08-07 23:34  maan
-
-       * sdl_gui.c, sdl_gui.ggo: new options: stat_cmd, pic_cmd, adapt to
-         new syntax of para_open_audiod_pipe(), use para_exec instead of
-         popen, add typestrings to options
-
-2005-08-07 23:32  maan
-
-       * gui.c, gui.ggo, para.h: new option: stat_cmd, adapt to new syntax
-         of para_open_audiod_pipe()
-
-2005-08-07 23:30  maan
-
-       * gui_common.c: let it take the command as an argument, use
-         para_exec instead of popen
-
-2005-08-07 23:29  maan
-
-       * audioc.ggo: oops, this option belongs to audiod
-
-2005-08-07 22:11  maan
-
-       * NEWS, audioc.ggo, audiod.c, audiod.ggo, server.ggo: implement
-         --user option also for audiod
-
-2005-08-07 21:50  maan
-
-       * NEWS, daemon.c, para.h, server.c, server.ggo: new option --user
-         to switch to the given user when invoked as root
-
-2005-08-07 21:48  maan
-
-       * mysql.c: do not log (null) as the username although it is
-         perfectly OK to pass a NULL pointer to mysql_real_connect()
-
-2005-08-07 20:15  maan
-
-       * daemon.c: whitespace cleanup
-
-2005-08-07 09:02  maan
-
-       * 1.0: [no log message]
-
-2005-08-07 09:02  maan
-
-       * dopey.c: too dopey to get dopey right: avoid theoretical double
-         free bug that can only bite when given a invalid dopey_dir
-
-2005-08-07 07:26  maan
-
-       * crypt.c: add GPL header
-
-2005-08-07 07:11  maan
-
-       * client.c, command.c: kill old encrypt/decrypt functions that used
-         fork and exec. Replace it by new functions from crypt.c. This
-         should be much faster and, more importantly, fully transparent,
-         i.e. para_client-0.2.0 can still connect to newer versions of
-         para_server and vice versa, even when using 0.1.x keys.
-
-2005-08-07 07:10  maan
-
-       * NEWS: [no log message]
-
-2005-08-07 07:02  maan
-
-       * configure.ac: cleanup, make it check for the libssl lib rather
-         than for the openssl command line utility
-
-2005-08-07 07:00  maan
-
-       * Makefile.in: major cleanup, link crypt.o and the ssl libraries to
-         server and client
-
-2005-08-07 06:56  maan
-
-       * mp3.c: kill noisy debug message
-
-2005-08-07 06:56  maan
-
-       * crypt.c, crypt.h: rsa encrypt/decrypt routines
-
-2005-08-07 06:52  maan
-
-       * scripts/demo-script: make it download paraslash-0.2.0 instead of
-         paraslash-cvs
-
-2005-08-06 21:11  maan
-
-       * skencil/overview.sk: replace mp3 by pcm
-
-2005-08-06 21:01  maan
-
-       * index.html: another typo
-
-2005-08-06 20:55  maan
-
-       * index.html: provide quick-links at top of page
-
-2005-08-06 20:20  maan
-
-       * index.html: typo
-
-2005-08-06 20:06  maan
-
-       * index.html: announce the overview and provide a link to the pdf
-         file
-
-2005-08-06 19:55  maan
-
-       * skencil/overview.sk: make it a bit smaller since xpdf does not
-         show the upper part of the sketch
-
-2005-08-06 19:31  maan
-
-       * skencil/overview.sk: a skencil file containing a sketch which
-         illustrates how the pieces of paraslash work together
-
-2005-08-06 18:58  maan
-
-       * index.html: update live demo to use 0.2.0
-
-2005-08-06 18:58  maan
-
-       * Makefile.in, NEWS, configure.ac: change codename, reset version
-         to cvs
-
-2005-08-06 18:31  maan
-
-       * versions/: paraslash-0.2.0.tar.bz2, paraslash-0.2.0.tar.bz2.asc:
-         for the history
-
-2005-08-06 18:24  maan
-
-       * NEWS, configure.ac: paraslash-0.2.0
-
-2005-08-05 21:37  maan
-
-       * Makefile.in: oggdec needs to be linked also against libvorbis on
-         some systems
-
-2005-08-03 20:48  maan
-
-       * audiod.c: kill noisy debug message
-
-2005-08-03 19:59  maan
-
-       * audiod.c: fix self-correcting time display
-
-2005-08-03 06:18  maan
-
-       * pics/screenshots/loglevel1-2005-03-23.txt,
-         versions/paraslash-0.0.99.tgz, versions/paraslash-0.0.99.tgz.asc,
-         versions/paraslash-0.1.0.tgz, versions/paraslash-0.1.0.tgz.asc,
-         versions/paraslash-0.1.1.tgz, versions/paraslash-0.1.1.tgz.asc,
-         versions/paraslash-0.1.2.tgz, versions/paraslash-0.1.2.tgz.asc,
-         versions/paraslash-0.1.3.tgz, versions/paraslash-0.1.3.tgz.asc,
-         versions/paraslash-0.1.4.tgz, versions/paraslash-0.1.4.tgz.asc,
-         versions/paraslash-0.1.5.tgz, versions/paraslash-0.1.5.tgz.asc,
-         versions/paraslash-0.1.6.tgz, versions/paraslash-0.1.6.tgz.asc,
-         versions/paraslash-0.1.7.tgz, versions/paraslash-0.1.7.tgz.asc:
-         just for the history
-
-2005-08-03 06:03  maan
-
-       * mp3.c: make it work again for vbr, whitespace cleanup
-
-2005-08-02 18:47  maan
-
-       * mp3.c: fix length computation (fixes Loser_Pils problem)
-
-2005-08-02 18:43  maan
-
-       * para.h: add prototype for tv_divide()
-
-2005-08-02 18:39  maan
-
-       * recv.c: rename bytes_written to header_status, add a comment
-
-2005-08-02 05:15  maan
-
-       * command.c: also before calling the command handler, mention
-         usename when logging with loglevel NOTICE
-
-2005-08-02 03:25  maan
-
-       * audiod.c, client.c, fade.c, server.c, string.c: activate format
-         string checks
-
-2005-08-02 03:25  maan
-
-       * daemon.c: typo
-
-2005-08-02 03:02  maan
-
-       * server.h: kill AFS_REREAD_DB_INFO. Refreshing the database info
-         is done from within the mysql commands that change the info.
-
-2005-08-02 03:00  maan
-
-       * command.c: only send error message to client if the cause of the
-         error was different from E_SEND
-
-2005-08-02 02:58  maan
-
-       * audiod.ggo, mp3.c, ogg.c, recv.c, recv.ggo, send.c, send.ggo,
-         server.ggo, audiod.c: simpler syntax for para_recv and para_send
-
-2005-08-02 02:54  maan
-
-       * afs.c: increase SW_RESTART_TIME and ANNOUNCE_TIME
-
-2005-08-02 01:06  maan
-
-       * send.c: simplify stupid control flow in do_io()
-
-2005-08-01 23:46  maan
-
-       * command.c: com_sc(): optional argument for iteration count
-
-2005-08-01 22:58  maan
-
-       * recv.c: make ogg work again
-
-2005-08-01 20:52  maan
-
-       * recv.ggo: nuke outfile option
-
-2005-08-01 20:51  maan
-
-       * recv.c: always write to stdout
-
-2005-08-01 20:39  maan
-
-       * NEWS: whitespace cleanup
-
-2005-08-01 19:42  maan
-
-       * send.c: read a full initial chunk, not just the header length and
-         send it out to ortp in little small pieces.
-
-2005-08-01 19:41  maan
-
-       * recv.c: fix return value, better timing
-
-2005-08-01 19:37  maan
-
-       * afs.c, command.c, mp3.c, server.h, ogg.c: introduce time barriers
-         for start streaming/exec the stream writer, new status flag W
-         (stream writer running). Make ogg work with really nasty vbr
-         files
-
-2005-08-01 19:32  maan
-
-       * index.html: announce live stream, anonymous cvs access and
-         nightly snapshots
-
-2005-08-01 19:15  maan
-
-       * scripts/demo-script: script to download and install a demo-client
-         to retrieve the stream from www.paraslash.org
-
-2005-08-01 04:25  maan
-
-       * time.c: whitespace cleanup
-
-2005-08-01 04:24  maan
-
-       * time.c: Use const where aprropriate in tv_diff(), really
-
-2005-08-01 03:34  maan
-
-       * para.h, time.c: new function ms2tv, convert milliseconds to
-         struct timeval. Use const where aprropriate in tv_diff()
-
-2005-07-30 05:34  maan
-
-       * mysql.c: cosmetics
-
-2005-07-30 05:26  maan
-
-       * gui.ggo: nuke obsolete stream-related command line options that
-         have been gone long ago
-
-2005-07-30 05:26  maan
-
-       * gui.c: replace help text as ':' is not mapped by default
-
-2005-07-30 05:16  maan
-
-       * client.c, client.ggo: new option: user
-
-2005-07-29 01:54  maan
-
-       * sdl_gui.c, afs.c: whitespace cleanup
-
-2005-07-29 01:51  maan
-
-       * command.c: whitespace cleanup
-
-2005-07-29 01:44  maan
-
-       * mysql.c: whitespace cleanup
-
-2005-07-29 01:37  maan
-
-       * audiod.c, gui.c: whitespace cleanup
-
-2005-07-29 01:33  maan
-
-       * server.c: whitespace cleanup
-
-2005-07-29 01:31  maan
-
-       * audiod.c: the test diff < max_diff was broken. Also, fix empty
-         line in stat output
-
-2005-07-29 01:29  maan
-
-       * para.h, time.c: make tv_convex_combination() accept also negative
-         coefficients
-
-2005-07-27 21:42  maan
-
-       * mp3.c: still one more unused variable
-
-2005-07-27 21:35  maan
-
-       * mp3.c: nuke another unused variable
-
-2005-07-27 21:30  maan
-
-       * mp3.c: simplify write_chunk()
-
-2005-07-27 21:23  maan
-
-       * mp3.c: nuke two unused variables
-
-2005-07-27 21:20  maan
-
-       * mp3.c: make it work for bitrates different from 44100, some
-         trivial cleanups
-
-2005-07-25 22:37  maan
-
-       * Makefile.in, NEWS: switch from gzip to bzip2
-
-2005-07-25 22:08  maan
-
-       * Makefile.in: remove some cruft that is not needed for nomal
-         compilation, so it's better done from private scripts
-
-2005-07-25 21:21  maan
-
-       * afs.c: make gcc 2.95 happy
-
-2005-07-25 20:32  maan
-
-       * command.c: cosmetics
-
-2005-07-25 19:39  maan
-
-       * PUBLIC_KEY: old public key, but added uid maan@systemlinux.org
-         and maan@paraslash.org
-
-2005-07-25 03:32  maan
-
-       * recv.ggo, server.ggo: delete some unused options
-
-2005-07-25 00:08  maan
-
-       * Makefile.in, afs.c, audioc.c, audiod.c, client.c, client.ggo,
-         fade.c, fade.ggo, gui.c, gui.ggo, mp3.c, ogg.c, para.h,
-         sdl_gui.c, sdl_gui.ggo, server.c, server.ggo, slider.c, string.c:
-         do not rely on environment HOME and LOGNAME. Use getuid() and
-         entries from /etc/passwd instead
-
-2005-07-24 21:21  maan
-
-       * recv.c: nuke unused have_header
-
-2005-07-24 21:19  maan
-
-       * ogg.c: fix pause, nuke initial_chunks
-
-2005-07-24 21:15  maan
-
-       * exec.c: para_exec: close all unneeded fds
-
-2005-07-24 21:14  maan
-
-       * command.c: thinko
-
-2005-07-24 21:14  maan
-
-       * audiod.c: increase max time deviation for fallback to server
-         stream time to 5 seconds, other smallish cleanups
-
-2005-07-24 21:11  maan
-
-       * afs.c: introduce announce delay when switching from pause to play
-
-2005-07-22 06:20  maan
-
-       * audiod.c, send.c: cosmetics
-
-2005-07-22 04:07  maan
-
-       * audiod.c, client.c, fade.c, gui.c, recv.c, send.c, server.c,
-         string.c: add __attribute__ format for printf-like functions
-         (commented out by now) and fix some mismatches
-
-2005-07-22 03:13  maan
-
-       * audiod.c: loglevel adjustments
-
-2005-07-22 01:09  maan
-
-       * stat.c: fix removal of stat clients
-
-2005-07-22 01:08  maan
-
-       * audiod.c: dup stderr of stream writer to /dev/null
-
-2005-07-21 22:52  maan
-
-       * INSTALL, audiod.c: rename standby to sb, it is much easier to
-         type
-
-2005-07-21 22:15  maan
-
-       * audiod.c: cosmetics
-
-2005-07-21 05:03  maan
-
-       * command.c: fix integer overflow in frame math for large mp3
-         files, print new status item current_time in com_stat.
-
-2005-07-21 05:02  maan
-
-       * mp3.c: fix integer overflow in frame math for large mp3 files
-
-2005-07-21 01:36  maan
-
-       * audiod.c: use new status item current_time to sync time with
-         server, so the stream_start status item info can also be used if
-         server and audiod clock differ
-
-2005-07-21 01:32  maan
-
-       * para.h, stat.c, time.c: new status item: current_time. New
-         functions for manipulating struct timeval
-
-2005-07-18 21:04  maan
-
-       * audiod.c: cosmetics
-
-2005-07-18 21:04  maan
-
-       * ogg.c: simplify get_chunk_size(), moderate debug logging
-
-2005-07-17 05:55  maan
-
-       * time.c: tv_diff(): compute a - b instead just returning -1 if a >
-         b
-
-2005-07-17 03:04  maan
-
-       * exec.c: remove some unused functions
-
-2005-07-17 02:43  maan
-
-       * time.c: this change should not make any difference, but it looks
-         saner this way
-
-2005-07-17 02:41  maan
-
-       * mp3.c: add an error message if file was not recognized as an mp3
-         file
-
-2005-07-17 02:40  maan
-
-       * exec.c: unused label
-
-2005-07-17 02:39  maan
-
-       * ogg.c: okay, the previous version did not recognize any ogg
-         files, valid or not. Fixed.
-
-2005-07-16 19:18  maan
-
-       * ogg.c: move initialization of ogg stuff to the beginning of the
-         function. That fixes a segfault for (non-ogg) files, when that
-         stuff got freed without being initialized
-
-2005-07-16 18:48  maan
-
-       * recv.c: nuke prebuffer code. Prebuffering should be done in the
-         player only
-
-2005-07-16 18:20  maan
-
-       * ogg.c: fix fake errors on eof, rename bytes to loaded_bytes and
-         make it global
-
-2005-07-16 17:42  maan
-
-       * audiod.c, send.c: signedness issues
-
-2005-07-16 17:38  maan
-
-       * afs.c, mp3.c: move log message from mp3.c to afs.c as it is
-         generic
-
-2005-07-16 17:33  maan
-
-       * net.c: signedness issues
-
-2005-07-15 04:27  maan
-
-       * audiod.c, gui_theme.c, para.h, sdl_gui.c, stat.c: replace
-         SI_DECODER_OUTPUT by SI_PLAY_TIME
-
-2005-07-15 04:09  maan
-
-       * gui.c: kill debug message
-
-2005-07-15 04:02  maan
-
-       * audiod.c: kill all decoders if server connection breaks down
-
-2005-07-15 03:45  maan
-
-       * NEWS: [no log message]
-
-2005-07-15 03:44  maan
-
-       * para.h, stat.c: typo
-
-2005-07-15 03:37  maan
-
-       * audiod.c: new function close_stat_pipe() that basically does
-         everything that com_off previously did. Besides from com_off it
-         is also called if connection to para_server breaks down
-
-2005-07-15 02:26  maan
-
-       * audiod.c: use quadratic growth rather than exponential growth for
-         penalty timings
-
-2005-07-15 01:46  maan
-
-       * command.c: fix com_ff
-
-2005-07-15 01:02  maan
-
-       * mp3.c: fix time display after pause
-
-2005-07-15 00:23  maan
-
-       * mp3.c: fix more potential segfaults (that actually never
-         triggered, but anyway)
-
-2005-07-15 00:11  maan
-
-       * mp3.c: fix computation of bitrate and frequency. Nuke
-         header_is_valid, it does not work for vbr. Fix potential segfault
-         in header_frequency()
-
-2005-07-14 23:14  maan
-
-       * audiod.c: simplify closing of stream fds. They are all closed
-         from one central function now. This fixes a problem when paused:
-         the write fd was not closed until the timeout was reached. With
-         this patch it is closed immediately
-
-2005-07-14 20:06  maan
-
-       * mp3.c: reset header_isvalid and id3_isvalid. Use a valid header
-         for computing the freq rather than the first header we can find
-
-2005-07-14 20:04  maan
-
-       * audiod.ggo: we do not read the HOSTNAME ENV anymore
-
-2005-07-14 20:03  maan
-
-       * para.h: make para_mkstemp public
-
-2005-07-14 20:02  maan
-
-       * mysql.c: cosmetics
-
-2005-07-14 19:55  maan
-
-       * mysql.c: do not leak fds on errors
-
-2005-07-14 19:18  maan
-
-       * mysql.c: cosmetics
-
-2005-07-14 19:12  maan
-
-       * mysql.c: com_upd: use para_mkstemp() for creating the infile in
-         /tmp
-
-2005-07-14 19:11  maan
-
-       * string.c: new function para_mkstemp()
-
-2005-07-14 18:30  maan
-
-       * string.c: add a comment for usage of para_tmpname()
-
-2005-07-14 18:21  maan
-
-       * afs.c: do not fall back to /tmp if $HOME is unset for security
-         reasons. Just bail out
-
-2005-07-14 17:59  maan
-
-       * net.c: delete some old code that was commented out anyway
-
-2005-07-14 17:55  maan
-
-       * server.ggo: add documentation for command line macros to -h
-         output
-
-2005-07-14 17:35  maan
-
-       * audioc.c: use para_hostname instead of getenv()
-
-2005-07-14 17:06  maan
-
-       * mp3dec.c: fix decoding of mono mp3s
-
-2005-07-14 06:43  maan
-
-       * command.c: increase event counter _after_ command has finished
-
-2005-07-14 06:13  maan
-
-       * mp3.c: write info string only at begin of file rather than on
-         each frame. This made an old bug show up: The header frequency
-         display was always wrong for the first time that info was sent by
-         com_stat.
-
-2005-07-14 05:21  maan
-
-       * mp3.c: fix computation of average bitrate for vbr mp3s
-
-2005-07-14 04:21  maan
-
-       * mysql.c: use para_tmpname instead of just the pid
-
-2005-07-13 19:45  maan
-
-       * afs.c: missing __func__, incorrect comment
-
-2005-07-13 09:21  maan
-
-       * audiod.c, gui_common.c, para.h: move open_stat_pipe from
-         gui_common.c to audiod.c and change it to use para_exec() instead
-         of obsolete popen_read_client_cmdline(). Nuke s->err_fd. New
-         functions check_reader() and check_writer(). They return whether
-         we should include the corresponding fd in the fd set for
-         select().
-
-2005-07-13 09:17  maan
-
-       * audioc.c: wrong indent
-
-2005-07-13 09:15  maan
-
-       * exec.c: remove an obsolete function
-
-2005-07-12 18:27  maan
-
-       * mp3dec.c: write wav header, switch to little endian
-
-2005-07-12 17:49  maan
-
-       * mp3dec.c: simplify read_chunk()
-
-2005-07-09 19:43  maan
-
-       * audiod.c: dec_out is no longer a good name
-
-2005-07-09 19:41  maan
-
-       * audiod.c: nuke decoder_output code
-
-2005-07-09 19:36  maan
-
-       * ogg.c: double initial chunks for mono
-
-2005-07-09 18:19  maan
-
-       * send.c: fix serious(?) off-by-one in header save_ov_headers()
-
-2005-07-09 18:17  maan
-
-       * ogg.c: simplify mainloop, introduce initial_chunks, number of
-         chunks that are sent immediately
-
-2005-07-09 18:13  maan
-
-       * audiod.c: fix time display if paused. Clear stat items when
-         stopped, dump audiod status in mainloop
-
-2005-07-09 18:13  maan
-
-       * para.h, stat.c: new function: dump_empty_status. To be called
-         when current status is known to be invalid
-
-2005-07-09 18:09  maan
-
-       * afs.c: introduce extra delay to announce the stream
-
-2005-07-09 01:26  maan
-
-       * afs.c, audiod.c, command.c, mp3.c, ogg.c, para.h, server.h,
-         stat.c: introduce mmd->stream_start as a fallback time source for
-         audiod when it starts its decoder in the middle of a audio file
-
-2005-07-08 04:11  maan
-
-       * net.c: use uname() to get the hostname instead of
-         getenv("HOSTNAME")
-
-2005-07-08 03:46  maan
-
-       * afs.c: use para_hostname() instead of getenv()
-
-2005-07-08 03:31  maan
-
-       * ogg.c: comment out noisy debug messages
-
-2005-07-08 03:29  maan
-
-       * ogg.c: use para_hostname() instead of getenv()
-
-2005-07-08 03:23  maan
-
-       * audiod.c: use para_hostname() instead of getenv()
-
-2005-07-08 03:12  maan
-
-       * oggdec.c: nuke time display as time is now computed by audiod
-
-2005-07-08 03:10  maan
-
-       * mp3dec.c: nuke print_status() as time is now computed by audiod
-
-2005-07-08 03:06  maan
-
-       * audiod.c: use para_malloc instead of malloc
-
-2005-07-08 02:38  maan
-
-       * stat.c: fix memory leak
-
-2005-07-08 01:53  maan
-
-       * audiod.c: use para_hostname instead of getenv
-
-2005-07-08 01:41  maan
-
-       * gui.c: use make_message instead of sprintf
-
-2005-07-07 03:38  maan
-
-       * afs.c, mp3.c, ogg.c, server.h: change handling of repositioning
-         the stream. The corresponding timing is now done from within the
-         audio format handler
-
-2005-07-07 03:31  maan
-
-       * net.c: cosmetics
-
-2005-07-07 03:27  maan
-
-       * command.c: do not mess around with offset in command.c The offset
-         is better computed from the audio format handler
-
-2005-07-07 03:24  maan
-
-       * audioc.c: check config file
-
-2005-07-07 03:18  maan
-
-       * audiod.c: record start time of both reader and writer. Start
-         reader again even if writer exists
-
-2005-07-07 03:17  maan
-
-       * NEWS: [no log message]
-
-2005-07-07 03:16  maan
-
-       * Makefile.in: clean: remove also manual.txt
-
-2005-07-03 22:50  maan
-
-       * audiod.c: keep track of number of stat clients and refuse to
-         accept more stat connections if limit is reached
-
-2005-07-03 22:18  maan
-
-       * para.h, stat.c: client_add and() dump_stat_line() now return the
-         number of connected clients.
-
-2005-07-03 22:17  maan
-
-       * net.c: return positive value on success. Let's hope that this
-         does not break anything..
-
-2005-07-03 22:11  maan
-
-       * audiod.c: trivial cleanup, loglevel adjustments
-
-2005-07-03 20:51  maan
-
-       * audiod.c: close fd if ring_buffer_dump failed
-
-2005-07-03 20:33  maan
-
-       * audiod.c: oops. In handle_connect(), close fd only for invalid
-         commands as it is closed by each command handler if neccessary.
-
-2005-07-03 19:02  maan
-
-       * audiod.c: serious(?) typo. Nuke unused function
-
-2005-07-03 18:48  maan
-
-       * audiod.c: fix memory leak
-
-2005-07-03 18:41  maan
-
-       * audiod.c: rewrite audiod_status_string() to use the decoder that
-         was last started for time display rather than current_decoder
-         which is sent by server and might contain the new docoder while
-         the old one is still running. Send status string only if it has
-         changed
-
-2005-07-01 17:18  maan
-
-       * mp3.c: print average bitrate for vbr files, additional log
-         message at eof, more precise timing
-
-2005-07-01 17:14  maan
-
-       * para.h, time.c: new function: tv_scale()
-
-2005-06-27 18:57  maan
-
-       * command.c: fix com_ff()
-
-2005-06-26 17:42  maan
-
-       * afs.c, mp3.c, ogg.c, server.h: handle REPOS in mainloop() rather
-         than in send_chunk(). Fix eof_delay for jump and next
-
-2005-06-22 00:29  maan
-
-       * command.c: serious bug: only install dummy SIGUSR1 signal handler
-         for com_stat(). This caused com_upd (and likely all other mysql
-         commands) to break if a server event occured during execution
-
-2005-06-21 23:45  maan
-
-       * mysql.c: do not nuke dirlist if find command did not find
-         anything
-
-2005-06-21 16:48  maan
-
-       * README: [no log message]
-
-2005-06-21 16:29  maan
-
-       * audiod.c: re-init streamio in com_hup()
-
-2005-06-21 15:36  maan
-
-       * Makefile.in, audiod.c: reactivate and fix penalty timings
-
-2005-06-21 14:46  maan
-
-       * audiod.c: clear_slot(): Only close stderr if it is a valid fd
-
-2005-06-20 23:43  maan
-
-       * README.mysql: nuke doku on DIR_LIKE macro.
-
-2005-06-20 23:39  maan
-
-       * mysql.c: nuke DIR_LIKE macro. Is the only one that requires an
-         O(n^2) query.
-
-2005-06-20 23:36  maan
-
-       * INSTALL, NEWS: [no log message]
-
-2005-06-19 21:55  maan
-
-       * index.html: reduce size of headline, fix some html errors to make
-         it valid html 4.01 transitional and include corresponding logo.
-
-2005-06-19 17:18  maan
-
-       * audiod.c: fix com_help(). This time for real.
-
-2005-06-19 17:11  maan
-
-       * audiod.c: fix com_help()
-
-2005-06-19 16:02  maan
-
-       * net.c, para.h: new function: para_hostname()
-
-2005-06-19 16:02  maan
-
-       * mysql.c: ps and ns change current_stream, so they should require
-         DB_WRITE privileges. Extend get_query() to optionally do a
-         cheaper O(n) query for a given stream if full pathnames are not
-         required and use this cheaper query where possible. Moreover, do
-         not store the full result and truncate afterwards, but use a
-         mysql limit clause to get only the required number of matches
-
-2005-06-19 15:57  maan
-
-       * mp3.c: use para_hostname instead of getenc()
-
-2005-06-19 15:52  maan
-
-       * exec.c: abort if fork fails
-
-2005-06-19 15:52  maan
-
-       * audiod.c: fix several memory leaks
-
-2005-06-02 20:30  maan
-
-       * client.c, client.conf.sample, client.ggo, fade.ggo, gui.ggo,
-         sdl_gui.ggo, server.ggo: replace USER by LOGNAME
-
-2005-06-02 20:30  maan
-
-       * stat.c: list.h never really existed
-
-2005-06-02 19:37  maan
-
-       * send.c: do not sleep at all. This is now done from within afs
-
-2005-06-02 19:36  maan
-
-       * recv.c: make prebuffer time dependent on audio format
-
-2005-06-02 19:16  maan
-
-       * mp3.c: terminate stream writer on repos. That is the easiest way
-         to circumwent sound clipping
-
-2005-06-02 19:15  maan
-
-       * gui_common.c: stat.h was only a (bad) idea..
-
-2005-06-02 19:14  maan
-
-       * gui.c: serious typo that caused segfaults for terminals that are
-         too small for the current theme
-
-2005-06-02 19:13  maan
-
-       * audiod.c: dump stderr to /dev/null
-
-2005-06-02 19:13  maan
-
-       * afs.c: extra sleep between song changes. Needs to be redone
-         properly
-
-2005-06-02 17:38  maan
-
-       * mysql.c: com_cs changes the database
-
-2005-06-02 15:45  maan
-
-       * stat.c: comment out noisy debug messages
-
-2005-05-30 20:06  maan
-
-       * audiod.c, para.h, stat.c: move stat_client related functions to
-         from audiod.c to stat.c
-
-2005-05-26 17:30  maan
-
-       * audiod.c, audiod.ggo, net.c: new option: force (unlinks socket)
-
-2005-05-26 16:59  maan
-
-       * NEWS: [no log message]
-
-2005-05-26 16:59  maan
-
-       * audiod.ggo: nuke unused option auto_decode
-
-2005-05-26 07:28  maan
-
-       * net.c: give credit to okir
-
-2005-05-26 07:12  maan
-
-       * audiod.c, audiod.ggo: add user_alow option
-
-2005-05-26 06:57  maan
-
-       * audioc.c: do not crash with no args
-
-2005-05-26 06:57  maan
-
-       * NEWS, README: [no log message]
-
-2005-05-26 06:27  maan
-
-       * audiod.c, audiod.ggo: rename fifo to socket
-
-2005-05-26 06:23  maan
-
-       * audioc.c, audioc.ggo: rename fifdor to tmpdir
-
-2005-05-26 06:05  maan
-
-       * audioc.c, audioc.ggo: replace fifo by socket
-
-2005-05-26 06:01  maan
-
-       * audioc.c: nuke fifo code
-
-2005-05-26 05:41  maan
-
-       * audiod.c: remove some old fifo code
-
-2005-05-26 05:36  maan
-
-       * audiod.c: simplify handle_connect()
-
-2005-05-26 05:35  maan
-
-       * net.c: zero out the user buffer, not the control buffer
-
-2005-05-26 05:05  maan
-
-       * audiod.c, net.c: zero-out all buffers, 255 byte is enough
-
-2005-05-26 04:52  maan
-
-       * Makefile.in, audioc.c, audiod.c, net.c, para.h: switch from
-         cmd_fifo to unix sockets using SCM_CREDENTIALS
-
-2005-05-25 19:37  maan
-
-       * slider.c: update to libzmw-0.1.0
-
-2005-05-20 19:10  maan
-
-       * command.c: fix com_next and com_nomore that used afs_status_flags
-         directly
-
-2005-05-20 18:39  maan
-
-       * mysql.c: fix com_csp
-
-2005-05-19 23:35  maan
-
-       * slider.c: decrease slider size. That makes sliders work again if
-         one of them is at 100%. Don't ask why..
-
-2005-05-19 20:21  maan
-
-       * gui.c: do not hog cpu if no audiod
-
-2005-05-19 20:06  maan
-
-       * gui.c, gui_common.c, para.h, sdl_gui.c: rename open_audiod_pipe
-         to para_open_audiod_pipe
-
-2005-05-19 19:56  maan
-
-       * audioc.c: unlink fifo just after select indicates that audiod has
-         opened that fifo
-
-2005-05-19 19:55  maan
-
-       * command.c: add missing stat items
-
-2005-05-19 01:53  maan
-
-       * Makefile.in, command.c, gui_common.c, gui_theme.c: remove
-         volatile from command.c, compute everything in one run instead.
-         Replace hardcoded status strings by their equivalent in
-         status_item_list[]. Do not print SI_LENGTH_MIN and SI_LENGTH_SEC
-         as SI_LENGTH should be enough for everyone.
-
-2005-05-19 01:50  maan
-
-       * stat.c: contains common code concerning the para_server stat and
-         para_audiod stat commands. Used by server, gui and sdl_gui
-
-2005-05-19 00:17  maan
-
-       * README: [no log message]
-
-2005-05-18 20:27  maan
-
-       * gui.c, gui_common.c, gui_theme.c, para.h, sdl_gui.c: make sdl gui
-         use para_audioc instead of directly contacting the server. Move
-         some generic code from gui.c to gui_common.c
-
-2005-05-18 20:22  maan
-
-       * afs.c: comment out noisy debug messages
-
-2005-05-18 17:01  maan
-
-       * string.c: s_a_r(): return an empty string if src is NULL
-
-2005-05-18 16:59  maan
-
-       * ogg.c: fix crash on sighup, use sw_pid = -1 for 'no
-         stream_writer'
-
-2005-05-18 16:58  maan
-
-       * mp3.c: use sw_pid = -1 for 'no stream_writer'
-
-2005-05-18 16:58  maan
-
-       * command.c, server.c: use new_afs_status_flags
-
-2005-05-18 16:58  maan
-
-       * audiod.c: It is not an error if we can not find a stream writer,
-         just do nothing in that case
-
-2005-05-18 16:57  maan
-
-       * afs.c: use sw_pid = -1 for 'no stream_writer', use
-         new_afs_status_flags
-
-2005-05-17 17:38  maan
-
-       * slider.c: use something like x - 1/x for the  score formula
-
-2005-05-17 17:38  maan
-
-       * server.ggo: use something like x - 1/x for the default score
-
-2005-05-17 17:37  maan
-
-       * recv.c: do not prebuffer so much
-
-2005-05-17 17:37  maan
-
-       * server.c: use new_afs_status_flags
-
-2005-05-17 17:34  maan
-
-       * send.c: fix brown paper bug that caused the beginning of an ogg
-         file to be corrupted, sleep _after_ shutting down ortp
-
-2005-05-17 17:32  maan
-
-       * server.h: new: mmd->new_status_flags, make afs_open_fifo take an
-         array of fds (APUE trick)
-
-2005-05-17 17:31  maan
-
-       * string.c: s_a_r does not modify any of its args, dup the string
-         if no match was found
-
-2005-05-17 17:19  maan
-
-       * para.h: s_a_r does not modify any of its args
-
-2005-05-17 17:18  maan
-
-       * ogg.c: fix start of playing, use Close also the new fifo, start
-         para_send on demand
-
-2005-05-17 17:16  maan
-
-       * mp3.c: cosmetics, compute af_open_cmd on demand instead of only
-         once. Fixes segfault on sighup. Close also the new fifo from the
-         APUE trick
-
-2005-05-17 17:07  maan
-
-       * krell.c: fetch exit status of para_stat
-
-2005-05-17 17:03  maan
-
-       * index.html: [no log message]
-
-2005-05-17 17:03  maan
-
-       * exec.c: remove some unused code
-
-2005-05-17 17:03  maan
-
-       * command.c: com_next(): do not set afs_status_flags directly,
-         rather use the new mmd->new_afs_status_flags in order to prevent
-         audiod to start the (possibly wrong) decoder too early
-
-2005-05-17 17:01  maan
-
-       * audiod.c: fix percentage display, move kill_xxx functions to top,
-         kill reader if writer dies unexpected. Assume that valid fds are
-         > 0
-
-2005-05-17 16:56  maan
-
-       * afs.c: introduce afl[i].show_offset, open stream write fifo also
-         for reading, prevent hard locks on invalid stream_write command
-
-2005-05-17 16:39  maan
-
-       * NEWS: [no log message]
-
-2005-05-12 20:58  maan
-
-       * audiod.c: fix sound artefacts while jumping
-
-2005-05-11 23:16  maan
-
-       * audiod.c: use para_exec instead of popen_read_cmdline_pid(),
-         switch from FILE *s->write to int s->write_fd
-
-2005-05-11 23:15  maan
-
-       * exec.c: typo that caused duping to /dev/null to break
-
-2005-05-11 22:21  maan
-
-       * audiod.c: use para_exec instead of popen_read_cmdline_pid(),
-         switch from FILE *s->read to int s->read_fd
-
-2005-05-11 22:02  maan
-
-       * audiod.c: cosmetics
-
-2005-05-11 21:40  maan
-
-       * gui_theme.c: include audiod status also in simple theme
-
-2005-05-11 21:40  maan
-
-       * audiod.c: use new syntax for para_exec
-
-2005-05-11 21:38  maan
-
-       * INSTALL: [no log message]
-
-2005-05-11 21:19  maan
-
-       * exec.c: triple choice for para_exec: dup fd, dup fd to /dev/null,
-         or leave fd alone
-
-2005-05-11 07:25  maan
-
-       * mp3dec.c: reduce buffer size and hence latency
-
-2005-05-11 07:24  maan
-
-       * mp3.c: use correct value for computing the length of the song,
-         now that is has become important...
-
-2005-05-11 07:23  maan
-
-       * gui_theme.c: dont print length of audio file twice
-
-2005-05-11 06:48  maan
-
-       * NEWS: [no log message]
-
-2005-05-11 05:28  maan
-
-       * krell.c: fix crash on server exit
-
-2005-05-11 04:52  maan
-
-       * audiod.c: clear slots and compute decoder flags based on
-         existence of the corresponding process rather than on whether we
-         have closed the pipe
-
-2005-05-11 04:32  maan
-
-       * audiod.c: typos
-
-2005-05-11 04:06  maan
-
-       * mp3.c: okay, the improved time magic wasnt better at all..
-
-2005-05-11 03:56  maan
-
-       * audiod.ggo: better explanation of stream_read_cmd
-
-2005-05-11 03:38  maan
-
-       * exec.c: para_exec_cmdline_pid(): use a temporary copy of the
-         given command line for split_args
-
-2005-05-11 03:37  maan
-
-       * client.c: oops, missing check for write errors
-
-2005-05-11 03:19  maan
-
-       * audiod.c, command.c, server.c, server.h: major change: server
-         sends full status info whenever a event occurs. audiod: Fix time
-         display for most cases. Clients connect only once to get status
-         info, manage a list of stat-clients and send info to each of them
-         whenever we read a line from para_server. Improve starting of
-         decoders: Restart reader as soon as old reader dies, but defer
-         starting of writer to the moment we read the first data
-
-2005-05-11 03:07  maan
-
-       * afs.c: introduce .show_offset flag. On for mp3, off for ogg.
-
-2005-05-11 03:05  maan
-
-       * mp3dec.c: fix last-chunk-wasnt-played bug
-
-2005-05-11 03:03  maan
-
-       * ogg.c: typo
-
-2005-05-11 03:03  maan
-
-       * gui_theme.c: reserve more space for time display
-
-2005-05-11 03:02  maan
-
-       * mp3.c: better time magic
-
-2005-05-11 03:01  maan
-
-       * gui_common.c, para.h: SI_LENGTH is there for ages
-
-2005-05-11 03:00  maan
-
-       * gui.c: dont do things twice. Use popen(audioc) instead to get the
-         status.
-
-2005-05-11 02:57  maan
-
-       * string.c: para_strcat(): it's okay to append to a NULL pointer
-
-2005-05-11 02:50  maan
-
-       * audioc.c: nuke SIGALARM crap, check for write errors. Check for
-         timeout once and use blocking reads afterwards.
-
-2005-05-11 02:47  maan
-
-       * README: [no log message]
-
-2005-05-08 18:31  maan
-
-       * mp3.c, ogg.c, recv.c, recv.ggo, send.c, send.ggo, server.ggo: use
-         different default ports depending on -a option
-
-2005-05-08 17:59  maan
-
-       * COPYING, README, afs.c, client.c, command.c, configure.ac,
-         daemon.c, dopey.c, fade.c, gui.c, gui_theme.c, index.html, mp3.c,
-         mp3dec.c, mysql.c, ogg.c, oggdec.c, para.h, recv.c, sdl_gui.c,
-         send.c, server.c, server.h, slider.c, string.c: change email
-         adress
-
-2005-05-08 17:41  maan
-
-       * FEATURES, INSTALL, NEWS, README: [no log message]
-
-2005-05-08 17:19  maan
-
-       * server.ggo: document new defaults
-
-2005-05-08 17:18  maan
-
-       * para.h, string.c: check for NULL pointers in s_a_r()
-
-2005-05-08 17:17  maan
-
-       * ogg.c: change default from para_ovsend to para_send
-
-2005-05-08 17:17  maan
-
-       * mp3.c: change default from poc to para_send
-
-2005-05-08 17:16  maan
-
-       * afs.c: use s_a_r to compute open_cmd
-
-2005-05-08 16:28  maan
-
-       * Makefile.in, configure.ac, recv.c, send.c: adapt to new names
-
-2005-05-08 16:16  maan
-
-       * recv.c, recv.ggo: former ovrecv
-
-2005-05-08 16:16  maan
-
-       * ovrecv.c, ovrecv.ggo: renamed to recv
-
-2005-05-08 16:09  maan
-
-       * send.c, send.ggo: former ovsend
-
-2005-05-08 16:08  maan
-
-       * ovsend.c, ovsend.ggo: renamed to send
-
-2005-05-08 15:59  maan
-
-       * command.c: fix time display
-
-2005-05-08 15:51  maan
-
-       * Makefile.in, configure.ac: ovsend/ovrec do no longer depend on
-         libvorbis
-
-2005-05-08 15:51  maan
-
-       * string.c: use const where appropriate
-
-2005-05-08 15:50  maan
-
-       * para.h: make s_a_r public
-
-2005-05-08 15:49  maan
-
-       * ovsend.ggo: specify header length by command line
-
-2005-05-08 15:49  maan
-
-       * ogg.c, ovsend.c: move code that depends on libvorbis from
-         ovsend.c to ogg.c
-
-2005-05-08 15:47  maan
-
-       * mp3.c: remove noisy log message
-
-2005-05-08 15:46  maan
-
-       * afs.c: cosmetics
-
-2005-05-08 15:41  maan
-
-       * audiod.c: always check for streamio, not only when playing
-
-2005-05-08 02:14  maan
-
-       * ovrecv.c, ovsend.c, ovsend.ggo, ovrecv.ggo: implement streaming
-         of mp3 files, remove all dependencies on libvorbisfile
-
-2005-05-07 16:28  maan
-
-       * mp3.c: do timing for sending data inside mp3.c rather than
-         sending data whenever the fd would not block
-
-2005-05-07 16:26  maan
-
-       * mp3dec.c: implement prebuffering
-
-2005-05-06 21:42  maan
-
-       * slider.c: cosmetics
-
-2005-05-06 21:13  maan
-
-       * slider.c: make input text field work again
-
-2005-05-06 18:11  maan
-
-       * mysql.c: typos, found by testing gcc 4.1.0
-
-2005-05-05 23:15  maan
-
-       * audiod.c: remove fifo on com_hup, new option: mode (to be used on
-         startup)
-
-2005-05-05 23:15  maan
-
-       * audiod.ggo: oops, forgot to check in
-
-2005-05-05 20:42  maan
-
-       * mp3dec.c: print output only once per second
-
-2005-05-05 19:58  maan
-
-       * audiod.c: nuke offset_change crap. Remember number of decoder
-         that was started last and use that as the current decoder
-         instead. Still doesn't work properly when jumping.
-
-2005-05-05 18:45  maan
-
-       * audiod.c: use APUE trick to prevent EOF from being generated when
-         #clients goes from 1 to 0. Log hostname, abort if cmd fifo
-         exists, remove cmd_fifo on exit
-
-2005-05-05 16:43  maan
-
-       * ogg.c: do not flood logs
-
-2005-05-05 16:42  maan
-
-       * gui_theme.c: cosmetics
-
-2005-05-05 16:42  maan
-
-       * Makefile.in: manual.txt: add audiod commands. audiod_objs: remove
-         repeated object file
-
-2005-05-05 16:41  maan
-
-       * 1.0, NEWS: [no log message]
-
-2005-05-05 06:13  maan
-
-       * gui.c: use one one (random) fifo for reading audiod stat info
-
-2005-05-05 04:10  maan
-
-       * slider.c: automatically translated to libzmw 0.0.12 by shipped
-         script zmw-upgrade.py. Seems to work.
-
-2005-05-04 19:57  maan
-
-       * server.c: read only once from signal pipe
-
-2005-05-04 19:11  maan
-
-       * gui.c: fix some memory leaks, simplify print_status_bar()
-
-2005-05-04 18:23  maan
-
-       * audiod.c: still more memory leaks in dump_ring_buffer()
-
-2005-05-04 18:15  maan
-
-       * audiod.c: fix more memory leaks
-
-2005-05-04 17:58  maan
-
-       * command.c: fix severe memory leak in com_stat()
-
-2005-05-04 17:45  maan
-
-       * index.html: typo
-
-2005-05-04 17:45  maan
-
-       * gui.ggo: new option: timeout
-
-2005-05-04 17:44  maan
-
-       * gui.c: detect if audiod is running and print error message if it
-         is not. Print the keysym for unknown keys.
-
-2005-05-04 17:39  maan
-
-       * audiod.c: help for com_hup, more log messages
-
-2005-04-28 22:30  maan
-
-       * gui.c: open also write fifo in read-only mode
-
-2005-04-28 21:03  maan
-
-       * audioc.c: do not block forever if audiod is not running
-
-2005-04-28 20:51  maan
-
-       * audiod.c: do not dup stdout when execing decoder
-
-2005-04-28 20:51  maan
-
-       * exec.c: improve para_exec(): It is now possible to dup only some
-         of the three std fds
-
-2005-04-28 20:14  maan
-
-       * para.h: status_item_list update, make more function declarations
-         public
-
-2005-04-28 20:14  maan
-
-       * gui_theme.c: set the new varbables on theme init. New functions:
-         prev_theme() and next_theme()
-
-2005-04-28 20:12  maan
-
-       * gui_common.c: remove old cruft, status_item_list update
-
-2005-04-28 20:11  maan
-
-       * command.c: simplify com_stat(), set offset in com_jmp()
-
-2005-04-28 20:07  maan
-
-       * audiod.c: new commands: help and cycle. Do not call kill() if pid
-         <=0, check for offset change in stat output
-
-2005-04-28 20:04  maan
-
-       * audioc.c: use make_message() and new concat_arg() instead of
-         sprintf
-
-2005-04-28 20:04  maan
-
-       * gui.c: make many hardcoded constants themable. Don't exec
-         para_audioc, implement it as a function instead
-
-2005-04-28 19:57  maan
-
-       * string.c: new function: concat_args
-
-2005-04-28 19:57  maan
-
-       * server.h: add chunk_offset to mmd
-
-2005-04-28 19:56  maan
-
-       * gui.ggo: nuke top_lines since it is now set by theme
-
-2005-04-28 19:55  maan
-
-       * afs.c: reset chunk_offset on song change
-
-2005-04-28 19:54  maan
-
-       * NEWS: [no log message]
-
-2005-04-28 19:54  maan
-
-       * Makefile.in: audiod depends on gui_common
-
-2005-04-26 04:21  maan
-
-       * gui.c: make para_gui themable
-
-2005-04-26 04:18  maan
-
-       * Makefile.in, gui.c, gui_common.c, para.h: make para_gui themable
-
-2005-04-26 04:11  maan
-
-       * gui_theme.c: contains color and position information for
-         displaying stat items
-
-2005-04-25 18:58  maan
-
-       * gui.c: remove stream I/O code. This is now done by para_audiod
-
-2005-04-25 18:21  maan
-
-       * FEATURES: [no log message]
-
-2005-04-25 18:06  maan
-
-       * server.c: remove unused variable, child closes socket after fork
-
-2005-04-25 18:05  maan
-
-       * audiod.c: why was that commented out? Reactivate
-
-2005-04-25 18:04  maan
-
-       * audioc.ggo: new option: timeout
-
-2005-04-25 18:04  maan
-
-       * audioc.c: new option: timeout. catch signals, use positive error
-         codes and 0 for success
-
-2005-04-25 17:56  maan
-
-       * NEWS, README: [no log message]
-
-2005-04-25 17:56  maan
-
-       * Makefile.in: make install: create vardir, stripping is done at
-         install time, no need to use -s option for gcc
-
-2005-04-25 17:54  maan
-
-       * INSTALL: major update
-
-2005-04-25 06:06  maan
-
-       * README: mention the new executables
-
-2005-04-25 06:03  maan
-
-       * daemon.c, para.h: remove an unused function
-
-2005-04-25 06:02  maan
-
-       * audiod.c: do not log if daemon and no logfile, ignore
-         conf.daemon_given on sighup
-
-2005-04-25 05:55  maan
-
-       * mp3.c: always use default if af->open_cmd is null
-
-2005-04-25 05:52  maan
-
-       * server.c: remove some dead code
-
-2005-04-25 05:49  maan
-
-       * server.c: do not log if daemon and no logfile, ignore
-         conf.daemon_given on sighup, become daemon earlier. That fixes
-         hangs on startup.
-
-2005-04-25 02:40  maan
-
-       * Makefile.in: add daemon.o to objs where neccessary. audioc
-         depends on audioc.cmdlin.o
-
-2005-04-25 02:38  maan
-
-       * audiod.c: new command: hup, use functions from daemon.c to
-         daemonize and for logging to specified log file. Die on sigint,
-         reload conf on sighup
-
-2005-04-25 02:35  maan
-
-       * para.h, server.h: make functions from daemon.c public
-
-2005-04-25 02:34  maan
-
-       * server.c: move daemon generic functions to daemon.c
-
-2005-04-25 02:33  maan
-
-       * daemon.c: contains common stuff between para_server and
-         para_audiod
-
-2005-04-25 02:32  maan
-
-       * ovrecv.c, ovsend.c: switch to void instead of static void to
-         avoid compiler warnings
-
-2005-04-25 02:31  maan
-
-       * fade.c: switch to logging with to fixed args, like in any other
-         paraslash executable
-
-2005-04-25 02:30  maan
-
-       * NEWS: [no log message]
-
-2005-04-25 02:29  maan
-
-       * audioc.c: add gengetopt command line options
-
-2005-04-25 02:29  maan
-
-       * audioc.ggo: command line options for the audio client
-
-2005-04-24 21:27  maan
-
-       * audiod.c: implement audiod commands: stat term on off standby
-
-2005-04-24 20:25  maan
-
-       * Makefile.in, configure.ac: add para_oggdec
-
-2005-04-24 20:25  maan
-
-       * oggdec.c: a teensy oggvorbis decoder
-
-2005-04-24 20:02  maan
-
-       * audioc.c: simple client that opens two fifos to communicatw with
-         para_audiod.
-
-2005-04-24 20:01  maan
-
-       * audiod.c: remove underscore to match other stat items
-
-2005-04-24 20:00  maan
-
-       * para.h, string.c: new function: para_tmpname(). Pseudo random.
-
-2005-04-24 18:55  maan
-
-       * audiod.c: add decoder flags in ring buffer dump output
-
-2005-04-24 18:14  maan
-
-       * audiod.c: always check err_fd, close err_fd in any case
-
-2005-04-24 05:04  maan
-
-       * audiod.c: read also stderr of stream writers
-
-2005-04-24 05:04  maan
-
-       * exec.c, para.h: add para_exec functions that redirect stdin,
-         stdout, and stderr
-
-2005-04-24 02:54  maan
-
-       * NEWS: [no log message]
-
-2005-04-24 02:53  maan
-
-       * slider.c: add gpl header
-
-2005-04-24 02:52  maan
-
-       * Makefile.in, configure.ac: add para_mp3dec
-
-2005-04-24 02:52  maan
-
-       * mp3dec.c: A teensy mp3 decoder
-
-2005-04-24 02:51  maan
-
-       * CREDITS: add Thierry Excoffier and Robert Leslie
-
-2005-04-24 02:17  maan
-
-       * server.c: fix brown paper bag bug that caused server to hang on
-         song change
-
-2005-04-24 02:16  maan
-
-       * afs.c, exec.c, para.h: move open_fifo from afs.c to exec.c
-
-2005-04-24 02:15  maan
-
-       * Makefile.in: add para_audiod
-
-2005-04-24 02:15  maan
-
-       * audiod.c: the audio daemon
-
-2005-04-21 17:39  maan
-
-       * exec.c, para.h: make some functions static
-
-2005-04-21 17:33  maan
-
-       * para.h: remove unused defines
-
-2005-04-21 17:33  maan
-
-       * Makefile.in, NEWS, configure.ac: change version, codename
-
-2005-04-18 20:30  maan
-
-       * NEWS, configure.ac: paraslash 0.1.7
-
-2005-04-18 20:08  maan
-
-       * slider.c: give -1000 points if file was just played
-
-2005-04-18 00:37  maan
-
-       * mysql.c: com_cam(): fix stupid cut and paste bug
-
-2005-04-18 00:08  maan
-
-       * Makefile.in: para_ovrecv depends on string.o
-
-2005-04-18 00:07  maan
-
-       * gui.ggo: re-increase default stream_timeout to 10 secs because 5
-         secs is not enough for 22kh mono
-
-2005-04-18 00:06  maan
-
-       * ovrecv.c, ovrecv.ggo: introduce prebuffering
-
-2005-04-18 00:04  maan
-
-       * ogg.c: nuke grace_time()
-
-2005-04-17 21:30  maan
-
-       * NEWS: [no log message]
-
-2005-04-17 21:27  maan
-
-       * gui.c, gui.ggo: new command line option: --stream_timeout
-
-2005-04-17 21:16  maan
-
-       * para.h, time.c: use const where apropriate, round tv_usec
-
-2005-04-17 21:15  maan
-
-       * mp3.c: cosmetics
-
-2005-04-17 21:12  maan
-
-       * NEWS, README: [no log message]
-
-2005-04-11 20:06  maan
-
-       * ogg.c: whitespace fixes, improve timings, move time-related stuff
-         to time.c
-
-2005-04-11 20:04  maan
-
-       * ovsend.c: whitespace fixes, improve timings, get rid of some
-         sleep
-
-2005-04-11 20:02  maan
-
-       * bash_completion: make it work without having sourced
-         bash_competion
-
-2005-04-11 20:01  maan
-
-       * afs.c: move tv2ms() from to time.c, do not sleep in
-         call_all_mainloops()
-
-2005-04-11 20:00  maan
-
-       * Makefile.in: server, ovsend, ovrecv depend on time.c/time.o
-
-2005-04-11 19:59  maan
-
-       * time.c: contains time-related functions: tv_add(), tv_diff()...
-
-2005-04-11 19:58  maan
-
-       * ovsend.ggo: set default header interval to 3 seconds
-
-2005-04-11 19:57  maan
-
-       * para.h, server.h: mv time-related declarations to para.h
-
-2005-04-10 14:55  maan
-
-       * ogg.c: fix pause
-
-2005-04-10 00:07  maan
-
-       * afs.c: cosmetics
-
-2005-04-09 23:27  maan
-
-       * afs.c, mp3.c, ogg.c: Fix nasty double free bug: If
-         get_file_info() from the first audio format (mp3) failed, it
-         closed the corresponding fd, so get_file_info() for the second
-         audio format (ogg) got passed an already closed fd. Even worse,
-         get_file_info() closed that fd again. Nasty thing here is that
-         neither ov_open() nor the second fclose() segfaulted but
-         corrupted memory in some way which caused subsequent mysql
-         queries to crash.
-
-         The fix is easy: Do not close the fd at the audio format layer
-         (ogg, mp3), but at the higher afs layer, and of course only if
-         _all_ get_file_info()'s failed.
-
-2005-04-09 23:11  maan
-
-       * NEWS: [no log message]
-
-2005-03-30 22:17  maan
-
-       * slider.c: two new sliders: lastplayed and numplayed
-
-2005-03-28 23:40  maan
-
-       * krell.c: comment out unneeded destroy_song_change()
-
-2005-03-28 23:26  maan
-
-       * server.c: avoid openssl zombies, make old gcc happy
-
-2005-03-28 23:26  maan
-
-       * command.c: avoid openssl zombies
-
-2005-03-28 22:28  maan
-
-       * krell.c: fix memory leak
-
-2005-03-28 21:42  maan
-
-       * mp3.c: make 2.95.4 happy
-
-2005-03-27 20:51  maan
-
-       * ogg.c: rewrite ogg_mainloop() in the style of mp3_mainloop()
-
-2005-03-27 20:50  maan
-
-       * mp3.c: only start stream writer when we have a valid file and
-         current audio format is mp3
-
-2005-03-27 20:49  maan
-
-       * afs.c: simplify afs_mainloop(), init afl[i].fifo
-
-2005-03-26 18:22  maan
-
-       * mp3.c: move check for AFS_NEXT from send_chunk to mainloop
-
-2005-03-26 17:31  maan
-
-       * mp3.c: reorder functions
-
-2005-03-26 17:23  maan
-
-       * README.mysql: typo
-
-2005-03-26 17:22  maan
-
-       * mp3.c: fix playing when switching from ogg to mp3
-
-2005-03-25 02:03  maan
-
-       * exec.c: fixup totally borked exec_vp_pid_bg()
-
-2005-03-25 01:47  maan
-
-       * server.h: add prototypes for afs_handle_sigchild() and
-         afs_open_fifo(), add fifoname, fifo to struct audio_format, kill
-         sw from struct audio_format()
-
-2005-03-25 01:46  maan
-
-       * server.c: call afs_handle_sigchild for each child that has died
-
-2005-03-25 01:45  maan
-
-       * ogg.c: switch from global variabless for fifo to af->fifo,
-         af->fifoname, move open_fifo() to afs.c
-
-2005-03-25 01:42  maan
-
-       * mp3.c: use fifo rather than stdin, handle repos request from
-         within mp3_mainloop() rather than in mp3_send_chunk()
-
-2005-03-25 01:36  maan
-
-       * afs.c: new function handle_sigchild() which resets af->sw_pid,
-         move open_fifo from ogg.c to afs.c since it is generic for all
-         audio formats now
-
-2005-03-25 01:31  maan
-
-       * NEWS: [no log message]
-
-2005-03-25 01:31  maan
-
-       * CREDITS: add Simon Morlat
-
-2005-03-23 22:31  maan
-
-       * ogg.c: do not compute timestamps if current audio format is not
-         ogg. Move open_fifo() up, some small other cleanups
-
-2005-03-23 22:28  maan
-
-       * server.c: nicer startup message
-
-2005-03-23 22:28  maan
-
-       * mp3.c: remove pointless logging
-
-2005-03-23 22:27  maan
-
-       * command.c: typo
-
-2005-03-23 22:27  maan
-
-       * afs.c: use 1 as first argument of afl[i].mainloop() iff i is
-         current audio format
-
-2005-03-23 22:25  maan
-
-       * README: mention para_ovsend/para_ovrecv
-
-2005-03-23 18:12  maan
-
-       * afs.c, ogg.c: create fifo if not present, detect if fifofile
-         exists but is no fifo, better handling of fifo errors from
-         ogg_mainloop(), loglevel adjustments
-
-2005-03-23 06:05  maan
-
-       * ovrecv.c: new function for handling extra packages, a lot of
-         cleanups
-
-2005-03-23 05:49  maan
-
-       * FEATURES, README: describe ovsend/ovrecv
-
-2005-03-23 03:18  maan
-
-       * ovsend.c: simplify do_io()
-
-2005-03-23 02:46  maan
-
-       * ovsend.c: whitespace cleanup
-
-2005-03-23 02:42  maan
-
-       * gui.c, para.h: sys/time.h is needed by ogg.c and server.c, afs.c,
-         gui.c. Move its inclusion to para.h
-
-2005-03-23 02:35  maan
-
-       * command.c: fix com_nomore()
-
-2005-03-23 02:31  maan
-
-       * afs.c: fix com_nomore()
-
-2005-03-23 01:32  maan
-
-       * server.h: rename afs_preselect(), add two timeval related
-         functions, change syntax of send_chunk()
-
-2005-03-23 01:28  maan
-
-       * server.ggo: change default stream writer from pogg-http to
-         para_ovsend
-
-2005-03-23 01:27  maan
-
-       * server.c: always call afs_mainloop() (not only when playing) to
-         obtain a fd and a timeout which is fed to select(). Close all
-         filedescriptors which are marked FD_CLOEXEC just after forking
-         which is needed for the ogg code
-
-2005-03-23 01:22  maan
-
-       * para.h, string.c: add para_fread(), a wrapper for fread() with
-         sane return values
-
-2005-03-23 01:21  maan
-
-       * ogg.c: complete rewrite. ogg.c does its own timing for writing
-         out data chunks rather than writing to a pipe until it's full
-         like the mp3 code does
-
-2005-03-23 01:19  maan
-
-       * mp3.c: adapt to new syntax (return always NULL as timestamp),
-         move para_fread() to string.c, cosmetics
-
-2005-03-23 01:13  maan
-
-       * configure.ac: check for libortp and libzmw
-
-2005-03-23 01:11  maan
-
-       * NEWS: [no log message]
-
-2005-03-23 01:11  maan
-
-       * autogen.sh: clean up before and after updating
-
-2005-03-23 01:09  maan
-
-       * afs.c: rename afs_preselect() to afs_mainloop(). Call each audio
-         format's mainloop to obtain a filedescriptor and a timestamp.
-         Return the data of the current audio format to main
-
-2005-03-23 01:05  maan
-
-       * Makefile.in: add targets for ovsend and ovrecv
-
-2005-03-23 01:05  maan
-
-       * ovrecv.c, ovrecv.ggo, ovsend.c, ovsend.ggo: two new executables
-         for sending/retrieving ogg vorbis files via rtp
-
-2005-03-22 04:19  maan
-
-       * Makefile.in: do not print silly release date
-
-2005-03-05 17:12  maan
-
-       * README.mysql: minor cleanup
-
-2005-03-05 15:38  maan
-
-       * NEWS, configure.ac: paraslash 0.1.6
-
-2005-03-05 15:12  maan
-
-       * autogen.sh: also build the package. Redirect messages to
-         /dev/null
-
-2005-03-05 15:12  maan
-
-       * Makefile.in, configure.ac: remove pob_ogg
-
-2005-03-05 15:11  maan
-
-       * pob-ogg.c, pob-ogg.ggo: no longer needed
-
-2005-03-05 14:50  maan
-
-       * ogg.c: call end_of_input() directly after freeing ogg_buf.
-         Introduce sleep(1) for now.
-
-2005-03-02 01:29  maan
-
-       * command.c: com_stat(): fix status bar
-
-2005-02-28 14:58  maan
-
-       * NEWS: [no log message]
-
-2005-02-28 00:58  maan
-
-       * mp3.c: close mp3 file on exit
-
-2005-02-28 00:16  maan
-
-       * gui.c: typo
-
-2005-02-27 23:49  maan
-
-       * server.ggo: cosmetics
-
-2005-02-27 23:18  maan
-
-       * server.c: cosmetics
-
-2005-02-27 23:18  maan
-
-       * NEWS: [no log message]
-
-2005-02-27 23:06  maan
-
-       * gui.c: make reload_Config() also reread stream_read_cmd and
-         stream_write_cmd
-
-2005-02-27 22:55  maan
-
-       * gui.c: delay start of decoder rather than going to sleep if
-         penalty > 0
-
-2005-02-27 20:12  maan
-
-       * ogg.c: localize use of var page
-
-2005-02-27 19:46  maan
-
-       * string.c: add a comment
-
-2005-02-27 19:32  maan
-
-       * afs.c: trivial cleanups
-
-2005-02-27 19:27  maan
-
-       * afs.c: simplify afs_preselect()
-
-2005-02-27 19:14  maan
-
-       * afs.c, mp3.c, ogg.c, server.h: handle afs flags NEXT and REPOS
-         inside send chunk
-
-2005-02-27 13:59  maan
-
-       * ogg.c: nuke unneeded clear_page()
-
-2005-02-27 13:34  maan
-
-       * ogg.c: ogg_close_audio_file() is only called from
-         ogg_end_of_input(). Move it there and nuke
-         ogg_close_audio_file().
-
-2005-02-27 13:30  maan
-
-       * ogg.c: submit_headers_to_stream() does not need an argument.
-
-2005-02-27 04:55  maan
-
-       * ogg.c: whitespace cleanup
-
-2005-02-27 04:53  maan
-
-       * ogg.c: move OggVorbis_File into struct para_ogg_state
-
-2005-02-27 04:46  maan
-
-       * ogg.c: rename vcut_state to para_ogg_state
-
-2005-02-27 04:41  maan
-
-       * ogg.c: process_headers() does not need an argument.
-
-2005-02-27 04:34  maan
-
-       * ogg.c: get_page() does not need an argument.
-
-2005-02-27 04:29  maan
-
-       * ogg.c: nuke var vcutstate since vcutstate==s always.
-
-2005-02-27 04:15  maan
-
-       * ogg.c: vcut_new() is only called from ogg_init(). Move it there
-         and nuke vcut_new().
-
-2005-02-27 03:47  maan
-
-       * ogg.c: headers_to_buf() is only called from
-         init_oggvorbis_file(). Move it there and nuke headers_to_buf().
-
-2005-02-27 03:34  maan
-
-       * ogg.c: get rid of sent_headers variable
-
-2005-02-25 21:36  maan
-
-       * ogg.c: do not kill stream writer, wait for it to die instead.
-
-2005-02-25 21:16  maan
-
-       * mysql.c: use load data infile rather than load data local infile.
-         Change tmpdir to /tmp and umask of tmpfile to 022 in order to
-         make it readable by mysqld.
-
-2005-02-23 06:37  maan
-
-       * ogg.c: nuke brain dead have_page logic
-
-2005-02-23 06:22  maan
-
-       * ogg.c: reset offset and packet_no on end of input. Fixes para
-         next
-
-2005-02-23 05:33  maan
-
-       * ogg.c: fix jumping
-
-2005-02-23 05:14  maan
-
-       * ogg.c: remove some unused stuff
-
-2005-02-23 05:12  maan
-
-       * ogg.c: remove old read_chunk/write_chunk pair
-
-2005-02-23 05:10  maan
-
-       * ogg.c: switch to send_chunk, major code reorganization (old code
-         still there to be removed soon).
-
-2005-02-23 05:08  maan
-
-       * afs.c, mp3.c, server.h: switch to send_chunk, rather than the
-         combination of read_chunk/write_chunk
-
-2005-02-22 23:49  maan
-
-       * ogg.c: do not request new page if offset_granulepos is invalid,
-         fix type of offset_granulepos, more logging
-
-2005-02-22 23:13  maan
-
-       * server.h: fix refreshing of stream_write command on sighup
-
-2005-02-22 17:45  maan
-
-       * krell.c: fix compiler warning
-
-2005-02-22 17:44  maan
-
-       * gui.c: use reasonable defaults, increase MAX_STREAM_SLOTS to 10,
-         adapt penalty timing, init slots on startup
-
-2005-02-22 16:13  maan
-
-       * Makefile.in: make clean: remove para_slider
-
-2005-02-22 15:51  maan
-
-       * pics/screenshots/: para_krell-2005-02.png,
-         para_slider-2004-12.png: two more screenshots
-
-2005-02-22 14:47  maan
-
-       * afs.c, server.c: stop playing on read/write errors, fix
-         refreshing of stream_write command on sighup
-
-2005-02-22 00:10  maan
-
-       * afs.c, server.c, server.h: send_chunk() knows the stream writer
-         fd, no need to pass it as an argument
-
-2005-02-21 20:06  maan
-
-       * gui.c: cosmetics
-
-2005-02-21 00:32  maan
-
-       * gui.c: whitespace cleanups
-
-2005-02-21 00:30  maan
-
-       * gui.c: replace num by slot
-
-2005-02-21 00:19  maan
-
-       * gui.c: logging improvements
-
-2005-02-20 23:30  maan
-
-       * gui.c: more checks for active curses
-
-2005-02-20 22:42  maan
-
-       * gui.c: various cleanups, fix siol vs afi mix up
-
-2005-02-13 22:28  maan
-
-       * fade.c: more logging
-
-2005-02-13 22:27  maan
-
-       * Makefile.in: gui depends on string.o
-
-2005-02-13 22:26  maan
-
-       * COPYING: 2004->2005
-
-2005-02-01 22:16  maan
-
-       * ogg.c: delete unnecessary packet_clear()
-
-2005-01-27 01:59  maan
-
-       * ogg.c: do header stuff during file init rather than on first
-         read, fix serious memory leak
-
-2005-01-25 20:20  maan
-
-       * ogg.c: function reordering
-
-2005-01-24 22:57  maan
-
-       * ogg.c: whitespace cleanup
-
-2005-01-24 22:53  maan
-
-       * ogg.c: nuke another unused variable
-
-2005-01-24 22:47  maan
-
-       * ogg.c: use update_sync() rather that using fread() directly
-
-2005-01-24 22:31  maan
-
-       * ogg.c: move out_state to vcutstate, destroy streams and sync_in,
-         more debug messages
-
-2005-01-24 18:58  maan
-
-       * ogg.c: nuke unneeded variables
-
-2005-01-23 20:45  maan
-
-       * ogg.c: simplify process_headers()
-
-2005-01-23 20:28  maan
-
-       * ogg.c: use para_malloc(), simplify vcut_new(), more debugging
-         messages
-
-2005-01-14 14:32  maan
-
-       * gui.c: some small cleanups
-
-2005-01-09 23:31  maan
-
-       * gui.c: major stream I/O reearrangements (slots)
-
-2005-01-09 23:29  maan
-
-       * mysql.c: com_pidel(): reset pic_id to 1 for all files having the
-         picid that is going to be deleted
-
-2005-01-09 17:01  maan
-
-       * ogg.c: fix it again by reverting the changes made in revision
-         1.39. They caused most ogg files to be skipped..
-
-2005-01-08 13:09  maan
-
-       * ogg.c: reset packetno only once
-
-2005-01-07 20:17  maan
-
-       * ogg.c: fix some memory leaks
-
-2005-01-03 20:29  maan
-
-       * server.c: always log startup message
-
-2005-01-02 20:42  maan
-
-       * afs.c, client.c, command.c, dopey.c, fade.c, gui.c, krell.c,
-         mp3.c, mysql.c, ogg.c, para.h, pob-ogg.c, sdl_gui.c, server.c,
-         server.h, string.c: change year to 2005
-
-2005-01-02 18:47  maan
-
-       * command.c: fix another memory leak in get_sb_string(). Again
-         serious for the same reason.
-
-2005-01-02 18:34  maan
-
-       * afs.c, mysql.c: cosmetics
-
-2005-01-02 18:34  maan
-
-       * command.c: fix memory leak in compute_status_volatile(). Serious
-         because it is called by com_stat().
-
-2005-01-01 21:49  maan
-
-       * mysql.c: fix com_picadd()
-
-2005-01-01 16:56  maan
-
-       * mysql.c, server.ggo: rename default database name from music to
-         paraslash
-
-2004-12-31 23:18  maan
-
-       * mysql.c: fix three small memory leaks
-
-2004-12-31 23:17  maan
-
-       * string.c: fix serious memory leak
-
-2004-12-31 20:04  maan
-
-       * mysql.c: fix memory leak in get_dbinfo()
-
-2004-12-31 18:55  maan
-
-       * NEWS, configure.ac: paraslash 0.1.5
-
-2004-12-31 18:44  maan
-
-       * configure.ac: do not check for glib. It is only needed for
-         para_slider
-
-2004-12-31 18:43  maan
-
-       * README.mysql, mysql.c: rename command create_db back to cdb
-
-2004-12-31 18:17  maan
-
-       * pob-ogg.c: remove some suerflous variabbles
-
-2004-12-31 18:08  maan
-
-       * FEATURES, gui.c, mysql.c: cosmetics
-
-2004-12-27 01:33  maan
-
-       * gui.c, net.c: cosmetics
-
-2004-12-27 01:01  maan
-
-       * gui.c: reap children as early as possible. Avoid double killing
-         children.
-
-2004-12-27 00:08  maan
-
-       * NEWS: [no log message]
-
-2004-12-27 00:08  maan
-
-       * server.c, slider.c: cosmetics
-
-2004-12-26 23:53  maan
-
-       * command.c, server.c, server.h: Reload dbtool on SIGHUP. Move
-         restoring of signals to handle_connect() in command.c. Make
-         handle_connect() return int
-
-2004-12-26 23:06  maan
-
-       * NEWS: [no log message]
-
-2004-12-26 22:51  maan
-
-       * gui.c: use signal handling from signal.c. Should be race-free
-         now. Reduce select timeout to 200ms as that feels much better and
-         does not hurt.
-
-2004-12-26 22:46  maan
-
-       * para.h: simplified install sighandler function, new:
-         reap_child(), reap_children()
-
-2004-12-26 22:45  maan
-
-       * signal.c: new: reap_child(), reap_children() that replace
-         handle_sigchild()
-
-2004-12-26 22:43  maan
-
-       * server.c: always use the generic signal handler. That allows to
-         simplify install_sighandler() and to get rid of internal
-         handlers. Also: restore signals to default values right after
-         fork().
-
-2004-12-26 20:06  maan
-
-       * para.h: add signal function declarations
-
-2004-12-26 20:06  maan
-
-       * Makefile.in: link signal.o to server and gui
-
-2004-12-26 20:05  maan
-
-       * server.c: move signal-related functions to own file (signal.c)
-
-2004-12-26 20:04  maan
-
-       * signal.c: contains signal handling functions pulled out from
-         server.c
-
-2004-12-24 19:57  maan
-
-       * README, README.mysql, index.html, slider.c: [no log message]
-
-2004-12-24 19:11  maan
-
-       * NEWS, README: [no log message]
-
-2004-12-24 18:23  maan
-
-       * README: [no log message]
-
-2004-12-24 18:19  maan
-
-       * NEWS, README: [no log message]
-
-2004-12-24 18:13  maan
-
-       * krell.c: replace some commands by others
-
-2004-12-24 18:11  maan
-
-       * configure.ac: add detection of glib and libzmw. Commented out for
-         now.
-
-2004-12-24 18:10  maan
-
-       * autogen.sh: run configure with given command line options
-
-2004-12-24 18:09  maan
-
-       * README: add slider doku
-
-2004-12-24 18:08  maan
-
-       * NEWS: [no log message]
-
-2004-12-24 18:08  maan
-
-       * Makefile.in: Add target para_slider. Not built automatically.
-         Change Codename.
-
-2004-12-24 18:07  maan
-
-       * FEATURES: only short descriptions here. Detailed info goes to
-         README. Add slider.
-
-2004-12-22 14:47  maan
-
-       * mysql.c: better online help for com_sl()
-
-2004-12-22 14:46  maan
-
-       * command.c: use proper err_list on permission errors
-
-2004-12-22 14:45  maan
-
-       * 1.0, INSTALL: [no log message]
-
-2004-12-20 19:15  maan
-
-       * net.c: use default loglevel info for network errors. Some of them
-         are perfectly ok, so they should not pollute the log.
-
-2004-12-20 19:12  maan
-
-       * README: typo
-
-2004-12-19 18:07  maan
-
-       * README.mysql: [no log message]
-
-2004-12-19 17:38  maan
-
-       * configure.ac: paraslash 0.1.4
-
-2004-12-19 17:37  maan
-
-       * NEWS: [no log message]
-
-2004-12-19 17:20  maan
-
-       * server.c: typo
-
-2004-12-19 17:14  maan
-
-       * server.c: On dbtool change, always shutdown and re-init, even if
-         old == new
-
-2004-12-19 17:12  maan
-
-       * mysql.c: return always success on init to give the user the
-         chance to create the database
-
-2004-12-19 17:10  maan
-
-       * README.mysql: [no log message]
-
-2004-12-19 16:58  maan
-
-       * README.mysql: [no log message]
-
-2004-12-19 07:31  maan
-
-       * mysql.c: print_results(): abort if send_buffer fails
-
-2004-12-19 06:54  maan
-
-       * krell.c, server.c: cosmetics
-
-2004-12-19 06:03  maan
-
-       * command.c: cosmetics
-
-2004-12-19 05:49  maan
-
-       * command.c: report error text also on errors during initial
-         handshake
-
-2004-12-19 04:50  maan
-
-       * command.c, server.h: make some functions static
-
-2004-12-19 04:49  maan
-
-       * command.c, server.c, server.h: move handle_connect from server.c
-         to command.c
-
-2004-12-19 04:42  maan
-
-       * client.c: terminate buffer
-
-2004-12-19 04:30  maan
-
-       * client.c: do not try do decrypt server response if it has length
-         not equal to 64. Regard response as error message in that case
-         and report it instead.
-
-2004-12-19 04:30  maan
-
-       * server.c: only send error text if we have a valid err_list
-
-2004-12-18 15:35  maan
-
-       * NEWS: [no log message]
-
-2004-12-17 22:55  maan
-
-       * command.c: report proper error messages also for internal
-         commands
-
-2004-12-17 22:33  maan
-
-       * command.c, mysql.c, pob-ogg.c, server.c, server.h: introduce
-         err_list, a list of error messages. Report error message
-         corresponding to return value of command handler to client if
-         this value is negative
-
-2004-12-17 22:29  maan
-
-       * gui.c: write chunk if buffer contains data even if reader has
-         died
-
-2004-12-17 22:28  maan
-
-       * NEWS: [no log message]
-
-2004-12-17 14:51  maan
-
-       * ogg.c: nuke unused dummy variable
-
-2004-12-17 14:06  maan
-
-       * NEWS: [no log message]
-
-2004-12-17 13:21  maan
-
-       * mysql.c: make stradd/picadd overwrite previous definition if it
-         exists, rather than returning errors
-
-2004-12-16 02:26  maan
-
-       * ogg.c: further simplify read_chunk(): nuke first_page logic
-
-2004-12-15 22:45  maan
-
-       * gui.c: oops, forgot to remove the if-statement
-
-2004-12-15 22:30  maan
-
-       * gui.c: remove unneeded variable stream_buf_bytes
-
-2004-12-15 20:32  maan
-
-       * ogg.c: always use ogg_stream_flush() which simplifies page_out()
-
-2004-12-15 20:14  maan
-
-       * ogg.c: further simplify read_chunk(), kill have_packet
-
-2004-12-15 19:40  maan
-
-       * ogg.c, pob-ogg.c, server.c: simplify read_chunk(), avoid frequent
-         page_out errors
-
-2004-12-15 16:45  maan
-
-       * gui.c: fix serious typo: stream WRITE command option was used for
-         READING.
-
-2004-12-15 03:41  maan
-
-       * ogg.c: trivial cleanups
-
-2004-12-13 17:05  maan
-
-       * krell.c: reap the children to avoid zombies. Fixes zombie flood
-         if started with no server running.
-
-2004-12-13 17:02  maan
-
-       * command.c: report server pid instead of current database tool as
-         the latter is already contained in output of stat
-
-2004-12-11 17:04  maan
-
-       * gui.c: reintroduce one second sleep on errors to avoid busy loops
-         if server is unavailable
-
-2004-12-11 17:01  maan
-
-       * mysql.c: fix playing in case no stream was selected
-
-2004-12-11 16:38  maan
-
-       * afs.c: enter stopped mode when only invalid files were found
-
-2004-12-11 16:06  maan
-
-       * gui.c: simplify SIGINT handling, get rid of sleep(1)
-
-2004-12-11 15:43  maan
-
-       * gui.c: Hm, signal handling must have changed in recent linux
-         kernels. Make SIGINT work again.
-
-2004-12-11 14:01  maan
-
-       * mysql.c: com_hist(): query got messed up, fix it.
-
-2004-12-10 22:37  maan
-
-       * gui.c: nuke query_stream command. Can be done by key mappings
-
-2004-12-10 22:32  maan
-
-       * mysql.c: com_strq(): Use current stream if invoked without args
-
-2004-12-10 18:01  maan
-
-       * mysql.c: com_upd(): comment out noisy debug message
-
-2004-12-10 17:55  maan
-
-       * mysql.c: check return value of send_buffer()
-
-2004-12-10 16:50  maan
-
-       * server.c: cosmetics
-
-2004-12-10 16:50  maan
-
-       * Makefile.in: change codename
-
-2004-12-10 16:49  maan
-
-       * mysql.c: oops, com_picadd() got lost during merging. Here it is
-         again.
-
-2004-12-10 15:42  maan
-
-       * server.c: simplify handle_connect()
-
-2004-12-10 14:35  maan
-
-       * NEWS: [no log message]
-
-2004-12-10 14:35  maan
-
-       * server.c: forgotten goto
-
-2004-12-10 14:20  maan
-
-       * server.c: cosmetics
-
-2004-12-10 13:21  maan
-
-       * NEWS, configure.ac: bump version to 0.1.3
-
-2004-12-10 13:04  maan
-
-       * NEWS: [no log message]
-
-2004-12-09 22:12  maan
-
-       * server.c, server.ggo: new option: dbtool. Choose dbtool which
-         dbtool is used on startup
-
-2004-12-09 21:21  maan
-
-       * mysql.c: update mmd->dbinfo on successful init
-
-2004-12-09 21:21  maan
-
-       * dopey.c: terminate song song list by NULL
-
-2004-12-09 20:46  maan
-
-       * mysql.c: kill superfluous semicolen that caused gcc-2.95.4 to
-         fail
-
-2004-12-09 20:28  maan
-
-       * dopey.c: make get_song_list() return NULL on errors, rather than
-         an empty list
-
-2004-12-09 20:19  maan
-
-       * command.c, dopey.c, mysql.c, server.c, server.h: handle dbtool
-         change by server. The client only sets mmd->dbt_change which is
-         noticed by server when select() returns.
-
-2004-12-09 19:35  maan
-
-       * command.c, mysql.c, server.h: nuke modus from struct command
-
-2004-12-09 19:33  maan
-
-       * mysql.c: rename cdb to create_db
-
-2004-12-09 19:13  maan
-
-       * FEATURES: [no log message]
-
-2004-12-09 19:13  maan
-
-       * server.ggo, mysql.c: prefix all mysql options by mysql_
-
-2004-12-09 19:02  maan
-
-       * INSTALL: [no log message]
-
-2004-12-09 18:46  maan
-
-       * README: [no log message]
-
-2004-12-09 18:30  maan
-
-       * server.c: fix autoplay, move mmd_lock before networ init
-
-2004-12-09 18:21  maan
-
-       * index.html, mysql.c: cosmetics/typos
-
-2004-12-09 18:21  maan
-
-       * gui.c, sdl_gui.c: replace obsolete score by uptime
-
-2004-12-09 18:20  maan
-
-       * command.c: do not include seconds in server's uptime and report
-         the uptime in com_stat()
-
-2004-12-09 17:56  maan
-
-       * README.mysql: update for 0.1.3
-
-2004-12-09 17:27  maan
-
-       * Makefile.in, index.html: change README.dbtool to README.mysql
-
-2004-12-09 17:25  maan
-
-       * NEWS, README.mysql: former README.dbtool
-
-2004-12-09 17:24  maan
-
-       * README.dbtool: renamed to README.mysql
-
-2004-12-09 17:04  maan
-
-       * command.c, server.c, server.h: field 'initialized' in struct
-         dbtool was a bad idea. We must allow switching to the mysql
-         dbtool even if its init routine failed because that's the only
-         way to initially create the database.
-
-2004-12-09 02:21  maan
-
-       * gui.c, sdl_gui.c: replace obsolete streams in stat_items[] by
-         dbtool
-
-2004-12-09 02:20  maan
-
-       * command.c: print current dbtool in com_stat()
-
-2004-12-09 02:07  maan
-
-       * NEWS: [no log message]
-
-2004-12-09 02:02  maan
-
-       * NEWS: [no log message]
-
-2004-12-09 01:03  maan
-
-       * command.c: new command: ctd: change dbtool on the fly
-
-2004-12-09 01:03  maan
-
-       * mysql.c: remove the silly try to report the cause of an error.
-         Provide shutdown function (deactivated for now)
-
-2004-12-09 01:00  maan
-
-       * dopey.c, server.c, server.h: init all dbtools on startup. Fall
-         back to dopey if all other dbtools fail to init.
-
-2004-12-08 23:34  maan
-
-       * mysql.c: rename cdb to create_db
-
-2004-12-08 23:23  maan
-
-       * dbtool.conf.sample: long obsolete
-
-2004-12-08 23:18  maan
-
-       * dbtool_template.c: got obsoleted by dopey
-
-2004-12-08 23:16  maan
-
-       * dbtool.c, dbtool.ggo: no longer needed
-
-2004-12-08 23:13  maan
-
-       * para.h, string.c: fix some compiler warnings
-
-2004-12-08 23:05  maan
-
-       * dopey.c: redirect stderr of find command to null
-
-2004-12-08 22:46  maan
-
-       * dopey.c: fix memory leak
-
-2004-12-08 22:46  maan
-
-       * Makefile.in, configure.ac: fixup autoconf stuff
-
-2004-12-08 22:15  maan
-
-       * net.c: remove unused variable
-
-2004-12-08 22:14  maan
-
-       * Makefile.in, configure.ac, server.c: Fix build on systems without
-         mysql. They'll get dopey ;) Do not build obsolete dbtool any
-         more.
-
-2004-12-08 21:58  maan
-
-       * dopey.c: dopey help update
-
-2004-12-08 21:56  maan
-
-       * Makefile.in, command.c, dopey.c, server.c, server.ggo, server.h:
-         the dopey database tool, codename 'ddt'
-
-2004-12-08 20:25  maan
-
-       * para.h, string.c: use const qualifiers in para_strcat()
-
-2004-12-08 20:25  maan
-
-       * command.c:  report dbtool info in com_si()
-
-2004-12-08 20:10  maan
-
-       * afs.c, command.c, mysql.c, server.c, server.h: switch from single
-         struct dbtool to array of struct dbtool as a preparation for
-         supporting several database tools.
-
-2004-12-08 04:24  maan
-
-       * afs.c, command.c, server.h: change type of mmd->mtime to time_t
-
-2004-12-08 04:10  maan
-
-       * command.c, server.c, server.h: kill num_connects(). A simple
-         variable is enough.
-
-2004-12-08 04:00  maan
-
-       * server.c: get_user(): scan at most 200 chars per entry avoiding
-         possible buffer overflow with bad user_list file
-
-2004-12-08 03:58  maan
-
-       * mysql.c: Fix high-quality double free bug which was sitting there
-         for quite some time since it was hard to trigger. This sucker
-         made _subsequent_ sql queries hang. Kill it with pleasure.
-
-2004-12-08 02:34  maan
-
-       * exec.c: fix dup2 stderr
-
-2004-12-08 02:16  maan
-
-       * mysql.c: rename _clean to clean
-
-2004-12-08 02:16  maan
-
-       * gui.c: do not kill writer immediately when reader dies.
-
-2004-12-08 02:01  maan
-
-       * gui.c: Nuke com_sl. Can be done via key mapping
-
-2004-12-08 00:49  maan
-
-       * command.c: nasty use before init bug
-
-2004-12-07 22:50  maan
-
-       * command.c: simplify cmd_perms_itohuman()
-
-2004-12-07 22:44  maan
-
-       * afs.c, command.c, server.h: move afs_get_status_flags() to
-         command.c. It's only needed there, so make it static. Use dynamic
-         buffer.
-
-2004-12-07 22:38  maan
-
-       * command.c: afs_status_tohuman(): return dynamic buffer
-
-2004-12-07 22:33  maan
-
-       * afs.c, command.c, server.h: move afs_status_tohuman() to
-         command.c. It's only needed there, so make it static.
-
-2004-12-07 22:24  maan
-
-       * server.c: report loglevel on startup
-
-2004-12-07 22:23  maan
-
-       * para.h: kill unused loglevel ALERT
-
-2004-12-07 22:23  maan
-
-       * afs.c: remove some old code
-
-2004-12-07 22:11  maan
-
-       * afs.c, mysql.c, ogg.c, server.c: some smallish cleanups
-
-2004-12-07 22:10  maan
-
-       * server.ggo: set default loglevel to 4
-
-2004-12-07 21:28  maan
-
-       * afs.c, server.c: simplify setup_stream_command(). Abort on
-         errors.
-
-2004-12-07 02:09  maan
-
-       * mysql.c: reintroduce com_la as it is needed by dbadm
-
-2004-12-07 01:56  maan
-
-       * command.c: do not divide by zero
-
-2004-12-07 01:51  maan
-
-       * ogg.c: loglevel adjustments
-
-2004-12-07 01:38  maan
-
-       * command.c: Delete unused stuff. Fairly impressive patch :)
-
-2004-12-07 01:32  maan
-
-       * command.c: sort commands alphabetically
-
-2004-12-07 01:23  maan
-
-       * command.c, server.c: clean up com_sc()
-
-2004-12-07 01:07  maan
-
-       * command.c: clean up com_stat() and compute_status_volatile()
-
-2004-12-07 00:18  maan
-
-       * command.c: make uptime_str() return dynamically allocated buffer.
-         Clean up com_si().
-
-2004-12-07 00:10  maan
-
-       * command.c: rename compute_sb_string() to get_sb_string() and
-         return dynamically allocated buffer.
-
-2004-12-06 23:37  maan
-
-       * command.c: rename compute_status() to get_status() and return
-         dynamically allocated buffer
-
-2004-12-06 23:00  maan
-
-       * command.c: make cmd_perms_itohuman() return dynamically allocated
-         4 char permission string. Used by com_help(). This makes
-         com_perms obsolete. Comment out
-
-2004-12-06 22:15  maan
-
-       * command.c: rename find_cmd(). No good name.
-
-2004-12-06 22:11  maan
-
-       * command.c: make find_command() also return the handler (server or
-         dbtool). That makes cmd_handler_itohuman() obsolete, and in turn
-         other functions unused. Comment out what is unneeded.
-
-2004-12-06 21:51  maan
-
-       * command.c: found still more lcl stuff, kill unused var:
-         dbtool_has_pic
-
-2004-12-06 21:49  maan
-
-       * command.c: comment out remaining lcl stuff
-
-2004-12-06 21:48  maan
-
-       * command.c, string.c: move chop() from command.c to string.c
-
-2004-12-06 21:45  maan
-
-       * command.c: comment out unused lcl_init()
-
-2004-12-06 21:42  maan
-
-       * server.c: deactivate lcl stuff
-
-2004-12-06 21:41  maan
-
-       * command.c: fix silly bug that crept in by the last patch
-
-2004-12-06 21:36  maan
-
-       * command.c: simplify send_descriptions(), find_command() and fix
-         com_help()
-
-2004-12-06 20:28  maan
-
-       * command.c: kill useless dummy entries, documentation update.
-
-2004-12-06 20:21  maan
-
-       * afs.c, command.c, server.c: Since we hold a dbtool pointer in mmd
-         there is no need to export it any longer
-
-2004-12-06 20:06  maan
-
-       * command.c: make com_perms() use the internal command list rather
-         than old linked command list
-
-2004-12-06 20:05  maan
-
-       * mysql.c: set name in init
-
-2004-12-06 20:04  maan
-
-       * server.c: set mmd->dbtool in do_inits()
-
-2004-12-06 20:03  maan
-
-       * server.h: New field in struct dbtool: name to be used by
-         com_perms(). New field in mmd: dbtool, a pointer to the currently
-         selected database tool, also used in com_perms(). Currently,
-         there is only one, but this will change once ddt, the dopey
-         database tool, is born.
-
-2004-12-06 19:10  maan
-
-       * command.c: comment out obsolete server-based com_pic()
-
-2004-12-06 04:08  maan
-
-       * mysql.c: make com_cam() also copy the meta data
-
-2004-12-06 03:25  maan
-
-       * mysql.c: as we have extern struct conf in mysql.c there is no
-         need to shadow its values
-
-2004-12-06 03:11  maan
-
-       * mysql.c: some more cosmetics
-
-2004-12-06 03:04  maan
-
-       * mysql.c: only while space cleanups
-
-2004-12-06 02:57  maan
-
-       * mysql.c: nuke get_very_last() which was commented out anyway
-
-2004-12-06 02:52  maan
-
-       * mysql.c: reorganize functions,  simplify com_info()
-
-2004-12-06 02:31  maan
-
-       * mysql.c: new function: get_dir(). Switch back to three-line
-         dbinfo output
-
-2004-12-06 01:39  maan
-
-       * mysql.c: fix get_dbinfo()
-
-2004-12-06 01:20  maan
-
-       * mysql.c: simplify com_cdb() a bit
-
-2004-12-06 01:10  maan
-
-       * mysql.c: port the last dbtool command: com_picch()
-
-2004-12-06 00:56  maan
-
-       * mysql.c: port com_piclistl()
-
-2004-12-06 00:49  maan
-
-       * mysql.c: port com_picdel()
-
-2004-12-06 00:40  maan
-
-       * mysql.c: port com_picass()
-
-2004-12-06 00:22  maan
-
-       * mysql.c: port com_pic()
-
-2004-12-05 23:48  maan
-
-       * mysql.c: port com_verb()
-
-2004-12-05 23:37  maan
-
-       * mysql.c: simplify get_all_attributes(), fix two nasty
-         free()-related bugs
-
-2004-12-05 22:59  maan
-
-       * mysql.c: port com_cam()
-
-2004-12-05 20:51  maan
-
-       * mysql.c: port com_da()
-
-2004-12-05 20:46  maan
-
-       * mysql.c, para.h, string.c: introduce para_basename(), port
-         com_na()
-
-2004-12-05 17:20  maan
-
-       * mysql.c: port com_hist()
-
-2004-12-05 17:13  maan
-
-       * mysql.c: port mbox()
-
-2004-12-05 16:48  maan
-
-       * mysql.c: port com_ls()
-
-2004-12-05 07:12  maan
-
-       * command.c: fix segfault on invalid commands
-
-2004-12-05 07:10  maan
-
-       * server.c: report error message if command failed
-
-2004-12-05 06:03  maan
-
-       * server.c: nuke unused get_song_list()
-
-2004-12-05 05:24  maan
-
-       * mysql.c: port com_last()
-
-2004-12-05 05:04  maan
-
-       * mysql.c: simplify and fix get_all_attributes(), port com_laa()
-
-2004-12-05 04:36  maan
-
-       * mysql.c: refresh mmd->dbinfo also in commands sa and cs
-
-2004-12-05 04:20  maan
-
-       * mysql.c: use mmd-based get_current_song() instead of mysql's
-         entry with newest lastplayed time. That matters in view of
-         com_skip().
-
-2004-12-05 03:46  maan
-
-       * command.c: clean up com_help
-
-2004-12-05 03:20  maan
-
-       * mysql.c: update help for vrfy and us
-
-2004-12-05 03:20  maan
-
-       * command.c: simplify lcl_find and switch to help for new commands
-
-2004-12-05 02:40  maan
-
-       * mysql.c: port com_sa(). Simplify get_last()/get_very_last().
-
-2004-12-05 00:36  maan
-
-       * mysql.c: port com_skip()
-
-2004-12-05 00:26  maan
-
-       * mysql.c: activate new cdb/clean/upd/vrfy commands
-
-2004-12-05 00:15  maan
-
-       * mysql.c: port com_strq()
-
-2004-12-04 23:59  maan
-
-       * mysql.c: port com_strdel(), change current stream to '(none)' if
-         it gets deleted by strdel
-
-2004-12-04 23:39  maan
-
-       * mysql.c: make conf an extern variable in mysql.c, so there is no
-         need to pass it via init. Port com_cdb(), several small fixes.
-
-2004-12-04 23:37  maan
-
-       * server.c, server.h: make conf an extern variable in mysql.c, so
-         there is no need to pass it via init
-
-2004-12-04 21:23  maan
-
-       * mysql.c: port com_vrfy/clean
-
-2004-12-04 20:43  maan
-
-       * mysql.c: port com_upd(). This is not backward compatible. It
-         requires modification of find_cmd in server.conf. So it is
-         disabled until vrfy/clean are also ported.
-
-2004-12-04 20:40  maan
-
-       * exec.c: only close fd[1] if we dup2'ed it
-
-2004-12-04 20:39  maan
-
-       * server.c: abort if dbtool init failed
-
-2004-12-04 15:42  maan
-
-       * mysql.c: port stradd/picadd
-
-2004-12-04 15:33  maan
-
-       * server.ggo: nuke sstream option
-
-2004-12-04 14:31  maan
-
-       * fade.c: use csp instead of play
-
-2004-12-04 14:27  maan
-
-       * mysql.c: new command: csp (change stream and play). Needed since
-         com_play() no longer knows about streams and ignores its
-         arguments.
-
-2004-12-04 14:24  maan
-
-       * afs.c: update_mmd(): fix logging message for unknown audio format
-
-2004-12-04 14:15  maan
-
-       * afs.c: get_song(): log filenames as they are tried to open
-
-2004-12-04 02:23  maan
-
-       * mysql.c: fix com_sl. It used row[1] in results which contained
-         only one column. Fix help of com_streams().
-
-2004-12-04 02:21  maan
-
-       * afs.c: comment out obsolete popen dabtool us
-
-2004-12-03 21:36  maan
-
-       * mysql.c: omit current_stream in ps/ns/streams
-
-2004-12-03 21:28  maan
-
-       * command.c, server.h: com_stat: don't print score
-
-2004-12-03 20:51  maan
-
-       * mysql.c: make ps/ns refresh dbinfo
-
-2004-12-03 20:36  maan
-
-       * mysql.c: port com_ps() and com_ns()
-
-2004-12-03 20:08  maan
-
-       * afs.c, command.c, server.c, server.h: comment out obsolete stream
-         handling code. Internal commands don't know about streams any
-         more
-
-2004-12-03 19:46  maan
-
-       * afs.c, mysql.c, server.c, server.h: make dbtool write directly to
-         shared memory area, get_song_list() now returns char** (full path
-         list without scores)
-
-2004-12-03 17:21  maan
-
-       * afs.c, server.c: comment out old update_dbinfo()
-
-2004-12-03 00:17  maan
-
-       * mysql.c: also print score and stream in dbinfo
-
-2004-12-02 23:24  maan
-
-       * afs.c, mysql.c: use info string provided by  dbtool's
-         get_song_list (overwrite output of old para_dbtool). Other
-         smallish fixes also.
-
-2004-12-02 20:54  maan
-
-       * mysql.c: after the fork we will never see when the stream changes
-
-2004-12-02 20:53  maan
-
-       * mysql.c: remove global variable current_stream. It just doesn't
-         work because
-
-2004-12-02 03:18  maan
-
-       * afs.c, mysql.c: port com_cs() and activate new stream handling
-
-2004-12-02 01:43  maan
-
-       * afs.c: new implementation of get_song() that calls dbtool's
-         get_song function directly rather than calling popen_dbtool()
-         (not yet activated since com_cs is not yet ported)
-
-2004-12-02 01:33  maan
-
-       * mysql.c: new function get_song list to be called directly by afs
-         on song change via server's glue function
-
-2004-12-02 01:29  maan
-
-       * server.c: get_song glue function
-
-2004-12-02 01:28  maan
-
-       * server.h: new struct: db_song_info
-
-2004-12-02 01:27  maan
-
-       * string.c: para_strdup: return empty string if arg is NULL
-
-2004-12-01 22:10  maan
-
-       * mysql.c: port com_streams()
-
-2004-12-01 21:57  maan
-
-       * mysql.c: activate new com_sl()
-
-2004-12-01 04:39  maan
-
-       * mysql.c: fix theoretical memory leak
-
-2004-12-01 04:23  maan
-
-       * mysql.c: get_query: make sure to return NULL on errors
-
-2004-12-01 04:20  maan
-
-       * mysql.c: remove length[] check. We cover length[0]==0 anyway.
-
-2004-12-01 04:11  maan
-
-       * mysql.c: cosmetics
-
-2004-12-01 04:04  maan
-
-       * mysql.c: remove unnused variable 'ret'. reduce size of the last
-         remaining static buffer for sscanf.
-
-2004-12-01 04:00  maan
-
-       * mysql.c: make get_query() return char*, reducing one more static
-         buffer allocation. Free also accept/deny_opts ;)
-
-2004-12-01 03:42  maan
-
-       * mysql.c: further simplify string handling in where_clause
-
-2004-12-01 03:35  maan
-
-       * mysql.c: simplify where_clause logic, free all variables
-
-2004-12-01 02:42  maan
-
-       * mysql.c: get_query: further removal of static buffers
-
-2004-12-01 02:32  maan
-
-       * mysql.c: get_query: remove underscores as it is no longer needed
-
-2004-12-01 02:30  maan
-
-       * mysql.c: Clean up get_query, part II
-
-2004-12-01 02:17  maan
-
-       * mysql.c, para.h, string.c: remove 'dest' argument from
-         s_a_r_list(). Clean up get_query, part I
-
-2004-12-01 00:43  maan
-
-       * mysql.c: port com_sl()
-
-2004-12-01 00:40  maan
-
-       * net.c, string.c: cosmetics
-
-2004-12-01 00:29  maan
-
-       * string.c: loglevel adjustments
-
-2004-12-01 00:25  maan
-
-       * string.c: fix s_a_r in case of several matches
-
-2004-11-30 23:58  maan
-
-       * para.h, string.c: no more static buffers in s_a_r() and friends
-
-2004-11-30 22:18  maan
-
-       * dbtool.c, para.h, string.c: port regex stuff from dbtool.c to
-         string.c
-
-2004-11-30 21:38  maan
-
-       * net.c, para.h: new function: send_va_buffer. Oh yeah!
-
-2004-11-30 21:14  maan
-
-       * Makefile.in: link string.o to all executables that need it
-
-2004-11-30 20:42  maan
-
-       * mysql.c: activate new com_info() (by changing _info to info)
-
-2004-11-30 20:41  maan
-
-       * command.c: com help: also print commands from new api
-
-2004-11-30 20:25  maan
-
-       * Makefile.in, mysql.c, para.h, string.c: contains string handling
-         functions that might be useful for any part of paraslash
-
-2004-11-30 20:10  maan
-
-       * command.c, server.c, server.h: make dbtool an extern variable in
-         command.c
-
-2004-11-30 03:07  maan
-
-       * mysql.c: small cleanups in com_info()
-
-2004-11-30 02:39  maan
-
-       * mysql.c: simplify sql query for dir.dir
-
-2004-11-30 02:30  maan
-
-       * mysql.c: simplify get_atts a lot
-
-2004-11-30 02:03  maan
-
-       * mysql.c: port com_info, introduce para_strcat and para_strdup
-
-2004-11-30 00:24  maan
-
-       * mysql.c: use dynamic buffers provided by new make_message().
-         Introduce para_malloc and para_realloc to avoid checking malloc's
-         return value for each malloc call
-
-2004-11-29 21:54  maan
-
-       * mysql.c: port com_us to the new api
-
-2004-11-29 02:17  maan
-
-       * mysql.c: cosmetics
-
-2004-11-29 02:08  maan
-
-       * Makefile.in, mysql.c, server.c, server.h: port the first command,
-         summary, to the new api. It is called _summary for now
-
-2004-11-29 01:10  maan
-
-       * mysql.c, server.c, server.h: check config file directly in
-         mysql_init
-
-2004-11-29 00:40  maan
-
-       * mysql.c, server.c, server.h: port config file parsing from
-         dbtool.c to mysql.c
-
-2004-11-28 23:47  maan
-
-       * command.c, server.c, server.h: pass dbtool pointer to parse_cmd
-         and actually search the (new, but still empty) dbtool list for
-         commands
-
-2004-11-28 23:29  maan
-
-       * command.c: first search the commands in (emtpy, by now) command
-         list which was returned by mysql_init
-
-2004-11-28 23:11  maan
-
-       * command.c, server.c, server.h: simplify command handling (let
-         functions return struct command* instead of struct
-         linked_cmd_list* which is going to be removed soon)
-
-2004-11-28 23:00  maan
-
-       * Makefile.in, NEWS, server.c, server.ggo, server.h: first
-         preparations (that shouldn't break anything) to include dbtool
-         inside para_server
-
-2004-11-28 22:58  maan
-
-       * mysql.c: this will replace dbtool.c
-
-2004-11-28 22:10  maan
-
-       * Makefile.in, NEWS, configure.ac: bump version to 0.1.2
-
-2004-11-28 21:41  maan
-
-       * afs.c: afs_send_chunk: close stream writer on errors
-
-2004-11-28 21:40  maan
-
-       * dbtool.c: cosmetics
-
-2004-11-28 20:15  maan
-
-       * dbtool.c: make all commands take 3 arguments as required by
-         struct command from server.h
-
-2004-11-28 20:04  maan
-
-       * dbtool.c: simplify decls
-
-2004-11-28 20:01  maan
-
-       * dbtool.c: remove unneeded #includes
-
-2004-11-28 19:57  maan
-
-       * dbtool.c: rename .func to .handler in struct com to match it more
-         closely to struct command defined in server.h
-
-2004-11-25 21:05  maan
-
-       * gui.c: C+L does not clear the screen. Do not claim it will do so
-         in online help
-
-2004-11-25 21:02  maan
-
-       * server.ggo: better online help
-
-2004-11-12 14:56  maan
-
-       * NEWS: [no log message]
-
-2004-11-12 14:56  maan
-
-       * dbtool.c: rename ca to cam (copy all meta data). It now also
-         copies numplayed and lastplayed time as well as the picture id.
-
-2004-11-05 15:40  maan
-
-       * NEWS, configure.ac: bump version to 0.1.1
-
-2004-11-05 15:28  maan
-
-       * NEWS: [no log message]
-
-2004-11-05 15:27  maan
-
-       * ogg.c: add gpl header and mention that it is derived from vcut.c
-
-2004-11-05 15:25  maan
-
-       * CREDITS: add Michael Smith (vcut)
-
-2004-11-05 15:17  maan
-
-       * dbtool.c: new command: mbox
-
-2004-11-05 13:44  maan
-
-       * server.c: set afs_status_flags to AFS_PLAYING | AFS_NEXT if -a
-         and -s were given
-
-2004-11-01 19:20  maan
-
-       * NEWS: [no log message]
-
-2004-10-27 18:39  maan
-
-       * README: add para_krell
-
-2004-10-25 04:21  maan
-
-       * mp3.c, ogg.c: set default values for open_cmd. Fixes segfault
-         with empty config file.
-
-2004-10-25 03:51  maan
-
-       * dbtool.c: get_a: return -1 if database has no attributes
-
-2004-10-25 00:09  maan
-
-       * sdl_gui.c: refresh pic after executing command
-
-2004-10-24 23:32  maan
-
-       * FEATURES: [no log message]
-
-2004-10-24 23:29  maan
-
-       * autogen.sh: simple script for autoconf etc
-
-2004-10-24 20:50  maan
-
-       * addons/gkrellm_cmd_display/Makefile: remove para_ctrl stuff
-
-2004-10-24 20:49  maan
-
-       * addons/gkrellm_cmd_display/para_ctrl.c: it is now called krell.c
-         and belongs to the main tree
-
-2004-10-24 20:41  maan
-
-       * configure.ac: check for gtk2 and build para_krell only if it was
-         found
-
-2004-10-24 20:40  maan
-
-       * Makefile.in: new target: para_krell
-
-2004-10-24 20:39  maan
-
-       * krell.c: former para_ctrl
-
-2004-10-24 05:01  maan
-
-       * dbtool.c: cosmetics
-
-2004-10-22 21:26  maan
-
-       * Makefile.in: change codename
-
-2004-10-22 21:26  maan
-
-       * NEWS: [no log message]
-
-2004-10-22 18:42  maan
-
-       * addons/gkrellm_cmd_display/para_ctrl.c: new macro PRINTF
-
-2004-10-22 18:04  maan
-
-       * addons/gkrellm_cmd_display/para_ctrl.c: More duku, __func__
-
-2004-10-22 15:15  maan
-
-       * addons/gkrellm_cmd_display/para_ctrl.c: do not eat cpu if there
-         is no para_server
-
-2004-10-22 13:18  maan
-
-       * configure.ac: bump version to 0.1.0
-
-2004-10-22 13:00  maan
-
-       * mp3.c, ogg.c: cosmetics
-
-2004-10-17 21:46  maan
-
-       * index.html: mention that all files are signed
-
-2004-10-17 21:20  maan
-
-       * PUBLIC_KEY: gnupg public key
-
-2004-10-17 19:59  maan
-
-       * dbtool.c: kill unused init_seed()
-
-2004-10-17 17:58  maan
-
-       * command.c: compute percentage defensively also in com_ff
-
-2004-10-17 17:55  maan
-
-       * gui.c: kill all decoders if status pipe dies
-
-2004-10-17 17:54  maan
-
-       * command.c: compute percentage defensively
-
-2004-10-17 17:05  maan
-
-       * README.dbtool: english improvements
-
-2004-10-14 23:17  maan
-
-       * dbtool.c: remove the magic recursive randomizer. It is no longer
-         used since Lastplayed is never null
-
-2004-10-14 22:45  maan
-
-       * gui.c: clear top win in init_wins. This should fix stray
-         characters in top.win after resizing the xterm
-
-2004-10-14 22:32  maan
-
-       * gui.c: kill unused #define
-
-2004-10-14 22:28  maan
-
-       * gui.c: do not include header files twice
-
-2004-10-14 21:42  maan
-
-       * README.dbtool, dbtool.c, dbtool.ggo: replace option emph_np by
-         more general default_score. This actually _reduces_ code size.
-
-2004-10-14 20:54  maan
-
-       * dbtool.c: simplify s_a_r_array
-
-2004-10-13 23:19  maan
-
-       * dbtool.c: insert _valid_ default value into colum lastplayed for
-         new songs
-
-2004-10-11 20:30  maan
-
-       * Makefile.in: use new picdir for the internal pics of para_server
-
-2004-10-11 20:21  maan
-
-       * pics/paraslash/: default.jpg, no_pics.jpg: moved from ..
-
-2004-10-11 20:20  maan
-
-       * pics/: default.jpg, no_pics.jpg: moved to pics/paraslash
-
-2004-10-11 20:18  maan
-
-       * pics/web/paraslash.png: moved from ../
-
-2004-10-11 20:18  maan
-
-       * pics/paraslash.png: moved to web
-
-2004-10-11 20:17  maan
-
-       * Makefile.in: small cleanups
-
-2004-10-11 19:57  maan
-
-       * pics/screenshots/: gui-2004-07-11.png, gui-2004-09-02.png,
-         gui-old.png, loglevel1-2004-07-28.txt, sdl_gui.jpg: more or less
-         old screenshots
-
-2004-10-11 19:16  maan
-
-       * index.html: it is now called manual.html, not manual.txt.html
-
-2004-10-11 19:15  maan
-
-       * Makefile.in: nuke targets tags and web as they only work on my
-         local machine anyway
-
-2004-10-11 17:59  maan
-
-       * pics/paraslash.png: logo from web page
-
-2004-10-11 17:20  maan
-
-       * index.html: the paraslash web page
-
-2004-10-10 23:10  maan
-
-       * NEWS: [no log message]
-
-2004-10-10 23:09  maan
-
-       * para.h: no more restrictions on comand length (I hope)
-
-2004-10-10 23:09  maan
-
-       * command.c: chop() can not be static since it is used by server
-         also
-
-2004-10-10 23:08  maan
-
-       * dbtool.c: cosmetics
-
-2004-10-10 23:02  maan
-
-       * client.c, server.c: no more restrictions on comand length (I
-         hope)
-
-2004-10-10 22:30  maan
-
-       * client.c: cosmetics
-
-2004-10-10 20:22  maan
-
-       * client.c: cosmetics
-
-2004-10-10 20:19  maan
-
-       * client.c: fix buffer overflow with long command lines
-
-2004-10-10 19:55  maan
-
-       * client.c: cosmetics
-
-2004-10-08 21:18  maan
-
-       * configure.ac: it runs fine with 2.53 (debian stable)
-
-2004-10-08 21:15  maan
-
-       * pob-ogg.ggo: forgotten to check it in
-
-2004-10-07 22:11  maan
-
-       * afs.c, gui.c, mp3.c, ogg.c, server.h: make gcc 2.95.4 happy
-
-2004-10-07 18:21  maan
-
-       * gui.c: close status pipe on read errors
-
-2004-10-07 18:10  maan
-
-       * command.c: free mem in correct order, fixes segfault on HUP
-
-2004-10-07 02:11  maan
-
-       * sdl_gui.c: make functions static where possible
-
-2004-10-07 00:18  maan
-
-       * README.dbtool: [no log message]
-
-2004-10-06 23:12  maan
-
-       * sdl_gui.c: make pictures work again
-
-2004-10-06 21:07  maan
-
-       * command.c, gui.c, server.c: cosmetics
-
-2004-10-06 20:35  maan
-
-       * command.c: make functions static where possible
-
-2004-10-06 20:32  maan
-
-       * command.c, server.h: use dynamically aloocated buffers in struct
-         command
-
-2004-10-06 19:33  maan
-
-       * dbtool.c: kill dead code in com_vrfy(): check for NULL entries
-
-2004-10-06 19:28  maan
-
-       * dbtool.c: always check return value of init()
-
-2004-10-06 19:24  maan
-
-       * dbtool.c: com_ca: shut down mysql connection
-
-2004-10-06 19:15  maan
-
-       * dbtool.c: fix memory leak
-
-2004-10-06 18:55  maan
-
-       * dbtool.c: free correct pointer
-
-2004-10-06 18:53  maan
-
-       * dbtool.c: refuse to insert too long stream/pic names
-
-2004-10-06 18:42  maan
-
-       * server.c: fix autoplay
-
-2004-10-06 18:33  maan
-
-       * README.dbtool: para_client hup is no longer necessary
-
-2004-10-06 18:30  maan
-
-       * afs.c, command.c, server.c, server.h: read stream list on demand
-         instead of keeping a (possibly obsolete) copy in memory. This
-         fixes com_stat which used stale pointers to current stream name
-         if server reloaded its stream_list due to SIGHUP. Another
-         advantage is that we don't need to send SIGHUP to the server any
-         more when modifying the stream list
-
-2004-10-04 03:14  maan
-
-       * command.c: fix integer overflow for very long (ogg) files
-
-2004-10-04 02:53  maan
-
-       * afs.c: return NULL on next request
-
-2004-10-04 02:52  maan
-
-       * ogg.c: end_of_input: close file and, more important, reset
-         short_write. This bug could cause files to be skipped. Ogg is
-         almost usable now
-
-2004-10-04 02:49  maan
-
-       * server.c: kill unneeded variable sw_pid
-
-2004-10-03 20:59  maan
-
-       * dbtool.c: set pic_id to 1 for new files
-
-2004-10-03 02:24  maan
-
-       * dbtool.c: com_sl: comment out debugging message
-
-2004-10-03 01:42  maan
-
-       * dbtool.c: set all but one filed as notnull. NULLs suck when
-         sorting
-
-2004-10-03 01:06  maan
-
-       * client.c: fix wrong order of arguments to clog that could cause
-         random segfaults
-
-2004-09-30 01:40  maan
-
-       * gui.c: fixup rereading of config file
-
-2004-09-27 02:53  maan
-
-       * command.c: fix integer overflow in stat output for very long ogg
-         files
-
-2004-09-27 02:27  maan
-
-       * ogg.c: dont update time when sending first page or when
-         repos_request
-
-2004-09-27 01:45  maan
-
-       * gui.c: reset buflen when deactivating stream io
-
-2004-09-27 01:28  maan
-
-       * gui.c: delete old stream io handling code
-
-2004-09-27 00:00  maan
-
-       * gui.c: loop over all audio formats in do_select and kill decoder
-         when inactive
-
-2004-09-26 19:09  maan
-
-       * gui.c: clog: print msg to stderr if curses not yet active
-
-2004-09-26 19:07  maan
-
-       * dbtool.c: so not duplicate info
-
-2004-09-26 18:44  maan
-
-       * ogg.c: do not log short writes
-
-2004-09-26 18:43  maan
-
-       * afs.c: set stream writer fd to non-blocking io
-
-2004-09-26 18:41  maan
-
-       * ogg.c: handle short writes properly (do not even try to rewrite)
-
-2004-09-26 16:20  maan
-
-       * server.c, server.ggo: new option: autoplay
-
-2004-09-26 15:44  maan
-
-       * afs.c: more fixes of the same kind
-
-2004-09-26 15:37  maan
-
-       * afs.c: do not segfault in audio_format_name() if no audio_format
-         was selected yet
-
-2004-09-26 14:33  maan
-
-       * fade.c: more detailed output about what is going on
-
-2004-09-24 13:45  maan
-
-       * gui.c: cosmetics
-
-2004-09-24 04:23  maan
-
-       * gui.c: kill reader if writer died and vice versa
-
-2004-09-24 03:09  maan
-
-       * afs.c, server.c: comment out noisy debugging messages
-
-2004-09-24 03:04  maan
-
-       * afs.c, mp3.c, ogg.c, server.c, server.h: major rearrangement of
-         struct audio_format
-
-2004-09-23 19:20  maan
-
-       * ogg.c: reintroduce first_page, clear vcut on errors
-
-2004-09-23 18:43  maan
-
-       * mp3.c: avoid double close on errors
-
-2004-09-23 01:06  maan
-
-       * fade.conf.sample: adapt to new syntax
-
-2004-09-23 01:01  maan
-
-       * gui.conf.sample: kill obsolete commands
-
-2004-09-23 00:52  maan
-
-       * gui.c: new internal key bindings for adjusting loglevel
-
-2004-09-22 22:27  maan
-
-       * ogg.c: rename label aaa, kill dead code
-
-2004-09-22 22:10  maan
-
-       * ogg.c: kill dead code
-
-2004-09-22 22:07  maan
-
-       * ogg.c: nuke first_page
-
-2004-09-22 21:54  maan
-
-       * ogg.c: get output of first page right (I hope)
-
-2004-09-22 21:10  maan
-
-       * gui.c: don't segfault when stopping decoder manually. Avoid
-         kill_decoder also.
-
-2004-09-22 20:32  maan
-
-       * ogg.c: nuke unneeded cutpoint
-
-2004-09-22 20:06  maan
-
-       * 1.0: [no log message]
-
-2004-09-22 13:41  maan
-
-       * INSTALL: typo
-
-2004-09-22 02:56  maan
-
-       * ogg.c: remove more useless variables
-
-2004-09-22 02:52  maan
-
-       * ogg.c: replace fprintf by clog
-
-2004-09-22 02:47  maan
-
-       * ogg.c: cosmetics
-
-2004-09-22 02:34  maan
-
-       * ogg.c: remove unused variables
-
-2004-09-22 01:27  maan
-
-       * gui.c: loglevel adjustment
-
-2004-09-22 00:47  maan
-
-       * gui.ggo: default loglevel: 4
-
-2004-09-22 00:46  maan
-
-       * README.dbtool: typo
-
-2004-09-22 00:03  maan
-
-       * gui.c, gui.ggo: new option loglevel
-
-2004-09-21 23:53  maan
-
-       * gui.c: new function clog, log more info to bot win instead of
-         status bar
-
-2004-09-21 22:01  maan
-
-       * gui.c: increase sleep time after reader/writer has died
-
-2004-09-21 21:16  maan
-
-       * gui.c: cosmetics
-
-2004-09-21 21:13  maan
-
-       * server.c: only send chunk if we are still playing
-
-2004-09-21 21:12  maan
-
-       * ogg.c: return early if there is no stream writer
-
-2004-09-21 21:10  maan
-
-       * pob-ogg.c: check return value of write and abort on errors. ifdef
-         out buffering for now.
-
-2004-09-21 20:53  maan
-
-       * gui.c, gui.ggo: introduce struct stream_io and siol[], an array
-         of such structs, each member holding all relevant information for
-         one audio format. Simplify options and add some docu for para_gui
-         -h.
-
-2004-09-21 18:12  maan
-
-       * gui.c: do not include \n in outputf
-
-2004-09-21 18:05  maan
-
-       * gui.c: print info top bot win when starting/stopping decoder
-
-2004-09-21 14:52  maan
-
-       * afs.c, command.c, gui.c, sdl_gui.c, server.h: print afs status
-         flags as extra line in stat output
-
-2004-09-20 03:23  maan
-
-       * ogg.c: loglevel adjustments
-
-2004-09-20 02:16  maan
-
-       * ogg.c: jumping appears to work
-
-2004-09-20 01:15  maan
-
-       * ogg.c: first version with jumping kind of working
-
-2004-09-19 23:31  maan
-
-       * command.c, mp3.c, server.h: long unsigned is enough
-
-2004-09-19 23:29  maan
-
-       * afs.c: return early from afs_send_chunk if there was a reposition
-         request
-
-2004-09-19 21:37  maan
-
-       * ogg.c: make granpos global and get rid of update_chunk_count
-
-2004-09-19 21:27  maan
-
-       * ogg.c: do not crash on jump in ogg files. Jumping still is not
-         working, but we are getting closer...
-
-2004-09-19 18:12  maan
-
-       * ogg.c: minor improvements
-
-2004-09-19 17:56  maan
-
-       * afs.c: use stop_stream instead of closing file manually
-
-2004-09-19 17:26  maan
-
-       * pob-ogg.c: skip initial crap before first ogg packet, more
-         logging, fix config_file thinko
-
-2004-09-19 15:42  maan
-
-       * pob-ogg.c: Oh boy, that was buggy. For instance, it included
-         client_cmdline.h instead of pob-ogg.cmdline.h
-
-2004-09-18 15:29  maan
-
-       * configure.ac: build para_pob-ogg if oggvorbis libs are found
-
-2004-09-18 15:08  maan
-
-       * mp3.c: comment out noisy debug message
-
-2004-09-18 15:07  maan
-
-       * afs.c: add audio format heuristics (based on filename)
-
-2004-09-18 13:44  maan
-
-       * command.c, mp3.c, para.h, server.c: nuke PETER_B ;) As in real
-         life, PETER_B happened to be useless for anything
-
-2004-09-18 13:09  maan
-
-       * mp3.c: stop stream writer on repos request. This gets rid of all
-         remaining cases of audio clipping, I hope
-
-2004-09-18 13:07  maan
-
-       * mp3.c: rename reposition_stream() to mp3_reposition_stream
-
-2004-09-18 13:06  maan
-
-       * mp3.c: split mp3_stop_stream, new function stop_stream_writer()
-
-2004-09-18 13:03  maan
-
-       * mp3.c: rename stop_stream to mp3_stop_stream
-
-2004-09-17 04:39  maan
-
-       * ogg.c: new function: get_page. Makes ogg_read_chunk much more
-         readable
-
-2004-09-17 04:14  maan
-
-       * ogg.c: remove dead code
-
-2004-09-17 04:12  maan
-
-       * ogg.c: no need to set have_page twice
-
-2004-09-17 04:08  maan
-
-       * ogg.c: avoid needless goto
-
-2004-09-17 03:30  maan
-
-       * ogg.c: new function page_out to clean up the cruft a bit
-
-2004-09-17 03:17  maan
-
-       * ogg.c: still crappy as hell, but a bit more stable. Repositioning
-         is not working yet.
-
-2004-09-17 01:27  maan
-
-       * fade.c: more verbose output
-
-2004-09-17 01:27  maan
-
-       * NEWS: [no log message]
-
-2004-09-17 01:10  maan
-
-       * gui.c: fix clipping when returning from external command
-
-2004-09-17 00:53  maan
-
-       * afs.c, dbtool.c, dbtool_template.c, gui.c: rename fut to sl
-         (score list). It did not print the future anyway, depending on
-         the particular score definition
-
-2004-09-15 22:13  maan
-
-       * afs.c, command.c, server.h: si: report supported audio formats
-
-2004-09-15 21:22  maan
-
-       * command.c: rename uptime to si (server info)
-
-2004-09-12 20:49  maan
-
-       * fade.c, fade.ggo: introduce fall asleep stream vs sleep_stream
-
-2004-09-12 20:33  maan
-
-       * mp3.c: nicer id3 tag info
-
-2004-09-12 20:33  maan
-
-       * command.c: use long unsigned for computing seconds etc. in
-         statusbar
-
-2004-09-12 20:32  maan
-
-       * ogg.c: it kinda works in some sense if you do not try to jump
-         around...
-
-2004-09-12 20:20  maan
-
-       * afs.c: cosmetics
-
-2004-09-12 20:20  maan
-
-       * INSTALL: better english
-
-2004-09-12 20:19  maan
-
-       * CREDITS: [no log message]
-
-2004-09-11 05:55  maan
-
-       * INSTALL: typo
-
-2004-09-07 21:47  maan
-
-       * server.h: function prototype changes
-
-2004-09-07 21:45  maan
-
-       * server.ggo: stream_write command may be given multiple times,
-         nuke afs_buf
-
-2004-09-07 21:44  maan
-
-       * pob-ogg.c: introduce OGG_BUFFSIZE and fill buffer halfways before
-         any output occurs
-
-2004-09-07 21:41  maan
-
-       * mp3.c: mostly rearrangement of functions and small adjustments
-
-2004-09-07 21:39  maan
-
-       * gui.c: support oggvorbis, not yet fit for more audio formats
-
-2004-09-07 21:36  maan
-
-       * command.c: adjustments due to removal of afs_buf and renaming of
-         mmd->frames_sent to mmd->chunks_sent
-
-2004-09-07 21:34  maan
-
-       * afs.c: nuke generic_write_chunk and move relevant bits  to mp3.
-         Iplement better syntax for stream_write_cmd (can be given
-         multiple times, one for each sound format). Many small changes
-
-2004-09-07 21:27  maan
-
-       * server.c: nuke afs_buf, send_chunk takes FILE* now
-
-2004-09-07 21:24  maan
-
-       * configure.ac: add checks for oggvorbis
-
-2004-09-07 21:23  maan
-
-       * Makefile.in: add targets for para_pob-ogg
-
-2004-09-04 13:51  maan
-
-       * FEATURES: [no log message]
-
-2004-09-02 20:19  maan
-
-       * server.h: remove superflous function prototypes
-
-2004-09-02 20:12  maan
-
-       * mp3.c: simplify open_stream
-
-2004-09-02 20:02  maan
-
-       * sdl_gui.c: stat: print audio format
-
-2004-09-02 19:51  maan
-
-       * command.c, gui.c: stat: print audio format, report size in KB
-         instead of bytes
-
-2004-09-02 19:26  maan
-
-       * command.c, server.c, server.h: move uptime_str() from server.c to
-         command.c, it is only used there
-
-2004-09-02 19:22  maan
-
-       * server.c: whitespace fixes
-
-2004-09-02 19:21  maan
-
-       * server.c, server.h: make more functions static
-
-2004-09-02 19:12  maan
-
-       * server.c, server.h: remove logfile from mmd
-
-2004-09-02 18:56  maan
-
-       * server.c, server.h: remove user_list from mmd
-
-2004-09-02 18:41  maan
-
-       * server.c: whitespace fixes
-
-2004-09-02 18:37  maan
-
-       * server.c, server.h: move config_file from mmd to parse_config
-
-2004-09-02 18:24  maan
-
-       * server.c: fix --config_file option
-
-2004-09-02 18:19  maan
-
-       * command.c, server.h: move dbtool_has_pic from mmd to command.c
-
-2004-09-02 18:10  maan
-
-       * command.c, server.c, server.h: move lcl_head from mmd to
-         command.c
-
-2004-09-02 18:09  maan
-
-       * afs.c: loglevel adjustment
-
-2004-09-02 18:06  maan
-
-       * gui.c: change stream_write_cmd_arg to mp3_write_cmd_arg
-
-2004-09-02 17:53  maan
-
-       * afs.c, server.c: cosmetics
-
-2004-09-02 17:41  maan
-
-       * gui.conf.sample, gui.ggo: rename stream_read_cmd to mp3_read_cmd,
-         dito for write
-
-2004-09-02 17:41  maan
-
-       * afs.c, command.c, server.h: commands stat and sb: print file type
-
-2004-09-02 17:39  maan
-
-       * 1.0: [no log message]
-
-2004-09-02 17:04  maan
-
-       * afs.c, server.c, server.h: mv alloc_afs_buf() from server to afs
-
-2004-09-02 16:41  maan
-
-       * afs.c, server.c, server.h: remove extern conf struct from afs.c.
-         Its only use was afs_buf_size which is now passed to
-         afs_send_chunk instead
-
-2004-09-02 16:38  maan
-
-       * NEWS: [no log message]
-
-2004-09-02 16:23  maan
-
-       * mp3.h: no longer needed
-
-2004-09-02 16:22  maan
-
-       * Makefile.in, afs.c, mp3.c, mp3.h, para.h, server.c, server.h:
-         move remaining mp3 specific stuff to mp3.c, introduce
-         open_stream, stop_stream function pointers for completely modular
-         audio format support. Make more functions static, get rid of
-         mp3.h
-
-2004-08-31 03:26  maan
-
-       * mp3.c: return 0 on eof instead of -1
-
-2004-08-31 02:32  maan
-
-       * afs.c, mp3.c, mp3.h, server.h: add infrastructure for dealing
-         with audio files of different format, many small cleanups
-
-2004-08-30 23:18  maan
-
-       * mp3.c, mp3.h: reduce mp3.h to bare minimum by moving everything
-         but function prototypes to mp3.c
-
-2004-08-30 22:46  maan
-
-       * Makefile.in, afs.c, mp3.c, mp3.h: move fread from afs.c to mp3.c
-         into new function mp3_read_chunk. Do some renaming also.
-
-2004-08-30 21:16  maan
-
-       * sdl_gui.ggo: kill option no_pics
-
-2004-08-30 21:15  maan
-
-       * mp3.c: print replacement texts if no id3 tag was found
-
-2004-08-30 21:14  maan
-
-       * command.c: move audio file info to status_volatile since it
-         contains bitrate which is not constant for vbr files
-
-2004-08-30 21:00  maan
-
-       * sdl_gui.c: adapt to new stat output
-
-2004-08-30 20:28  maan
-
-       * gui.c: adapt to new stat output
-
-2004-08-30 19:56  maan
-
-       * para.h: cosmetics
-
-2004-08-30 19:54  maan
-
-       * mp3.c: make functions static where possible
-
-2004-08-30 19:51  maan
-
-       * afs.c, mp3.c, mp3.h, server.h: move mp3info struct from mmd to
-         mp3.c where it belongs
-
-2004-08-30 19:21  maan
-
-       * afs.c, command.c, server.c, server.h: rename mp3_meta_data to
-         misc_meta_data
-
-2004-08-30 19:16  maan
-
-       * afs.c, command.c, mp3.c, mp3.h, server.h: move mp3 specific stuff
-         to mp3.c
-
-2004-08-30 16:52  maan
-
-       * afs.c: rename mp3_stream to audio_file
-
-2004-08-30 16:35  maan
-
-       * command.c, dbtool.c: cosmetics
-
-2004-08-30 16:25  maan
-
-       * Makefile.in: include manual.txt in tgz
-
-2004-08-30 16:19  maan
-
-       * INSTALL: [no log message]
-
-2004-08-30 15:43  maan
-
-       * Makefile.in, para.h: change mp3tech.[ch] to mp3.[ch]
-
-2004-08-30 15:40  maan
-
-       * mp3.c, mp3.h: former mp3tech.[ch]
-
-2004-08-30 15:40  maan
-
-       * mp3tech.c, mp3tech.h: renamed to mp3.[ch]
-
-2004-08-30 15:38  maan
-
-       * mp3tech.c, mp3tech.h: copyright fixes
-
-2004-08-30 15:19  maan
-
-       * Makefile.in: remove dependency on Makefile for cmdline stuff, so
-         that gengetopt is not required for build from tgz
-
-2004-08-30 05:44  maan
-
-       * Makefile.in, NEWS, afs.c, command.c, configure.ac, mp3tech.c,
-         mp3tech.h, para.h, server.c, server.h: major mp3-secific cleanup
-         and enhancements. This should fix timing issues with vbr mp3s
-
-2004-08-30 05:07  maan
-
-       * mp3info.h: most of it was never used, the rest went somewhere
-         else
-
-2004-08-30 05:05  maan
-
-       * textfunc.h: unnecessary
-
-2004-08-25 21:21  maan
-
-       * gui.c: whitespace cleanup
-
-2004-08-25 21:12  maan
-
-       * gui.c: fix memory leak in align_str, add some debugging code
-
-2004-08-23 23:59  maan
-
-       * 1.0: [no log message]
-
-2004-08-23 00:29  maan
-
-       * dbtool.c: comment out check for invalid null entries in
-         attributes as attribute columns are declared non-null anyway
-
-2004-08-21 17:18  maan
-
-       * server.c: minor main() cleanup
-
-2004-08-21 16:46  maan
-
-       * fade.ggo, server.ggo: beautify output of help option
-
-2004-08-21 15:44  maan
-
-       * client.c, dbtool.c, fade.c, gui.c, net.c, sdl_gui.c, server.c:
-         update to gengetopt 2.12.2 requires additional arg for
-         cmdline_parser_configfile
-
-2004-08-15 19:07  maan
-
-       * Makefile.in: Add ChangeLog to phony targets, cosmetics
-
-2004-08-15 19:04  maan
-
-       * dbtool.ggo: typo
-
-2004-08-15 18:35  maan
-
-       * afs.c: update_dbinfo: whitespace fixes
-
-2004-08-15 18:34  maan
-
-       * afs.c: update_dbinfo: always print three lines
-
-2004-08-15 04:01  maan
-
-       * dbtool.c: fix info: for songs not yet played, dir of song was not
-         shown
-
-2004-08-13 19:30  maan
-
-       * README.dbtool: another typo
-
-2004-08-13 19:17  maan
-
-       * README.dbtool: whitespace fixes to make grutatxt happy
-
-2004-08-13 19:13  maan
-
-       * README.dbtool: typo
-
-2004-08-13 19:08  maan
-
-       * NEWS: [no log message]
-
-2004-08-05 23:19  maan
-
-       * dbtool.c: use escaped_name also for updating numplayed
-
-2004-08-04 02:36  maan
-
-       * dbtool.c: fix skip command
-
-2004-07-29 12:50  maan
-
-       * server.c: fix log function for loglevel > VERBOSE
-
-2004-07-29 03:52  maan
-
-       * Makefile.in, NEWS: change codename
-
-2004-07-28 14:06  maan
-
-       * README: typo
-
-2004-07-25 17:41  maan
-
-       * VERSION: no longer needed
-
-2004-07-25 17:40  maan
-
-       * NEWS, configure.ac: bump version to 99
-
-2004-07-24 20:50  maan
-
-       * mp3tech.h: further simplify get_mp3_info
-
-2004-07-24 20:12  maan
-
-       * afs.c: skip song if mp3_info fails
-
-2004-07-24 19:22  maan
-
-       * mp3tech.c, mp3tech.h: further simplify get_mp3_info
-
-2004-07-24 17:51  maan
-
-       * mp3info.h, mp3tech.c: kill unneeded code
-
-2004-07-24 03:08  maan
-
-       * pob-ogg.c: simple http streamer for pogg-http
-
-2004-07-23 21:56  maan
-
-       * gui.c: simplify item placement in top.win
-
-2004-07-23 18:57  maan
-
-       * client.c, afs.c: __func__
-
-2004-07-23 18:50  maan
-
-       * client.c: whitespaces
-
-2004-07-23 18:47  maan
-
-       * net.c: __func__, whitespaces
-
-2004-07-23 18:43  maan
-
-       * server.c: typo
-
-2004-07-23 18:41  maan
-
-       * server.c: __func__
-
-2004-07-23 18:33  maan
-
-       * server.c: whitespace cleanup
-
-2004-07-23 18:31  maan
-
-       * server.c: cosmetics
-
-2004-07-23 18:26  maan
-
-       * INSTALL, Makefile.in, afs.c: cosmetics
-
-2004-07-21 23:46  maan
-
-       * Makefile.in: simplify install
-
-2004-07-21 23:45  maan
-
-       * dbtool.c, dbtool.ggo: new option: emph_np
-
-2004-07-21 23:43  maan
-
-       * README.dbtool: add section on pictures
-
-2004-07-21 23:29  maan
-
-       * README.dbtool: more details on scoring
-
-2004-07-21 20:29  maan
-
-       * afs.c: use proper types for return value of fread/write
-
-2004-07-20 20:15  maan
-
-       * gui.c: detect blocking writes by time, not by count
-
-2004-07-20 16:25  maan
-
-       * maint.mk: everything went to Makefile.in
-
-2004-07-20 16:24  maan
-
-       * INSTALL, Makefile.in, gui.c, maint.mk: INSTALL
-
-2004-07-20 15:37  maan
-
-       * FEATURES: [no log message]
-
-2004-07-20 04:34  maan
-
-       * configure.ac: cosmetics
-
-2004-07-20 03:46  maan
-
-       * dbtool.c: uncomment unused function
-
-2004-07-20 03:46  maan
-
-       * configure.ac: dbtool_template is no longer needed in extras
-         because it's always built
-
-2004-07-20 03:37  maan
-
-       * Makefile.in: introduce maintainer-clean for removing _all_
-         derived files
-
-2004-07-20 03:21  maan
-
-       * configure.ac: generated by autoscan, but heavily edited
-
-2004-07-20 02:52  maan
-
-       * gui.ggo: set default to auto-decoding
-
-2004-07-20 02:51  maan
-
-       * gui.c: reduce use of global variables
-
-2004-07-20 02:02  maan
-
-       * gui.ggo: input timeout is long gone
-
-2004-07-20 02:01  maan
-
-       * gui.c: cosmetics
-
-2004-07-20 01:20  maan
-
-       * gui.c: fix line numbering in COMMAND_MODE, use va_list for
-         print_in_bar
-
-2004-07-20 01:16  maan
-
-       * NEWS: [no log message]
-
-2004-07-20 01:16  maan
-
-       * Makefile.in: add -WAll to CCFLAGS, fix typo
-
-2004-07-19 21:21  maan
-
-       * para.h: don't include version.h
-
-2004-07-19 21:20  maan
-
-       * mp3info.h: resolve -DVERSION conflict
-
-2004-07-19 21:19  maan
-
-       * Makefile.in, maint.mk: move stuff from maint.mk to Makefile.in,
-         nuke paraslash_light
-
-2004-07-19 18:35  maan
-
-       * Makefile.in: use
-
-2004-07-19 18:07  maan
-
-       * install-sh: autoconf refuses to work without it, strange...
-
-2004-07-19 17:46  maan
-
-       * dbtool.c: include mysql/mysql.h instead of mysql.h
-
-2004-07-19 17:45  maan
-
-       * config.mk: no longer needed
-
-2004-07-19 17:44  maan
-
-       * SFont.c, SFont.h, sdl_gui.c: include SDL/SDL.h instead of SDL.h
-
-2004-07-19 17:43  maan
-
-       * Makefile: now created by autoconf from Maikefile.in
-
-2004-07-19 17:42  maan
-
-       * Makefile.in: switch to autoconf
-
-2004-07-19 12:19  maan
-
-       * gui.c: fix line numbering in command mode, cosmetics
-
-2004-07-19 12:18  maan
-
-       * afs.c: don't kill stream writer when song is finished
-
-2004-07-19 12:17  maan
-
-       * server.c: use IPC_PRIVATE, not hardcoded number for semget
-
-2004-07-15 20:57  maan
-
-       * command.c: fix com_ps
-
-2004-07-15 18:57  maan
-
-       * command.c: kill useless sleep, fix possible segfault
-
-2004-07-15 18:47  maan
-
-       * command.c: cosmetics
-
-2004-07-15 18:38  maan
-
-       * afs.c, command.c, server.c, server.h: fix play command by
-         introducing a new member in mmd: old_stream. It contains the
-         number of the stream that was selected as the song started.
-         Moreover, change mmd->stream from char[] to int. This makes the
-         patch so large.
-
-2004-07-14 02:01  maan
-
-       * dbtool_template.c, server.ggo: cosmetics
-
-2004-07-13 02:40  maan
-
-       * command.c: uptime: add afs_buf size to output
-
-2004-07-13 02:15  maan
-
-       * server.c: use PROCEED_MSG macro
-
-2004-07-13 02:03  maan
-
-       * server.c: cosmetics
-
-2004-07-13 01:57  maan
-
-       * server.c: re-allocate afs_buf on HUP, it's size might have
-         changed
-
-2004-07-13 01:56  maan
-
-       * afs.c: afs_send_chunk: rewrite on partial writes
-
-2004-07-13 00:03  maan
-
-       * fade.c: fade did not read config for silly reasons. Fix buffer
-         overflow while at it
-
-2004-07-12 22:48  maan
-
-       * dbtool.c, gui.c, sdl_gui.c: output also directory of sound file
-         in dbinfo
-
-2004-07-12 02:24  maan
-
-       * server.ggo: make help fit on 80 column terminals
-
-2004-07-12 02:23  maan
-
-       * server.c: move log message to where it belongs
-
-2004-07-12 02:23  maan
-
-       * para.h: cosmetics
-
-2004-07-12 02:19  maan
-
-       * gui.c: fix hang-when-stopped bug
-
-2004-07-12 02:18  maan
-
-       * afs.c: __func__
-
-2004-07-12 00:03  maan
-
-       * FEATURES: [no log message]
-
-2004-07-11 22:57  maan
-
-       * INSTALL, README, README.dbtool: various clarifications in
-         documentation
-
-2004-07-11 21:31  maan
-
-       * gui.c: init curses and winch cleanup
-
-2004-07-11 18:41  maan
-
-       * gui.c: hust re-order functions a bit
-
-2004-07-11 18:32  maan
-
-       * gui.c: dont close status pipe for external commands
-
-2004-07-11 17:33  maan
-
-       * gui.c: further simplify do_select logic
-
-2004-07-10 01:01  maan
-
-       * afs.c, server.c, server.ggo, server.h: make chunk buf size for
-         afs run-time configurable
-
-2004-07-09 02:39  maan
-
-       * gui.c: simplify logic in do_select
-
-2004-07-07 23:50  maan
-
-       * Makefile, command.c: output also build date, system and compiler
-         version in command 'version'
-
-2004-07-07 23:49  maan
-
-       * gui.c: cosmetics
-
-2004-07-07 22:57  maan
-
-       * fade.c: fix potential buffer overflow if /home/maan is too long
-
-2004-07-07 22:56  maan
-
-       * afs.c: cosmetics
-
-2004-07-07 22:55  maan
-
-       * gui.c: do_select: logical cleanup
-
-2004-06-30 13:26  maan
-
-       * fade.c: fix waketime in sweet_dreams
-
-2004-06-23 23:32  maan
-
-       * exec.c, server.c, server.ggo, server.h: move popeostream writer
-
-2004-06-23 23:31  maan
-
-       * afs.c: major send_chunk cleanup. Hot!
-
-2004-06-22 01:31  maan
-
-       * gui.c: cleanup dead code
-
-2004-06-20 18:13  maan
-
-       * server.ggo: kill unused option
-
-2004-06-20 18:10  maan
-
-       * FEATURES, INSTALL: some clarifications, typos
-
-2004-06-20 18:08  maan
-
-       * config.mk: cosmetics
-
-2004-06-20 18:06  maan
-
-       * fade.c: bail out if mixer cant be opened
-
-2004-06-20 17:55  maan
-
-       * fade.c: simplify sweet_dreams
-
-2004-06-20 16:28  maan
-
-       * command.c: improve play command: accepts stream as first
-         (optional) argument
-
-2004-06-20 16:25  maan
-
-       * gui.c: dont suck cpu if no server is available
-
-2004-06-12 03:10  maan
-
-       * gui.c: cosmetics
-
-2004-06-10 01:34  maan
-
-       * para.h: add prototype for exec_cmdline_pid_bg
-
-2004-06-09 03:04  maan
-
-       * gui.c: fix missing write on command exec
-
-2004-06-09 02:06  maan
-
-       * gui.c: check also stream write pipe in do_select, introduce ascii
-         logo
-
-2004-06-08 02:57  maan
-
-       * gui.c: it works fine with only 13 lines. Fix minor sigwinch bug
-         when resizing to very small windows
-
-2004-06-08 02:45  maan
-
-       * gui.c: fix color of separator
-
-2004-06-08 02:40  maan
-
-       * gui.c: kill com_exit. Leaving decoder in bg wont work anymore
-
-2004-06-08 02:36  maan
-
-       * gui.c: make it survive partial writes
-
-2004-06-08 02:08  maan
-
-       * gui.c: fix help output
-
-2004-06-08 02:05  maan
-
-       * gui.c: cosmetics
-
-2004-06-08 01:51  maan
-
-       * gui.c: retain screen content on window changes
-
-2004-06-07 23:20  maan
-
-       * gui.c: terminate decoder after 10 times EAGAIN
-
-2004-06-07 04:15  maan
-
-       * gui.c: better sigwinch handling
-
-2004-06-07 03:20  maan
-
-       * gui.c: it is pointless to have a fuction that only contains a
-         for(;;) loop
-
-2004-06-07 02:54  maan
-
-       * gui.c: avoid busy loop when there is nothing to do
-
-2004-06-07 02:12  maan
-
-       * gui.conf.sample: some more examples
-
-2004-06-07 02:02  maan
-
-       * gui.c: add some docu
-
-2004-06-07 01:44  maan
-
-       * gui.c: fix trailing whitespace
-
-2004-06-07 01:41  maan
-
-       * gui.c: no need to set nodelay every time
-
-2004-06-07 01:21  maan
-
-       * gui.ggo: short command line options
-
-2004-06-07 01:20  maan
-
-       * gui.c: simplify key_map, cosmetics
-
-2004-06-07 00:59  maan
-
-       * gui.conf.sample: update to new syntax
-
-2004-06-07 00:47  maan
-
-       * gui.c: cosmetics
-
-2004-06-07 00:43  maan
-
-       * gui.c: nuke GETSTR mode of do_select and com_decode. Many small
-         improvements
-
-2004-06-07 00:42  maan
-
-       * exec.c: two new exec functions without pipes. redirect unneded
-         fds to /dev/null
-
-2004-06-06 17:45  maan
-
-       * exec.c, gui.c, gui.ggo, para.h: implement own functions for
-         stream io
-
-2004-06-06 14:37  maan
-
-       * gui.c: new stop_decoder command
-
-2004-05-29 21:46  maan
-
-       * gui.c: declare more functions as static
-
-2004-05-29 21:43  maan
-
-       * gui.c: more cosmetics
-
-2004-05-29 21:28  maan
-
-       * gui.c: cosmetics
-
-2004-05-29 21:27  maan
-
-       * exec.c: dont mess with stderr
-
-2004-05-29 21:27  maan
-
-       * gui.c: bot window needs at least two lines
-
-2004-05-29 18:32  maan
-
-       * gui.c: color handling cleanup
-
-2004-05-29 17:36  maan
-
-       * gui.c: cosmetics
-
-2004-05-29 17:28  maan
-
-       * NEWS, gui.conf.sample: NEWS
-
-2004-05-29 17:21  maan
-
-       * fade.conf.sample: add fade options
-
-2004-05-29 17:21  maan
-
-       * gui.conf.sample: remove fade options
-
-2004-05-29 17:19  maan
-
-       * gui.c: remove dead code, small cleanups
-
-2004-05-29 17:05  maan
-
-       * exec.c, gui_common.c: move file_exists() from gui_common.c to
-         exec.c since fade also needs it
-
-2004-05-29 17:04  maan
-
-       * Makefile, config.mk: add para_fade
-
-2004-05-29 17:03  maan
-
-       * gui.c, gui.ggo: nuke soundcard stuff which was moved to fade
-
-2004-05-29 17:03  maan
-
-       * fade.c, fade.ggo: contains soundcard and linux specific stuff,
-         ripped out of gui.c, gui.ggo
-
-2004-05-29 14:12  maan
-
-       * gui.ggo: use typestr
-
-2004-05-29 13:45  maan
-
-       * README: add dbadm
-
-2004-05-27 23:48  maan
-
-       * gui_common.c, para.h: add prototypes of new exec functions
-
-2004-05-27 23:48  maan
-
-       * gui.c: use new exec functions to obtain pid of child
-
-2004-05-27 23:46  maan
-
-       * exec.c: fix up exec functions (use exec instead of return,
-         uhuhuhu), add variants of several functions that can return the
-         pid of child processes
-
-2004-05-27 23:44  maan
-
-       * dbadm.c: fix potential segfault
-
-2004-05-23 18:08  maan
-
-       * dbadm.c: fix menu in case of small window size
-
-2004-05-23 16:16  maan
-
-       * dbadm.c: use static functions
-
-2004-05-23 16:11  maan
-
-       * dbadm.c: fix filename printing for long filenames
-
-2004-05-23 15:41  maan
-
-       * Makefile, dbadm.c: use internal popen_xxx fuctions
-
-2004-05-22 16:23  maan
-
-       * Makefile, config.mk: include para_dbadm
-
-2004-05-22 16:22  maan
-
-       * client.c, server.c: increase limit for command line length
-
-2004-05-22 04:20  maan
-
-       * dbadm.c: color cleanups
-
-2004-05-22 03:38  maan
-
-       * dbadm.c: many small cleanups
-
-2004-05-22 02:44  maan
-
-       * dbadm.c: first usable version
-
-2004-05-22 01:02  maan
-
-       * dbadm.c: small tool to modify attributes
-
-2004-05-21 02:35  maan
-
-       * gui.c: new command: toggle auto decoding
-
-2004-05-21 01:54  maan
-
-       * gui.c: kill children on sigint
-
-2004-05-21 00:55  maan
-
-       * gui.c: close status pipe before executing external commands,
-         reopen afterwards
-
-2004-05-15 18:51  maan
-
-       * gui.c: typo
-
-2004-05-15 18:50  maan
-
-       * dbtool.c: free all dynamically allocated resources, static
-         functions, reduce use of exit()
-
-2004-05-12 21:23  maan
-
-       * gui.c: comment out debugging messages
-
-2004-05-12 21:18  maan
-
-       * gui.c: shutdown curses on external commands
-
-2004-05-12 20:30  maan
-
-       * NEWS: [no log message]
-
-2004-05-10 23:09  maan
-
-       * server.c: cosmetics
-
-2004-05-10 23:09  maan
-
-       * client.c: use C99 identifier __func__
-
-2004-05-10 22:12  maan
-
-       * para.h: avoid compiler warning
-
-2004-05-10 22:11  maan
-
-       * afs.c, command.c, server.c: update dbinfo only after commands
-         with perms & DB_WRITE != 0
-
-2004-05-10 04:20  maan
-
-       * gui.c: cosmetics
-
-2004-05-10 03:48  maan
-
-       * gui.c: make errmsg for unknown keys work again
-
-2004-05-10 03:39  maan
-
-       * gui.conf.sample: add standard key mappings
-
-2004-05-10 03:31  maan
-
-       * para.h: key is now a string, not a char
-
-2004-05-10 03:31  maan
-
-       * exec.c: typo
-
-2004-05-10 03:30  maan
-
-       * gui.c: make all commands runtime-configurable, make function keys
-         and control keys work in configfile, much nicer help page
-
-2004-05-09 22:12  maan
-
-       * gui.c: fix line numbering in help
-
-2004-05-09 22:08  maan
-
-       * server.c: move split_args function to exec.c
-
-2004-05-09 22:07  maan
-
-       * para.h: add new struct gui_command
-
-2004-05-09 22:06  maan
-
-       * gui.c: nicify help and improve key map handling
-
-2004-05-09 22:04  maan
-
-       * exec.c: move split_args from server.c, new function
-         popen_read_client_cmdline
-
-2004-05-09 16:29  maan
-
-       * gui.c, maint.mk: cosmetics
-
-2004-05-08 15:04  maan
-
-       * NEWS: [no log message]
-
-2004-05-08 15:01  maan
-
-       * gui.c: new command: V (print version)
-
-2004-05-08 14:31  maan
-
-       * maint.mk: set umask to 022 before creating files. Ugly
-
-2004-05-05 00:11  maan
-
-       * gui.c: cosmetics
-
-2004-05-04 23:40  maan
-
-       * gui.ggo: add new option: key_map to map keys to shell commands
-
-2004-05-04 23:26  maan
-
-       * gui.c: make reread config work again, cleanups
-
-2004-05-04 23:11  maan
-
-       * gui.c: kill key maps 0-9 (volume setting)
-
-2004-05-04 23:05  maan
-
-       * gui.conf.sample: add key_map comments
-
-2004-05-04 22:52  maan
-
-       * gui.c: implement key mappings, kill bogus transform_vol
-
-2004-05-04 02:31  maan
-
-       * client.c, dbtool.c, gui.c, gui.ggo, sdl_gui.c, server.c: update
-         to recent version of gengetopt
-
-2004-04-25 18:04  maan
-
-       * addons/gkrellm_cmd_display/para_ctrl.c: dont crash if no pic was
-         found
-
-2004-04-25 16:09  maan
-
-       * dbtool.c: get pic by identifier if name starts with '#'
-
-2004-04-25 16:08  maan
-
-       * bash_completion: add some more commands
-
-2004-04-25 16:01  maan
-
-       * README: cosmetics
-
-2004-04-25 04:52  maan
-
-       * addons/gkrellm_cmd_display/para_ctrl.c: info text, make it
-         survive theme cgange, cleanups
-
-2004-04-24 16:14  maan
-
-       * addons/gkrellm_cmd_display/para_ctrl.c: cosmetics
-
-2004-04-18 00:29  maan
-
-       * addons/gkrellm_cmd_display/: Makefile, cmd_display.c: again, too
-         much to document. Still buggy wrt opening/closing pipes
-
-2004-04-17 23:53  maan
-
-       * addons/gkrellm_cmd_display/para_ctrl.c: too much to tell
-
-2004-04-17 18:26  maan
-
-       * addons/gkrellm_cmd_display/para_ctrl.c: gkrellm plugin that
-         displays paraslash images
-
-2004-04-17 15:56  maan
-
-       * NEWS, command.c: new command: sc (song change)
-
-2004-04-10 13:10  maan
-
-       * addons/gkrellm_cmd_display/cmd_display.c: make scrolling work
-         again and make scrolling speed configurable
-
-2004-04-10 12:36  maan
-
-       * dbtool.c: cleanups
-
-2004-04-08 20:39  maan
-
-       * addons/gkrellm_cmd_display/cmd_display.c: make click left button
-         exec Mcommand
-
-2004-04-08 14:08  maan
-
-       * addons/gkrellm_cmd_display/cmd_display.c: scroll text
-
-2004-04-05 02:08  maan
-
-       * addons/gkrellm_cmd_display/cmd_display.c: cleanups
-
-2004-04-05 01:26  maan
-
-       * addons/gkrellm_cmd_display/cmd_display.c: cleanups
-
-2004-04-05 00:51  maan
-
-       * addons/gkrellm_cmd_display/: cmd_display.c: Can't crash it any
-         more
-
-2004-04-04 21:30  maan
-
-       * addons/gkrellm_cmd_display/cmd_display.c: fix memory leak, make
-         mouse button work again
-
-2004-04-04 20:21  maan
-
-       * addons/gkrellm_cmd_display/: Makefile, cmd_display.c: too much to
-         mention
-
-2004-04-04 16:15  maan
-
-       * addons/gkrellm_cmd_display/: Makefile, cmd_display.c: former
-         gkrellm-fileread-2.00
-
-2004-03-17 13:42  maan
-
-       * maint.mk: cosmetics
-
-2004-03-17 13:41  maan
-
-       * Makefile: use type -p rather than which to find poc-fec
-
-2004-03-17 13:36  maan
-
-       * 1.0: [no log message]
-
-2004-02-24 14:35  maan
-
-       * NEWS: [no log message]
-
-2004-02-20 16:27  maan
-
-       * gui.c: new command: x (quit, but leave decoder)
-
-2004-02-20 00:50  maan
-
-       * client.c: handle binary input properly
-
-2004-02-14 00:38  maan
-
-       * dbtool.c: cosmetics
-
-2004-02-02 02:33  maan
-
-       * command.c: cosmetics
-
-2004-02-02 02:27  maan
-
-       * NEWS: [no log message]
-
-2004-02-02 02:25  maan
-
-       * gui.c: new key binding: u (uptime)
-
-2004-01-25 01:05  maan
-
-       * README.dbtool, config.mk: cosmetics
-
-2004-01-25 01:05  maan
-
-       * INSTALL: streaming capabilities are no longer required for mp3
-         decoder
-
-2004-01-25 01:04  maan
-
-       * FEATURES: reformat to make it look nicer in html
-
-2004-01-24 23:52  maan
-
-       * dbtool_template.c: help must print _three_ lines
-
-2004-01-24 23:51  maan
-
-       * gui.ggo: use proper default value for decode_cmd
-
-2004-01-24 23:50  maan
-
-       * INSTALL, Makefile, README, config.mk: dbtool.sample script ->
-         dbtool_template.c
-
-2004-01-24 23:03  maan
-
-       * dbtool_template.c: C-version of former dbtool.sample shell script
-
-2004-01-24 23:03  maan
-
-       * dbtool.sample: replaced by dbtool_template.c
-
-2004-01-24 13:19  maan
-
-       * server.c: ignore sigpipe, nicify log message for sigchld
-
-2004-01-24 12:20  maan
-
-       * server.c: remove crappy and unused get_exit_status, kill sigpipe
-         handling code
-
-2004-01-24 12:11  maan
-
-       * NEWS: [no log message]
-
-2004-01-23 09:35  maan
-
-       * gui.c: new command: A (list attributes)
-
-2004-01-23 09:34  maan
-
-       * server.h: add afs_preselect
-
-2004-01-23 09:34  maan
-
-       * server.c: proper signal handling using signal pipe
-
-2004-01-19 00:05  maan
-
-       * net.c: handle partial sends properly
-
-2004-01-18 01:01  maan
-
-       * dbtool.c: new macro: PICID
-
-2004-01-18 01:01  maan
-
-       * NEWS: [no log message]
-
-2004-01-17 23:28  maan
-
-       * README.dbtool: major reorganisation/update
-
-2004-01-13 02:30  maan
-
-       * command.c, net.c, para.h: new function: send_buffer_ll. Like
-         send_buffer, but allows to specify loglevel
-
-2004-01-13 02:29  maan
-
-       * afs.c: cosmetics
-
-2004-01-13 02:00  maan
-
-       * NEWS: [no log message]
-
-2004-01-13 02:00  maan
-
-       * gui.c: add S (list streams)
-
-2004-01-13 01:59  maan
-
-       * Makefile, maint.mk: fix -V (version)
-
-2004-01-13 01:23  maan
-
-       * README.dbtool: update creation of streams
-
-2004-01-13 01:08  maan
-
-       * dbtool.c: get_query: thinko
-
-2004-01-13 01:01  maan
-
-       * dbtool.c: get_query: make an empty stream definition select all
-         songs
-
-2004-01-13 00:48  maan
-
-       * NEWS: [no log message]
-
-2004-01-13 00:48  maan
-
-       * afs.c: afs_send_chunk: either write to poc pipe or kill it
-
-2004-01-09 22:07  maan
-
-       * para.h, server.h: move CHUNK_BUFFSIZE from para.h to server.h
-
-2004-01-09 22:06  maan
-
-       * exec.c: new function: popen_write_poc. It returns pipe fd _and_
-         pid of poc-fec
-
-2004-01-09 22:00  maan
-
-       * afs.c, server.c: new functions: kill_poc/do_get_song. Move poc
-         stuff completely to afs
-
-2004-01-09 21:57  maan
-
-       * NEWS: [no log message]
-
-2004-01-06 23:21  maan
-
-       * server.h: new flag: AFS_REREAD_DB_INFO
-
-2004-01-06 23:21  maan
-
-       * server.c: check semop for return value and retry semop on error
-
-2004-01-06 23:18  maan
-
-       * gui.c: add new key-binding: Q -> strq
-
-2004-01-06 23:17  maan
-
-       * dbtool.c: nuke scan for unnecessary 'end:' fix potential buffer
-         overflow
-
-2004-01-06 23:16  maan
-
-       * command.c: set AFS_REREAD_DB_INFO after each dbtool command to
-         make dbinfo current in stat/gui
-
-2004-01-06 22:52  maan
-
-       * afs.c: single out update of db_info to call it also from server
-         when new flag AFS_REREAD_DB_INFO was set by child
-
-2004-01-05 00:51  maan
-
-       * dbtool.sample: help: output 3 columns
-
-2004-01-05 00:50  maan
-
-       * dbtool.c: piclist: order pics by id
-
-2004-01-05 00:50  maan
-
-       * command.c: uptime: print current loglevel
-
-2004-01-05 00:49  maan
-
-       * README, README.dbtool: [no log message]
-
-2004-01-04 21:55  maan
-
-       * server.h: add get_poc_pipe, change afs_send_chunk
-
-2004-01-04 21:54  maan
-
-       * maint.mk: remove html files on distclean
-
-2004-01-04 21:53  maan
-
-       * config.mk: move BINARIES from Makefile to config.mk to let the
-         user remove targets she doesn't want to build
-
-2004-01-04 21:51  maan
-
-       * afs.c, server.c: move opening/closing of poc pipe to afs, reopen
-         poc_pipe on AFS_REPOS to avoid clipping and decoder crashes
-
-2004-01-04 21:49  maan
-
-       * NEWS: [no log message]
-
-2004-01-04 21:49  maan
-
-       * Makefile: major cleanup, should compile faster on rebuilds
-
-2004-01-04 21:49  maan
-
-       * INSTALL, README.dbtool: more explanation, reordering
-
-2004-01-04 21:47  maan
-
-       * COPYING: change year to 2004
-
-2004-01-04 07:27  maan
-
-       * CREDITS, INSTALL, NEWS, README, README.dbtool, command.c,
-         dbtool.c, server.h: major documentation update
-
-2004-01-04 07:27  maan
-
-       * maint.mk: add manual.txt and web targets
-
-2004-01-04 07:26  maan
-
-       * server.c: dont exit if no streams were found on startup
-
-2004-01-04 02:18  maan
-
-       * afs.c: use POC_FEC which was located by make rather than relying
-         on
-         /home/maan/bin:/usr/local/bin:/usr/bin:/usr/X11R6/bin:/bin:/usr/local/scripts:/usr/local/mysql/bin:.:/usr/local/teTeX/bin/i586-pc-linux-gnu/:/home/maan/MIRROR/bin
-
-2004-01-04 02:17  maan
-
-       * Makefile: check also for poc-fec
-
-2004-01-04 02:07  maan
-
-       * README, afs.c, client.c, command.c, dbtool.c, gui.c, maint.mk,
-         para.h, sdl_gui.c, server.c, server.h: cosmetics
-
-2004-01-04 01:54  maan
-
-       * Makefile, config.mk, maint.mk: split Makefile into three parts
-
-2004-01-03 23:27  maan
-
-       * command.c, dbtool.c: cosmetics
-
-2004-01-03 22:38  maan
-
-       * NEWS: [no log message]
-
-2004-01-03 22:28  maan
-
-       * dbtool.c: new function: stdin2buf. make picadd accept jpeg data
-         from stdin. Change picch to only change name
-
-2004-01-03 20:00  maan
-
-       * gui.c: print key-bindings of c/C (next/previous stream) in help
-
-2004-01-03 19:59  maan
-
-       * dbtool.conf.sample: nuke streams
-
-2004-01-03 19:58  maan
-
-       * dbtool.c: strq: use memchr rather than strchr on potentially
-         binary data. stradd: properly escape stream definition
-
-2004-01-03 19:55  maan
-
-       * command.c: dbtool_cmd_handler: cleanup
-
-2004-01-03 19:54  maan
-
-       * client.c: cosmetics
-
-2004-01-03 19:53  maan
-
-       * afs.c: make get_song return -1 on errors rather than 0
-
-2004-01-03 19:52  maan
-
-       * README.dbtool: [no log message]
-
-2004-01-03 05:50  maan
-
-       * server.h: add modus to struct command
-
-2004-01-03 05:49  maan
-
-       * para.h: new #defines: AWAITING_DATA_MSG and PROCEED_MSG
-
-2004-01-03 05:49  maan
-
-       * net.c: new function: recv_bin_buffer
-
-2004-01-03 05:48  maan
-
-       * gui.c: bind ns to c again and ps to C
-
-2004-01-03 05:47  maan
-
-       * dbtool.ggo: nuke streams option
-
-2004-01-03 05:47  maan
-
-       * dbtool.c: new modus flag.  stream list is now stored inside mysql
-         db.  new commands: strq, stradd, strdel cdb: create all tables
-
-2004-01-03 05:44  maan
-
-       * command.c: new command flag: modus (read or write command). This
-         makes three command handlers: server/db_read/db_write.
-         Consequently, dbtool changed a lot.
-
-         new command: ps (reuse code of ns)
-
-2004-01-03 05:39  maan
-
-       * client.c: send stdin to server if server sends AWAITING_DATA_MSG
-
-2004-01-03 05:36  maan
-
-       * 1.0, FEATURES, NEWS, README: [no log message]
-
-2003-12-28 21:29  maan
-
-       * afs.c: reset mmd.vbr after each song. That seems to be
-         necessary..
-
-2003-12-28 04:16  maan
-
-       * Makefile, gui.c: cosmetics
-
-2003-12-28 02:35  maan
-
-       * gui.c: cosmetics
-
-2003-12-28 02:22  maan
-
-       * gui.c: hide cursor
-
-2003-12-27 21:07  maan
-
-       * FEATURES: [no log message]
-
-2003-12-27 14:49  maan
-
-       * Makefile, bash_completion, command.c, exec.c, gui.c,
-         gui_common.c, sdl_gui.c: replace remaining occurences of icc by
-         para
-
-2003-12-27 06:52  maan
-
-       * command.c, dbtool.sample, sdl_gui.c, sdl_gui.conf.sample: replace
-         more icc by para
-
-2003-12-27 06:35  maan
-
-       * Makefile, dbtool.sample, server.conf.sample: replace icc_server
-         by para_server
-
-2003-12-27 06:30  maan
-
-       * Makefile, client.c, dbtool.c, dbtool.sample, exec.c, gui.c,
-         gui_common.c, net.c, sdl_gui.c, server.h: replace icc.h by para.h
-
-2003-12-27 06:25  maan
-
-       * para.h: former icc.h
-
-2003-12-27 06:25  maan
-
-       * icc.h: renamed to para.h
-
-2003-12-27 06:21  maan
-
-       * CREDITS, INSTALL, Makefile, NEWS, README, README.dbtool,
-         client.c, client.conf.sample, client.ggo, command.c, dbtool.c,
-         dbtool.conf.sample, dbtool.ggo, gui.c, gui.ggo, icc.h, sdl_gui.c,
-         sdl_gui.ggo, server.c, server.ggo: replace icc by para
-
-2003-12-27 05:54  maan
-
-       * pics/default.jpg: no more stinky fingers as default, use
-         paraslash logo instead
-
-2003-12-27 00:12  maan
-
-       * xmms-1.2.7.titlebar_vbr_patch: no longer needed
-
-2003-12-27 00:11  maan
-
-       * NEWS: [no log message]
-
-2003-12-27 00:11  maan
-
-       * Makefile: remove dependencies on Makefile
-
-2003-12-26 21:51  maan
-
-       * VERSION: bump version number to 98
-
-2003-12-26 18:53  maan
-
-       * NEWS, README, README.dbtool, gui.c, icc.h: cosmetics
-
-2003-12-26 18:09  maan
-
-       * icc.h, server.h: move struct command from icc.h to server.h
-
-2003-12-26 18:07  maan
-
-       * icc.h, server.h: move struct user from icc.h to server.h
-
-2003-12-26 18:04  maan
-
-       * gui.c, gui_common.c, icc.h, sdl_gui.c: move open_stat_pipe to
-         gui_common.c
-
-2003-12-26 17:37  maan
-
-       * NEWS: [no log message]
-
-2003-12-26 17:37  maan
-
-       * sdl_gui.c: change placement to make all items fit on a 1024x768
-         screen. Also fix config file reading
-
-2003-12-26 17:37  maan
-
-       * afs.c, server.c: loglevel adjustments
-
-2003-12-26 17:37  maan
-
-       * gui_common.c: new function: file_exists
-
-2003-12-26 17:37  maan
-
-       * gui.c: simplify config_file exitst by using new function
-         file_exists
-
-2003-12-26 17:37  maan
-
-       * Makefile: tgz: make four tarballs
-
-2003-12-26 03:09  maan
-
-       * gui.c: base_key: return given value itsself rather that -1 if we
-         have no idea what is is
-
-2003-12-26 02:32  maan
-
-       * gui.c: print codename in Welcome message
-
-2003-12-26 02:32  maan
-
-       * Makefile: include CODENAME in version.h
-
-2003-12-26 02:10  maan
-
-       * server.h: nuke mmd->remaining since it is derived
-
-2003-12-26 02:10  maan
-
-       * gui.c: logical reordering of functions
-
-2003-12-26 02:09  maan
-
-       * server.c: cosmetics
-
-2003-12-26 02:08  maan
-
-       * afs.c, command.c: finetune former afs commands, nuke
-         mmd->remaining since it is derived
-
-2003-12-25 23:52  maan
-
-       * afs.c, server.c: send each file to separate poc process
-
-2003-12-25 21:32  maan
-
-       * gui.c: cosmetics
-
-2003-12-25 21:30  maan
-
-       * gui.c: simplify base_key function
-
-2003-12-25 20:41  maan
-
-       * gui.c: new command: CTRL+L to repaint screen
-
-2003-12-25 20:40  maan
-
-       * command.c: fix cr problem with sb
-
-2003-12-25 19:04  maan
-
-       * afs.c, command.c, server.h: move compute_sb_string from afs to
-         command.c allowing to nuke mmd->status_bar
-
-2003-12-25 18:39  maan
-
-       * afs.c, command.c, server.c, server.h: nuke mmd->afs_status, use
-         only status_flags instead
-
-2003-12-25 17:32  maan
-
-       * gui.c: new commands: F1-F10 to jmp, rename some commands
-
-2003-12-25 02:36  maan
-
-       * server.c, server.h: move gengetopt_args_info conf out of mmd
-
-2003-12-25 02:22  maan
-
-       * afs.c, server.h: get rid of file_status in mmd
-
-2003-12-25 02:06  maan
-
-       * afs.c, server.h: compute mmd->total and friends in
-         afs_send_chunk, not in update_mmd, get rid of mmd->soc
-
-2003-12-25 01:48  maan
-
-       * command.c, server.c, server.h: implement counter for currently
-         active connections
-
-2003-12-25 01:08  maan
-
-       * server.c, server.h: store semid for mmd locking in extern
-         variable, not in mmd itsself
-
-2003-12-25 01:05  maan
-
-       * command.c, server.c, server.h: move mmd lock functions from
-         command.c to server.c
-
-2003-12-25 00:54  maan
-
-       * afs.c, server.c: small logging cleanups
-
-2003-12-23 17:37  maan
-
-       * Makefile: add codename funny
-
-2003-12-23 17:11  maan
-
-       * afs.c, command.c, sdl_gui.c: stat prints wheather current mp3 has
-         vbr or not
-
-2003-12-23 05:25  maan
-
-       * server.c: init mmd->server_pid. That broke hup
-
-2003-12-23 05:23  maan
-
-       * afs.c: cosmetics
-
-2003-12-23 03:54  maan
-
-       * command.c: dont sleep after last status line has been printed
-
-2003-12-23 00:54  maan
-
-       * afs.c, server.c: add some logging
-
-2003-12-22 23:22  maan
-
-       * INSTALL, README: [no log message]
-
-2003-12-22 23:08  maan
-
-       * afs.c, client.c, command.c, net.c, server.c, server.h: change log
-         to clog to avoid compiler warnings
-
-2003-12-22 22:16  maan
-
-       * gui.conf.sample: adapt to new decode_cmd syntax
-
-2003-12-22 22:15  maan
-
-       * gui.c: introduce (and check in do_select) decoder_pipe to avoid
-         multiple instances of the decoder
-
-2003-12-22 16:08  maan
-
-       * server.h: adapt afs_send_chunk to new syntax
-
-2003-12-22 16:07  maan
-
-       * server.c: reopen poc pipe if afs_send_chunk failed
-
-2003-12-22 16:06  maan
-
-       * gui.c: ignore SIGCHLD and SIGPIPE
-
-2003-12-22 16:05  maan
-
-       * afs.c: make afs_send_chunk return negative value if write to
-         poc_pipe failed
-
-2003-12-22 04:59  maan
-
-       * server.c: fix stop command
-
-2003-12-22 04:58  maan
-
-       * command.c: fix stop command, log cleanups
-
-2003-12-22 04:57  maan
-
-       * afs.c: log cleanups
-
-2003-12-22 04:56  maan
-
-       * NEWS: aaa
-
-2003-12-22 04:56  maan
-
-       * Makefile: change THANKS to CREDITS
-
-2003-12-22 04:55  maan
-
-       * CREDITS: add Manuel Odendahl
-
-2003-12-22 02:55  maan
-
-       * CREDITS: former THANKS
-
-2003-12-22 02:55  maan
-
-       * THANKS: renamed to CREDITS
-
-2003-12-22 02:44  maan
-
-       * 1.0, INSTALL, Makefile, NEWS, README, afs.c, command.c, exec.c,
-         gui.c, gui.ggo, icc.h, server.c, server.conf.sample, server.ggo,
-         server.h: kick icecast, switch to poc
-
-2003-12-22 02:44  maan
-
-       * icecast.conf.sample, init_afs.c: no longer needed
-
-2003-12-20 15:48  maan
-
-       * server.c: kill pid_list code (was commented out)
-
-2003-12-20 15:44  maan
-
-       * gui.conf.sample: sample configuration file
-
-2003-12-20 15:43  maan
-
-       * NEWS: [no log message]
-
-2003-12-20 15:41  maan
-
-       * gui.c, gui.ggo: implement auto-decoding
-
-2003-12-20 15:39  maan
-
-       * afs.c: set status to playing _after_ the first chunk has been
-         streamed
-
-2003-12-18 01:48  maan
-
-       * command.c, server.c: fix term command which broke due to removal
-         of pid_list
-
-2003-12-17 00:54  maan
-
-       * SFont.c: include stdlib to avoid compiler warnings
-
-2003-12-17 00:28  maan
-
-       * NEWS: [no log message]
-
-2003-12-17 00:18  maan
-
-       * server.c: Pid was logged twice in debug mode. Fix it.
-
-2003-12-17 00:13  maan
-
-       * command.c, gui.c, init_afs.c, server.c: comment out racy pid_list
-         crap
-
-2003-12-04 23:22  maan
-
-       * dbtool.conf.sample: document gengetopt's strange behaviour
-         concerning backsslashes in arguments
-
-2003-12-04 01:29  maan
-
-       * dbtool.c: cosmetics
-
-2003-12-02 02:31  maan
-
-       * dbtool.c: fix help test format for verb
-
-2003-12-02 02:08  maan
-
-       * dbtool.c: print score of zero if it is undefined
-
-2003-12-02 00:37  maan
-
-       * dbtool.c: new command: verb
-
-2003-12-02 00:37  maan
-
-       * NEWS: [no log message]
-
-2003-12-01 23:20  maan
-
-       * SFont.h: Missing since ages. Reported by Thomas Forell
-
-2003-12-01 23:18  maan
-
-       * NEWS: insert release date of 0.0.97
-
-2003-11-23 21:19  maan
-
-       * gui.c: dont die on sigchld. That was silly. Instead, die on
-         sighup and change signal for rereading conf from hup to usr1
-
-2003-11-23 21:11  maan
-
-       * README.dbtool: document pic column
-
-2003-11-23 21:10  maan
-
-       * dbtool.c: test args_info.find_cmd_given, fix typo
-
-2003-11-20 00:22  maan
-
-       * gui.c: Die on sigchld. This should fix stale  processes that eat
-         up memory.
-
-2003-10-30 21:51  maan
-
-       * server.c, server.ggo: dont change stream on hup
-
-2003-10-26 14:11  maan
-
-       * VERSION: bump version number to 97
-
-2003-10-26 12:18  maan
-
-       * Makefile: add THANKS to txts
-
-2003-10-26 12:18  maan
-
-       * NEWS: cosmetics
-
-2003-10-26 00:46  maan
-
-       * NEWS: cosmetics
-
-2003-10-26 00:41  maan
-
-       * NEWS: nuke icc prefix
-
-2003-10-26 00:33  maan
-
-       * gui.c: com_sleep: change stream _after_ sleep
-
-2003-10-21 22:35  maan
-
-       * README.dbtool: some small changes
-
-2003-10-21 22:25  maan
-
-       * README: sdl_gui update
-
-2003-10-21 21:48  maan
-
-       * dbtool.ggo: gengetopt file for dbtool
-
-2003-10-21 21:46  maan
-
-       * THANKS: list of people who helped developing this project
-
-2003-10-21 21:23  maan
-
-       * gui.c: change snooze key from o to a (because it is easier to hit
-         on the keyboard when dazed and confused in the morning)
-
-2003-10-20 23:58  maan
-
-       * sdl_gui.ggo: add option w which is currently ignored but needed
-         to start sdl_gui from xscreensaver
-
-2003-10-20 23:57  maan
-
-       * gui.c: new function: outputf to print formated output. Avoid
-         sleep on startup, print message in bot window instead.
-
-2003-10-20 23:56  maan
-
-       * client.c: cosmetics
-
-2003-10-20 23:56  maan
-
-       * NEWS: [no log message]
-
-2003-10-20 22:33  maan
-
-       * gui.c: cosmetics
-
-2003-10-20 22:08  maan
-
-       * gui.c: do not cleanup in interrupt handler (that crap originally
-         came from some examples), set flag instead. This allows to omit
-         the strange sleep(1) in finish, so quiting quits immediately now.
-         Also, catch sigterm and exit gracefully.
-
-2003-10-20 21:43  maan
-
-       * gui.c: catch sighup and reread configuration on sighup
-
-2003-10-19 22:58  maan
-
-       * afs.c: cosmetics
-
-2003-10-19 17:11  maan
-
-       * gui.c: make sleep kinda work
-
-2003-10-11 18:49  maan
-
-       * dbtool.c: we only need basename of row[1]
-
-2003-10-11 18:46  maan
-
-       * command.c: help text update
-
-2003-10-11 18:46  maan
-
-       * NEWS: update
-
-2003-10-11 18:46  maan
-
-       * Makefile: Change default prefix to /usr/local
-
-2003-10-08 18:02  maan
-
-       * dbtool.c: update syntax of fut in help (reported by Thomas
-         Forell)
-
-2003-10-07 19:39  maan
-
-       * exec.c: dont dup stderr
-
-2003-10-07 19:38  maan
-
-       * gui.c, gui.ggo: add decode command
-
-2003-10-07 19:33  maan
-
-       * dbtool.c: remove useless printf
-
-2003-10-07 19:33  maan
-
-       * client.c: fix interactive mode (reported by Thomas Forell)
-
-2003-09-25 02:46  maan
-
-       * dbtool.c: minor cleanups
-
-2003-09-24 23:35  maan
-
-       * dbtool.conf.sample: put quotes around find_cmd
-
-2003-09-24 23:34  maan
-
-       * dbtool.c: switch to gengetopt
-
-2003-09-24 23:34  maan
-
-       * NEWS: update
-
-2003-09-24 23:34  maan
-
-       * Makefile: dbtool depends on dbtool.cmdline.c
-
-2003-09-23 20:46  maan
-
-       * Makefile: nuke unused TODO stuff
-
-2003-09-23 19:22  maan
-
-       * gui.ggo: gengetopt file for gui
-
-2003-09-23 19:17  maan
-
-       * command.c, icc.h, server.c: change all handlers from static int
-         com_foo(char *, int); to static int com_foo(int, int, char **);,
-         i.e. pass pointerarray instead of command line to handlers
-
-2003-09-23 19:13  maan
-
-       * afs.c: cosmetics
-
-2003-09-23 19:12  maan
-
-       * .tdldb: unused since May 2002
-
-2003-09-23 15:23  maan
-
-       * server.c: use popen_read_dbtool
-
-2003-09-23 15:23  maan
-
-       * sdl_gui.c: use popen_read_client
-
-2003-09-23 15:22  maan
-
-       * command.c, icc.h: cosmetics
-
-2003-09-22 22:04  maan
-
-       * gui.c: simplify cases (vol1 - vol9), add sleep command to help
-         text
-
-2003-09-22 21:46  maan
-
-       * gui.c: new function: configfile_exists.  do_select: change long
-         int timeout ro tong long timeout. Long timeouts didnt work
-         otherwise.  Fix thinko with select_timeout (introducing
-         default_select_timeout).  New function and command: reread
-         config.
-
-2003-09-22 20:59  maan
-
-       * afs.c: print two digits sor seconds in log info
-
-2003-09-22 17:18  maan
-
-       * gui.c: use gengetopt
-
-2003-09-22 17:18  maan
-
-       * Makefile: gui depends on gui.cmdline.c
-
-2003-09-22 02:50  maan
-
-       * command.c: cosmetics
-
-2003-09-22 02:43  maan
-
-       * dbtool.c: dokumentation update for na
-
-2003-09-22 02:30  maan
-
-       * afs.c: use mmd->size instead of equivalent
-         mmd->file_status.st_size
-
-2003-09-22 02:23  maan
-
-       * afs.c: cosmetics
-
-2003-09-22 02:08  maan
-
-       * icc.h: add popen_read_dbtool
-
-2003-09-22 02:08  maan
-
-       * command.c: use popen_read_dbtool, log correct fd in debug mode
-
-2003-09-22 02:06  maan
-
-       * afs.c: use popen_read_dbtool
-
-2003-09-22 02:06  maan
-
-       * exec.c: new function popen_read_dbtool
-
-2003-09-22 01:03  maan
-
-       * sdl_gui.c: use popen again for commands (with popoen_read,
-         commands having more than one arg doesnt work)
-
-2003-09-22 01:01  maan
-
-       * icc.h: add new function popen_read_client
-
-2003-09-22 01:01  maan
-
-       * gui.c: use new function popen_read_client
-
-2003-09-22 00:59  maan
-
-       * exec.c: new function: popen_read_client
-
-2003-09-22 00:59  maan
-
-       * command.c: adapt help text of ff to new syntax
-
-2003-09-22 00:58  maan
-
-       * Makefile: sdl_gui depends on exec.c
-
-2003-09-22 00:58  maan
-
-       * afs.c: make ff work again with negative offset
-
-2003-09-21 15:15  maan
-
-       * sdl_gui.c: use popen_read where it makes sense
-
-2003-09-19 14:19  maan
-
-       * server.conf.sample: replace never uptodate example configureation
-         by hint to read help
-
-2003-09-19 14:18  maan
-
-       * gui.c: use popen_read
-
-2003-09-19 14:17  maan
-
-       * exec.c: dont log anything, dont exit on errors, return NULL
-         instead
-
-2003-09-19 14:16  maan
-
-       * Makefile: icc_gui needs exec.c
-
-2003-09-18 03:35  maan
-
-       * gui.c: only use strlen if we really need to know the length
-
-2003-09-18 02:38  maan
-
-       * gui.c: cosmetics
-
-2003-09-18 02:24  maan
-
-       * gui.c: tidy up do_select
-
-2003-09-18 02:04  maan
-
-       * gui.c: fix output bug causing end of buffer being displayed on
-         next command
-
-2003-09-17 23:20  maan
-
-       * command.c: help: fix alphabetical ordering
-
-2003-09-17 22:53  maan
-
-       * server.c: use popen_read instead of popen
-
-2003-09-17 22:52  maan
-
-       * exec.c: dont write to stdout/stderr
-
-2003-09-17 22:52  maan
-
-       * command.c: cosmetics
-
-2003-09-17 22:38  maan
-
-       * command.c: lcl_init: use popen_read another time
-
-2003-09-17 22:35  maan
-
-       * command.c: lcl_init: use popen_read
-
-2003-09-17 22:07  maan
-
-       * server.c: always print strerror() text from exit status
-
-2003-09-17 22:07  maan
-
-       * icc.h: add prototype for popen_read_vp
-
-2003-09-17 22:06  maan
-
-       * exec.c: new function: popen_read_vp (ala execvp)
-
-2003-09-17 22:05  maan
-
-       * dbtool.c: change syntax of picass: Now ID has to be specified
-         instead of name.  escape filenames several times.
-
-2003-09-17 22:03  maan
-
-       * command.c: afs_cmd_handler: replace \n by space in args.  new
-         function: split args.  dbtool_cmd_handler: use popen_read_vp
-         instead of popen.
-
-2003-09-17 21:58  maan
-
-       * client.c: dont send addidtional space in commands
-
-2003-09-17 21:58  maan
-
-       * afs.c: dont log warnings on EINTR.
-
-2003-09-17 17:31  maan
-
-       * dbtool.c: info: dont continue if entry not found
-
-2003-09-17 17:26  maan
-
-       * dbtool.c: replace add_slashes by escape_str which calls
-         mysql_real_escape_string
-
-2003-09-17 00:49  maan
-
-       * NEWS: update
-
-2003-09-17 00:48  maan
-
-       * afs.c: replace popen by popen_read
-
-2003-09-17 00:32  maan
-
-       * icc.h: add popen_read
-
-2003-09-17 00:32  maan
-
-       * dbtool.c: modify add_slashes to return dynamically allocated
-         buffer.  use add_slashes in us and info.
-
-2003-09-17 00:30  maan
-
-       * afs.c: use popen_read instead of popen
-
-2003-09-17 00:30  maan
-
-       * Makefile: server depends on exec.c
-
-2003-09-17 00:29  maan
-
-       * exec.c: new: contains only popen_read for now
-
-2003-09-15 03:51  maan
-
-       * dbtool.c: cosmetics
-
-2003-09-15 03:16  maan
-
-       * dbtool.c: help text update
-
-2003-09-15 02:09  maan
-
-       * 1.0, command.c, server.conf.sample: print
-
-2003-09-15 02:01  maan
-
-       * dbtool.c: print mysql_error message in get_resuts, use strlen
-         only where neccessary
-
-2003-09-15 01:59  maan
-
-       * command.c: insert commands in alphabetical order into lcl
-
-2003-09-14 23:13  maan
-
-       * dbtool.c: cosmetics
-
-2003-09-14 20:15  maan
-
-       * dbtool.c: do not write to stderr
-
-2003-09-14 18:39  maan
-
-       * dbtool.c: fut: dont limit number of matches since we have to
-         consider all matches to make the magic randomizer work. That
-         hopefully fixed the bug that made output of fut appear
-         alphabetically ordered if there are many new songs.
-
-2003-09-14 17:30  maan
-
-       * server.h: nuke duplicated info in mmd.stream_name.  change pid_t
-         init_afs to void init_afs.  add pid_list_add.
-
-2003-09-14 17:28  maan
-
-       * server.ggo: use empty default value for stream
-
-2003-09-14 17:27  maan
-
-       * server.c: change static void pid_list_add(pid_t pid) to void
-         pid_list_add(pid_t pid).  exit on errors.  stream_list_init: make
-         sure that initial stream is valid.  simplify handle_sighup and
-         main.
-
-2003-09-14 17:24  maan
-
-       * init_afs.c: exit on errors.  set mmd->afs_pid
-
-2003-09-14 17:22  maan
-
-       * command.c:
-         replace mmd->stream_name by mmd->stream, handle_cmd: exit on
-         errors, new fuction: find_stream, simplify com_cs,
-
-2003-09-14 17:19  maan
-
-       * afs.c: replace mmd->stream_name by mmd->stream
-
-2003-09-13 19:50  maan
-
-       * server.c: new function: init_network
-
-2003-09-13 19:45  maan
-
-       * server.c: new function: init_network
-
-2003-09-13 19:44  maan
-
-       * icc.h, net.c: new functions: setserversockopts, do_bind
-
-2003-09-13 17:13  maan
-
-       * Makefile: make also light tarballs
-
-2003-09-13 16:47  maan
-
-       * NEWS, README, dbtool.c: small documentation update
-
-2003-09-13 16:38  maan
-
-       * Makefile: tgz include date in tarball
-
-2003-09-13 15:59  maan
-
-       * icc.h: do not include argtable.h
-
-2003-09-13 15:53  maan
-
-       * server.conf.sample: remove list of users
-
-2003-09-13 15:52  maan
-
-       * dbtool.conf.sample: change user name from maan to foo
-
-2003-09-13 15:51  maan
-
-       * INSTALL, README.dbtool: document cdb function
-
-2003-09-13 15:50  maan
-
-       * dbtool.c: new command: cdb (create database)
-
-2003-09-12 20:54  maan
-
-       * Makefile: add server.h to headers
-
-2003-09-12 20:28  maan
-
-       * net.c, server.c: logging adjustments
-
-2003-09-12 19:32  maan
-
-       * Makefile: clean: distclean: Remove also ChangLog.bak
-
-2003-09-12 19:24  maan
-
-       * dbtool.c: cosmetics
-
-2003-09-12 19:24  maan
-
-       * command.c: replace icc_server by server in help text
-
-2003-09-12 19:22  maan
-
-       * client.conf.sample: adapt name of keyfile
-
-2003-09-12 19:21  maan
-
-       * README.dbtool: typo
-
-2003-09-12 19:13  maan
-
-       * Makefile: adapt to new filenames without icc prefix
-
-2003-09-12 18:58  maan
-
-       * dbtool.sample: former icc_dbtool.sample
-
-2003-09-12 18:58  maan
-
-       * icc_dbtool.sample: rename to dbtool.sample
-
-2003-09-12 18:54  maan
-
-       * server.c: former icc_server.c
-
-2003-09-12 18:54  maan
-
-       * icc_server.c: rename to server.c
-
-2003-09-12 18:52  maan
-
-       * dbtool.c: former icc_dbtool.c
-
-2003-09-12 18:52  maan
-
-       * icc_dbtool.c: rename ro dbtool.c
-
-2003-09-12 18:49  maan
-
-       * gui.c: former icc_gui.c
-
-2003-09-12 18:49  maan
-
-       * icc_gui.c: renamed to gui.c
-
-2003-09-12 18:48  maan
-
-       * client.c: former icc_client.c
-
-2003-09-12 18:47  maan
-
-       * icc_client.c: renamed to client.c
-
-2003-09-12 18:16  maan
-
-       * afs.c, command.c, icc.h, icc_client.c, icc_dbtool.c, icc_gui.c,
-         init_afs.c, sdl_gui.c: nuke cvs keyword expansion
-
-2003-09-12 18:16  maan
-
-       * Makefile: ChangeLog: Dont show time
-
-2003-09-12 17:42  maan
-
-       * icc.h: nuke unused CONFIDENTIAL bit
-
-2003-09-12 17:41  maan
-
-       * INSTALL: update name of conf files
-
-2003-09-12 17:05  maan
-
-       * Makefile: clean: remove also HTML dir
-
-2003-09-12 17:02  maan
-
-       * Makefile, README: minor cleanups
-
-2003-09-12 16:51  maan
-
-       * dbtool.conf.sample: former icc_dbtool.conf.sample
-
-2003-09-12 16:51  maan
-
-       * icc_dbtool.conf.sample: rename to dbtool.conf.sample
-
-2003-09-12 16:50  maan
-
-       * server.conf.sample: former icc_server.conf.sample
-
-2003-09-12 16:49  maan
-
-       * icc_server.conf.sample: rename to server.conf.sample
-
-2003-09-12 16:48  maan
-
-       * icc_server.c: documentation cleanups
-
-2003-09-12 16:47  maan
-
-       * README.dbtool: comment new sa syntax
-
-2003-09-12 16:47  maan
-
-       * README: update
-
-2003-09-11 03:04  maan
-
-       * icc_server.c: use /dev/urandom to create random numbers
-
-2003-09-11 02:03  maan
-
-       * icc_server.c: cosmetics
-
-2003-09-11 01:53  maan
-
-       * command.c, icc_server.c: minor simplifyings/cleanups/log message
-         fixes
-
-2003-09-11 01:53  maan
-
-       * Makefile: change icc_bash_completion to bash_completion
-
-2003-09-11 01:25  maan
-
-       * bash_completion: former icc_bash_completion
-
-2003-09-11 01:25  maan
-
-       * icc_bash_completion: rename to bash_completion
-
-2003-09-11 01:24  maan
-
-       * icc_server.c, net.c: send_buffer: dont send nullbytes
-
-2003-09-11 01:24  maan
-
-       * icc_bash_completion: cosmetics
-
-2003-09-11 01:08  maan
-
-       * icc_server.c, net.c: modify init_sockaddr to suit needs of both
-         client and server
-
-2003-09-10 22:18  maan
-
-       * icc_bash_completion: adapt to new sa syntax
-
-2003-09-10 03:49  maan
-
-       * icc_dbtool.c: sa syntax conflixted with gengetopt. Fix that.
-
-2003-09-10 02:04  maan
-
-       * icc.h, icc_server.c, net.c: new function: do_accept
-
-2003-09-10 01:36  maan
-
-       * icc_server.c: new function handle_connect to reduce size of main
-
-2003-09-10 01:14  maan
-
-       * icc_server.c: decrease verbosity and avoid buffer overflow
-
-2003-09-10 00:39  maan
-
-       * net.c: fix silly bug
-
-2003-09-10 00:39  maan
-
-       * icc_server.c: use recv_buffer function from net.c
-
-2003-09-09 23:01  maan
-
-       * icc_server.c: daemon_init: reverse return value
-
-2003-09-09 21:48  maan
-
-       * afs.c, icc_server.c, init_afs.c, server.ggo, server.h: make hup
-         work again
-
-2003-09-09 17:17  maan
-
-       * sdl_gui.c: adapt to new syntax of check_buf_for_items
-
-2003-09-09 17:16  maan
-
-       * icc_gui.c: use check_buf_for_items whenever possible
-
-2003-09-09 17:14  maan
-
-       * icc.h: update check_buf_for_items()
-
-2003-09-09 17:13  maan
-
-       * gui_common.c: make check_buf_for_items work again...
-
-2003-09-09 17:12  maan
-
-       * command.c: afs_cmd_handler: write terminiating null byte
-
-2003-09-09 04:43  maan
-
-       * icc_gui.c, icc_server.c: some small cleanups
-
-2003-09-09 04:43  maan
-
-       * NEWS: update
-
-2003-09-09 04:04  maan
-
-       * icc_server.c: many small cleanups
-
-2003-09-09 03:27  maan
-
-       * icc_server.c: nuke unneded functions
-
-2003-09-09 03:23  maan
-
-       * server.ggo: gengetopt file for server
-
-2003-09-09 03:21  maan
-
-       * afs.c, icc_server.c, init_afs.c, server.h: switch to gengetopt
-
-2003-09-09 01:41  maan
-
-       * Makefile, afs.c, command.c, icc_server.c, init_afs.c: include
-         server.h instead of icc.h
-
-2003-09-09 01:41  maan
-
-       * icc.h: move server specific parts to server.h
-
-2003-09-09 01:40  maan
-
-       * server.h: server part of icc.h
-
-2003-09-09 01:16  maan
-
-       * Makefile: server: compile server.cmdline.c
-
-2003-09-09 00:43  maan
-
-       * Makefile: remove .c,.h files generated by gengetopt on distclean
-
-2003-09-09 00:33  maan
-
-       * client.conf.sample: former icc_client.conf.sample
-
-2003-09-09 00:33  maan
-
-       * icc_client.conf.sample: renamed to client.conf.sample
-
-2003-09-09 00:19  maan
-
-       * icc_client.c: setlinebuf is no longer needed
-
-2003-09-09 00:19  maan
-
-       * Makefile, icc.h, icc_gui.c, sdl_gui.c: use new gui_common
-
-2003-09-09 00:17  maan
-
-       * gui_common.c: common functions for sdl_gui and ncurses gui
-
-2003-09-08 23:16  maan
-
-       * icc_gui.c: make it work even when stat output contains null bytes
-
-2003-09-08 20:56  maan
-
-       * Makefile: filter out gengetopts c files from sources
-
-2003-09-08 20:42  maan
-
-       * sdl_gui.conf.sample: former icc_sdl_gui.conf.sample
-
-2003-09-08 20:41  maan
-
-       * icc_sdl_gui.conf.sample: rename to sdl_gui.conf.sample
-
-2003-09-08 20:40  maan
-
-       * Makefile, sdl_gui.c, sdl_gui.ggo: use sdl_gui.cmdline.c instead
-         of sdl_gui_cmdline.c, same for .h
-
-2003-09-08 20:35  maan
-
-       * client.ggo: gengetopt file for client
-
-2003-09-08 20:24  maan
-
-       * Makefile, command.c, icc.h: server: use net.c
-
-2003-09-08 20:17  maan
-
-       * net.c: new file, contains networking routines
-
-2003-09-08 20:16  maan
-
-       * Makefile, icc.h, icc_client.c: icc_client: use gengetopt and new
-         net.c
-
-2003-09-08 20:16  maan
-
-       * sdl_gui.c: typo
-
-2003-09-08 03:20  maan
-
-       * Makefile: remove version.h on distclean
-
-2003-09-08 03:15  maan
-
-       * icc_sdl_gui.conf.sample: sample configuration for sdl_gui
-
-2003-09-08 03:08  maan
-
-       * Makefile, sdl_gui.c: switch to gengetopts for sdl_gui
-
-2003-09-08 03:07  maan
-
-       * icc_dbtool.c: cosmetics
-
-2003-09-08 02:43  maan
-
-       * sdl_gui.ggo: gengetopt file for sdl_gui
-
-2003-09-07 21:30  maan
-
-       * NEWS: update
-
-2003-09-07 21:05  maan
-
-       * command.c, icc_server.c: cosmetics
-
-2003-09-07 20:42  maan
-
-       * command.c: cosmetics
-
-2003-09-07 20:25  maan
-
-       * command.c, icc.h, icc_server.c: nuke mmd->handler, rename
-         mmd->handler_fct to mmd->handler
-
-2003-09-07 20:10  maan
-
-       * command.c, icc.h, icc_server.c: nuke handle_cmd function since
-         all commands a now directly called via function pointers
-
-2003-09-07 18:41  maan
-
-       * command.c: use function pointers to execute internal commands
-
-2003-09-07 18:06  maan
-
-       * command.c, icc.h, icc_server.c: major lcl cleanup
-
-2003-09-07 15:43  maan
-
-       * command.c: simplify struct linked_cmd_list
-
-2003-09-07 15:16  maan
-
-       * command.c, icc.h: reordering of functions
-
-2003-09-07 14:37  maan
-
-       * icc_server.c, init_afs.c: logic was reversed in handle_sighup
-
-2003-09-07 14:34  maan
-
-       * command.c: own function for each internal command
-
-2003-09-07 05:56  maan
-
-       * afs.c, command.c, icc.h, icc_server.c, init_afs.c: major function
-         arguments cleanup
-
-2003-09-07 01:31  maan
-
-       * command.c, icc.h, icc_server.c, init_afs.c: move afs_server_pipe
-         and server_afs_pipe to mmd
-
-2003-09-07 00:59  maan
-
-       * command.c: C99 struct initializers
-
-2003-09-07 00:19  maan
-
-       * command.c: fix potential buffer overflow in compute_status
-
-2003-09-07 00:04  maan
-
-       * command.c: use static functions whenever possible
-
-2003-09-06 23:42  maan
-
-       * command.c: comment out unused lcl_log_list, cosmetics
-
-2003-09-06 23:29  maan
-
-       * command.c: change return type for lcl_del from int to void
-
-2003-09-06 23:17  maan
-
-       * command.c: fix potential buffer overflow, change return value of
-         lcl_add to void
-
-2003-09-06 23:02  maan
-
-       * command.c: cleanup crappy cmd_handler_itohuman
-
-2003-09-06 22:50  maan
-
-       * command.c: fix potential buffer overflow
-
-2003-09-06 22:43  maan
-
-       * command.c: cosmetics
-
-2003-09-06 22:40  maan
-
-       * command.c, icc.h, icc_server.c: handle_cmd doesnt need argument
-         mmd
-
-2003-09-06 22:35  maan
-
-       * afs.c: rename bear_server_pipe to afs_server_pipe
-
-2003-09-06 22:23  maan
-
-       * icc_server.c: rename cb_fd to afs_server_pipe
-
-2003-09-06 22:20  maan
-
-       * icc_server.c: cleanup crappy istrue function
-
-2003-09-06 20:37  maan
-
-       * afs.c, icc_server.c: cosmetics
-
-2003-09-06 20:32  maan
-
-       * afs.c: cosmetics
-
-2003-09-06 20:25  maan
-
-       * icc_server.c, afs.c, command.c, icc.h, init_afs.c: no need to
-         pass mmd via functions, it is an exported variable
-
-2003-09-06 20:07  maan
-
-       * icc_server.c: no need to pass mmd to handle_sighup
-
-2003-09-06 20:03  maan
-
-       * icc_server.c: use static functions whenever possible
-
-2003-09-06 19:52  maan
-
-       * icc_server.c: read_config: doesnt need return value, exit on
-         errors instead
-
-2003-09-06 19:45  maan
-
-       * icc_server.c: reverse logic after fork to have nicer idents
-
-2003-09-06 19:36  maan
-
-       * icc_server.c: minor cleanups
-
-2003-09-06 19:04  maan
-
-       * icc_server.c: handle_sighup doesnt need command line options
-
-2003-09-06 18:45  maan
-
-       * icc_server.c: read_config: close config file unconditionally
-
-2003-09-06 18:35  maan
-
-       * icc_server.c: read_config: close config file
-
-2003-09-06 18:29  maan
-
-       * icc.h: cmd_perms_itohuman doesnt need return value
-
-2003-09-06 18:25  maan
-
-       * icc_server.c, command.c: cmd_perms_itohuman doesnt need return
-         value
-
-2003-09-06 18:22  maan
-
-       * icc_server.c: fix potential buffer overflow, change challenge_nr
-         and chall_response to long unsigned
-
-2003-09-06 18:13  maan
-
-       * icc_server.c: indent main function
-
-2003-09-06 18:00  maan
-
-       * icc_server.c: C99 struct initializers
-
-2003-09-06 17:54  maan
-
-       * icc_server.c: simplify signal handling
-
-2003-09-06 16:47  maan
-
-       * icc_server.c: fix potential buffer overflow in encrypt
-
-2003-09-06 16:44  maan
-
-       * icc_server.c: fix potential buffer overflow in uptime_str
-
-2003-09-06 16:19  maan
-
-       * command.c, icc.h, icc_server.c: fix pidlist locking (I hope)
-
-2003-09-06 15:31  maan
-
-       * icc_server.c: use EXIT_FAILURE/EXIT_SUCCESS in exit()
-
-2003-09-06 15:26  maan
-
-       * icc_server.c: change int pid_list_add to void pid_list_add, same
-         with pid_list_unlock
-
-2003-09-06 15:07  maan
-
-       * icc_server.c: use size_t instead of int in set_conf()
-
-2003-09-06 15:06  maan
-
-       * afs.c: change int read_n_exec() to void read_n_exec()
-
-2003-09-06 14:45  maan
-
-       * afs.c: fix memory leak in mp3_info
-
-2003-09-06 14:00  maan
-
-       * afs.c, icc.h, icc_server.c: fix some minor bugs found by splint
-
-2003-09-06 13:11  maan
-
-       * icc.h: remove TRUE and FALSE
-
-2003-09-06 13:10  maan
-
-       * icc_gui.c: documentation update
-
-2003-09-06 13:10  maan
-
-       * icc_client.c: coding style
-
-2003-09-03 01:17  maan
-
-       * icc_client.c: still more coding style
-
-2003-09-02 23:45  maan
-
-       * icc_client.c: further coding style issues
-
-2003-09-02 23:17  maan
-
-       * icc_client.c: coding style cleanup
-
-2003-09-02 04:03  maan
-
-       * afs.c, icc_client.c: remove TRUE and FALSE
-
-2003-09-02 03:40  maan
-
-       * icc_client.c: indent main function
-
-2003-08-30 20:02  maan
-
-       * icc_gui.c: fix compile warning, change SNOOZE to 540 seconds
-
-2003-08-30 17:51  maan
-
-       * icc_dbtool.c: piclist now shows length of jpg files
-
-2003-08-30 17:18  maan
-
-       * VERSION: bump version number to 96
-
-2003-08-30 17:08  maan
-
-       * NEWS: update
-
-2003-08-30 17:06  maan
-
-       * icc_dbtool.c: vrfy/clean also checks for invalid pic pointers
-
-2003-08-30 16:13  maan
-
-       * icc_gui.c: update upper window also when fading volume
-
-2003-08-30 05:54  maan
-
-       * icc_dbtool.c: add some dokumentation
-
-2003-08-30 05:32  maan
-
-       * icc_dbtool.c: make picdel work when more than one id is given
-
-2003-08-30 05:26  maan
-
-       * icc_dbtool.c: simplify picadd
-
-2003-08-30 05:12  maan
-
-       * icc_dbtool.c: new command: picch, new function:
-         binfile2escaped_string
-
-2003-08-30 03:31  maan
-
-       * icc_dbtool.c: new command: picdel
-
-2003-08-30 01:40  maan
-
-       * sdl_gui.c: close icc pic pipes, default to pic mode, simplify
-         update_pic
-
-2003-08-30 01:37  maan
-
-       * icc_dbtool.c: new command: picass, new functions: get_very_last,
-         get_pic_id_by_name
-
-2003-08-30 01:33  maan
-
-       * command.c: simplify pic
-
-2003-08-29 22:14  maan
-
-       * icc_dbtool.c: new commands: picadd and piclist
-
-2003-08-29 17:18  maan
-
-       * Makefile: add fonts and pics to tgz
-
-2003-08-29 17:06  maan
-
-       * fonts/24P_Arial_Blue.png, fonts/24P_Arial_Metallic_Yellow.png,
-         fonts/24P_Arial_NeonBlue.png, fonts/24P_Arial_NeonYellow.png,
-         fonts/24P_Copperplate_Blue.png, pics/default.jpg,
-         pics/no_pics.jpg: initial import
-
-2003-08-29 17:04  maan
-
-       * sdl_gui.c: use icc_client pic to obtain the picture, new command
-         line option: pic
-
-2003-08-29 17:02  maan
-
-       * icc_server.c: lcl_init needs to know mmd to set dbtool_has_pic
-
-2003-08-29 17:01  maan
-
-       * icc_dbtool.sample: make it work again...
-
-2003-08-29 17:00  maan
-
-       * icc_dbtool.c: add preliminary pic command
-
-2003-08-29 16:59  maan
-
-       * icc_client.c: use write instead of printf to print output
-
-2003-08-29 16:58  maan
-
-       * icc.h: add dbtool_has_pic to mmd
-
-2003-08-29 16:58  maan
-
-       * command.c: add pic command, introduce send_bin_buffer to transfer
-         binary data
-
-2003-08-29 16:54  maan
-
-       * Makefile: install also fonts and pics
-
-2003-08-28 04:05  maan
-
-       * icc_dbtool.c: implement recursive permutation generator
-
-2003-08-28 00:20  maan
-
-       * sdl_gui.c: documentation update
-
-2003-08-25 05:01  maan
-
-       * sdl_gui.c: many small cleanups
-
-2003-08-25 00:37  maan
-
-       * sdl_gui.c: poll all events, not only one
-
-2003-08-24 23:19  maan
-
-       * sdl_gui.c: nuke shm crap
-
-2003-08-24 23:05  maan
-
-       * sdl_gui.c: use select instead of fork
-
-2003-08-24 19:42  maan
-
-       * sdl_gui.c: implement basic picture viewing
-
-2003-08-22 14:20  maan
-
-       * icc_gui.c: fix silly snooze bug
-
-2003-08-21 22:10  maan
-
-       * NEWS: add 'fix long outstanding case sensitivity bug'
-
-2003-08-21 22:09  maan
-
-       * README.dbtool: document binary format for initial creation
-
-2003-08-21 21:38  maan
-
-       * icc_dbtool.c: fix long outstanding case sensitivity bug
-
-2003-08-21 04:20  maan
-
-       * README: update
-
-2003-08-19 03:26  maan
-
-       * NEWS: update
-
-2003-08-19 03:14  maan
-
-       * icc_gui.c: small cleanups
-
-2003-08-19 03:13  maan
-
-       * icc_dbtool.c: vrfy/clean: check/replace NULL values in attributes
-
-2003-08-19 01:21  maan
-
-       * icc_dbtool.c: na: Create NOT NULL columns
-
-2003-08-18 06:02  maan
-
-       * icc_gui.c: do_select: implement getstr mode and timeout in getch
-         mode. Avoid remaining memory leaks
-
-2003-08-18 02:18  maan
-
-       * icc_gui.c: new fucntion: do_select. Fix memory leak while in
-         scroll mode
-
-2003-08-17 20:46  maan
-
-       * icc_gui.c: remove unneeded header includes
-
-2003-08-17 20:12  maan
-
-       * icc_gui.c: fix bug: some lines of stat's output could be missed
-
-2003-08-17 19:53  maan
-
-       * icc_gui.c: add new commands J, K
-
-2003-08-17 04:46  maan
-
-       * icc_gui.c: add comments on new functions
-
-2003-08-17 04:24  maan
-
-       * icc_gui.c: add past command
-
-2003-08-17 04:00  maan
-
-       * icc_gui.c: more status and error messages
-
-2003-08-17 02:06  maan
-
-       * icc_gui.c: reduce minimal top lines to 8
-
-2003-08-17 01:57  maan
-
-       * icc_gui.c: add f command, nicify help output
-
-2003-08-16 22:57  maan
-
-       * icc_gui.c: implement scrolling, fix sigint handling
-
-2003-08-16 21:34  maan
-
-       * icc_gui.c: implement '!' prefix for commands
-
-2003-08-16 21:11  maan
-
-       * icc_gui.c: add +/- to change size of top/bottom windows
-
-2003-08-16 18:14  maan
-
-       * icc_gui.c: add separator, add input window
-
-2003-08-16 17:30  maan
-
-       * icc_gui.c: kill fake shm struct, fix winch handling
-
-2003-08-16 17:08  maan
-
-       * icc_gui.c: kill shared mem crap, fix ':' command
-
-2003-08-16 16:15  maan
-
-       * icc_gui.c: major improvements, use select instead of fork, use
-         two windows
-
-2003-08-15 03:44  maan
-
-       * icc_gui.c: copy LINES and COLS to shm
-
-2003-08-15 03:25  maan
-
-       * icc_gui.c: use semaphore locking
-
-2003-08-14 23:35  maan
-
-       * icc_gui.c: fix potential buffer overflow in print_item
-
-2003-08-14 23:14  maan
-
-       * icc_gui.c: new function: handle_command
-
-2003-08-14 23:05  maan
-
-       * icc_gui.c: cleanup signal handling and shared mem init
-
-2003-08-14 22:50  maan
-
-       * icc_gui.c: new sigchld handler. Check which child has died
-
-2003-08-14 22:37  maan
-
-       * icc_gui.c: remove useless SIGTSTP handler, some small cleanups
-
-2003-08-14 22:18  maan
-
-       * icc_gui.c: exit gracefully and let the terminal intact
-
-2003-08-14 21:57  maan
-
-       * icc_gui.c:
-         use shmXXX instead of mmap to get shared memory area. Works with
-         2.2 kernels.
-
-         new variable: shm->winch to distinguish between winch and status
-         bar updates. So endwin is only called on winch events.
-
-         new function: print welcome. This is used by parent.
-
-2003-08-10 23:25  maan
-
-       * icc_dbtool.c: na: use default value 0 instead of NULL
-
-2003-07-28 04:27  maan
-
-       * icc_gui.c: fix memory leak, notice when invalid key is pressed
-
-2003-07-27 16:19  maan
-
-       * icc_gui.c: don't update status bar in interrupt handler
-
-2003-07-27 06:04  maan
-
-       * NEWS: add old news for 0.0.93 and some recent news
-
-2003-07-27 05:39  maan
-
-       * icc_gui.c: remove definition of row since this is now a comupted
-         value
-
-2003-07-27 05:13  maan
-
-       * icc_gui.c: make it work with 60x10 terminals, add dokumentation
-
-2003-07-27 04:14  maan
-
-       * icc_gui.c: modify transform vol slightly
-
-2003-07-27 04:10  maan
-
-       * icc_gui.c: kill unneeded print_help function
-
-2003-07-27 04:09  maan
-
-       * icc_gui.c: new command: help
-
-2003-07-27 03:38  maan
-
-       * icc_gui.c: adapt also lines to varying window size. Many small
-         cleanups and fixes
-
-2003-07-27 02:10  maan
-
-       * icc_gui.c: update status bar in sigwinch
-
-2003-07-27 01:52  maan
-
-       * icc_gui.c: make it respect varying window sizes
-
-2003-07-26 20:59  maan
-
-       * icc_gui.c: test window geometry and exit if too narrow
-
-2003-07-17 03:34  maan
-
-       * icc_dbtool.c: print_results: avoid trailing whitespace. Some
-         typos
-
-2003-07-13 02:35  maan
-
-       * Makefile: cleanup, introduce variables CC_FLAGS LD_FLAGS
-         SDL_INCLUDES MYSQL_INCLUDES
-
-2003-07-12 17:55  maan
-
-       * README.dbtool: add mysql commands for creating the tables data
-         and dir
-
-2003-07-09 02:28  maan
-
-       * icc_dbtool.c: more documentation, cosmetics
-
-2003-07-09 01:57  maan
-
-       * README.dbtool: replace LASTPLAYED by LASTPLAYED(). Same with
-         NUMPLAYED. Small cleanups
-
-2003-07-09 01:45  maan
-
-       * Makefile: clean: remove icc_dbtool
-
-2003-07-09 01:41  maan
-
-       * Makefile: nuke make_streams
-
-2003-07-09 01:40  maan
-
-       * make_streams: now implemented in icc_dbtool.c
-
-2003-07-08 23:12  maan
-
-       * icc_dbtool.c: fut: implement parsing functions for new
-         streams_def syntax
-
-2003-07-08 22:30  maan
-
-       * icc_dbtool.c: nuke randomize function which is no longer needed
-
-2003-07-08 22:29  maan
-
-       * icc_dbtool.c: streams: adapt to new syntax, change default
-         filename from streams to stream_defs
-
-2003-06-30 05:03  maan
-
-       * Makefile: icc_server depends on mp3info.h
-
-2003-06-30 04:57  maan
-
-       * Makefile: icc_sdl_gui depends on SFont.c
-
-2003-06-30 04:56  maan
-
-       * SFont.c: comment out unused functions
-
-2003-06-30 04:40  maan
-
-       * SFont.c: indent to kr style
-
-2003-06-30 04:34  maan
-
-       * SFont.c: add GPL header
-
-2003-06-29 22:05  maan
-
-       * INSTALL, README: change icc_dbtool.template to icc_dbtool.sample
-
-2003-06-29 22:04  maan
-
-       * Makefile: major cleanup and bugfixes
-
-2003-06-29 21:17  maan
-
-       * icc_dbtool.sample: former icc_dbtool.template
-
-2003-06-29 21:16  maan
-
-       * icc_dbtool.template: moved to icc_dbtool.sample
-
-2003-06-29 21:01  maan
-
-       * Makefile: Use cvs status to determine if local copy is up to date
-
-2003-06-29 19:44  maan
-
-       * VERSION: bump version number to 95
-
-2003-06-29 19:39  maan
-
-       * Makefile: install: also install make_streams
-
-2003-06-29 19:39  maan
-
-       * make_streams: bash script to produce the streams configuration
-         file
-
-2003-06-29 19:37  maan
-
-       * README.dbtool: document new syntax of streams.in
-
-2003-06-29 18:22  maan
-
-       * 1.0: improve change ssl text
-
-2003-06-29 18:19  maan
-
-       * Makefile: add NEWS and make_streams to sources
-
-2003-06-29 18:15  maan
-
-       * NEWS: contains release notes
-
-2003-06-29 17:53  maan
-
-       * icc_server.c: cosmetics
-
-2003-06-29 17:52  maan
-
-       * icc_bash_completion: use streams command to complete cs
-
-2003-06-28 13:58  maan
-
-       * afs.c: fix small race at end of song play
-
-2003-06-28 13:44  maan
-
-       * icc_server.c: set_conf: Use const char* variables for output of
-         messages to reduce space
-
-2003-06-28 13:12  maan
-
-       * icc_server.c: call wait directly from the sigchld interupt
-         handler to avoid zombies
-
-2003-06-28 13:10  maan
-
-       * command.c: cosmetics
-
-2003-06-22 06:58  maan
-
-       * icc_dbtool.c: fix order of rows bug
-
-2003-06-22 04:18  maan
-
-       * command.c: stat: print streamname continuously
-
-2003-06-22 04:13  maan
-
-       * 1.0, icc_dbtool.c: fix bug: fut n always prints all valid songs
-         instead of only n
-
-2003-06-22 03:51  maan
-
-       * icc_gui.c, sdl_gui.c: print score
-
-2003-06-22 03:51  maan
-
-       * icc_dbtool.template: fut: print dummy score
-
-2003-06-22 03:50  maan
-
-       * command.c: stat: print score
-
-2003-06-22 03:50  maan
-
-       * afs.c: get_song: adapt to new output of fut (contains score now)
-
-2003-06-22 03:48  maan
-
-       * icc_dbtool.c: simplify fut since ~/.icc/streams contains full
-         query now
-
-2003-06-22 03:47  maan
-
-       * icc.h: add mmd.score
-
-2003-06-19 17:18  maan
-
-       * icc_bash_completion: add ca (copy attributes)
-
-2003-06-19 17:12  maan
-
-       * icc_dbtool.c: add ca (copy attributes) command
-
-2003-06-15 20:44  maan
-
-       * sdl_gui.c: major cleanup, speed improvements and debugging
-
-2003-06-15 19:16  maan
-
-       * command.c: only send full volatile status when it has changed
-
-2003-06-15 19:02  maan
-
-       * command.c: only send full status when song has changed
-
-2003-06-15 02:42  maan
-
-       * icc_dbtool.c: com_us: use basename of given argument
-
-2003-06-15 01:47  maan
-
-       * icc_dbtool.c: fix do_update_song (introduce get_numplayed)
-
-2003-06-02 00:54  maan
-
-       * icc_dbtool.c: small cleanups
-
-2003-06-02 00:01  maan
-
-       * afs.c: flush id3 tags before updating
-
-2003-06-01 23:45  maan
-
-       * icc_dbtool.c: us: increase Numplayed, info: print Numplayed,
-         get_a: fix off by one bug
-
-2003-06-01 23:06  maan
-
-       * icc_dbtool.c: get_aa: skip first _three_ rows, since third row is
-         now reserved for number of times song has been played
-
-2003-06-01 22:43  maan
-
-       * icc_dbtool.c: return is not a function!
-
-2003-06-01 22:42  maan
-
-       * icc_dbtool.c: fix return value in get_a
-
-2003-05-18 18:33  maan
-
-       * sdl_gui.c: make non-interactive mode working. Some cleanups
-
-2003-05-18 04:11  maan
-
-       * sdl_gui.c: add command line options -w -h -f -i
-
-2003-05-05 01:47  maan
-
-       * VERSION: bump version number to 94
-
-2003-05-05 01:46  maan
-
-       * Makefile: start tag name with letter to make cvs happy
-
-2003-05-05 01:45  maan
-
-       * VERSION: decrease version to 93, since make version failed
-
-2003-05-05 01:45  maan
-
-       * Makefile: use backtick expansion rather than double dollars
-
-2003-05-05 01:42  maan
-
-       * VERSION: bump version number to 94
-
-2003-05-05 01:42  maan
-
-       * VERSION: decrease version to 93, since make version failed
-
-2003-05-05 01:41  maan
-
-       * Makefile: typo that caused cvs -q tag to fail
-
-2003-05-05 01:37  maan
-
-       * VERSION: bump version number to 94
-
-2003-05-04 00:24  maan
-
-       * icc_server.c: loglevel adjustments
-
-2003-05-04 00:09  maan
-
-       * icc_server.c: minor auth cleanup
-
-2003-05-03 23:21  maan
-
-       * icc_server.c: reduce # arguments for handle_sighup
-
-2003-05-03 21:28  maan
-
-       * icc_server.c: avoid use of TRUE and FALSE (tele-tubby)
-
-2003-05-03 21:10  maan
-
-       * icc_server.c: init mmd->num_played, mmd->num_commands and
-         mmd->stream_name early
-
-2003-05-03 21:08  maan
-
-       * icc.h: reduce number of arguments to init_afs
-
-2003-05-03 21:08  maan
-
-       * init_afs.c: reduce number of arguments to init_afs, move init of
-         some sane values of mmd where they belong, comment out silly
-         PETER_B log messages
-
-2003-05-03 20:44  maan
-
-       * icc.h: add prototype for afs_status_tohuman
-
-2003-05-03 20:44  maan
-
-       * command.c: don't duplicate afs_status_tohuman, use it
-
-2003-05-03 20:30  maan
-
-       * afs.c: insert missing function descriptors
-
-2003-05-03 20:30  maan
-
-       * icc.h: init afs returns pid_t
-
-2003-05-03 20:26  maan
-
-       * icc_server.c: fix missing exit for unknown commands. Strange...
-
-2003-05-03 20:13  maan
-
-       * init_afs.c: init afs returns pid_t
-
-2003-05-03 20:11  maan
-
-       * icc.h, icc_server.c, init_afs.c: move definition of conn to
-         init_afs
-
-2003-05-03 20:01  maan
-
-       * sdl_gui.c: unicolor, proposed by christian
-
-2003-05-03 19:58  maan
-
-       * icc_server.c: first bind socket, then fork. Avoids log flodding
-         if second instance of icc_server is started
-
-2003-05-03 19:51  maan
-
-       * icc_server.c: further cosmetics
-
-2003-05-03 19:34  maan
-
-       * icc_server.c: cosmetics
-
-2003-05-03 19:30  maan
-
-       * icc_server.c: kill dead code [send(...)]
-
-2003-05-03 19:13  maan
-
-       * icc_server.c: fix nasty bug introduced by use of send_buffer:
-         strlen(buf) might not give correct length in case of encrypted
-         data
-
-2003-05-03 00:47  maan
-
-       * icc_server.c: further small cleanups
-
-2003-05-03 00:34  maan
-
-       * icc.h: add prototype for send_buffer
-
-2003-05-03 00:23  maan
-
-       * icc_server.c: cosmetics
-
-2003-05-03 00:14  maan
-
-       * icc_server.c: use send_buffer() rather than send()
-
-2003-05-02 23:53  maan
-
-       * afs.c: compute_sb_string: use basename instead of weird strchr()
-         madness
-
-2003-05-02 23:22  maan
-
-       * afs.c: replace cleanexit by clean_n_jump
-
-2003-05-02 23:02  maan
-
-       * command.c: stat: output two digits for seconds
-
-2003-05-02 23:01  maan
-
-       * icc.h: replace BUFFSIZE by CHUNK_BUFFSIZE
-
-2003-04-30 00:39  maan
-
-       * afs.c: update meta data stream regularly (adjustable in icc.h)
-
-2003-04-29 22:54  maan
-
-       * icc_dbtool.c: Comment out noisy output in upd
-
-2003-04-20 17:40  maan
-
-       * README: nuke php description, add sdl_gui description
-
-2003-04-20 17:31  maan
-
-       * sdl_gui.c: add documentation
-
-2003-04-20 17:16  maan
-
-       * sdl_gui.c: add gpl header
-
-2003-04-20 17:14  maan
-
-       * sdl_gui.c: cut length of output lines if too long
-
-2003-04-20 16:49  maan
-
-       * afs.c, command.c, icc.h, icc_gui.c, sdl_gui.c: replace mmd.misc
-         by mmd.dbinfo
-
-2003-04-20 16:30  maan
-
-       * afs.c: enumerate Â«misc:» lines for status output
-
-2003-04-20 16:28  maan
-
-       * Makefile: also install icc_sdl_gui
-
-2003-04-20 15:57  maan
-
-       * SFont.c: needed by sdl_gui
-
-2003-04-20 15:56  maan
-
-       * sdl_gui.c: The gui of death that makes you blind
-
-2003-04-20 15:55  maan
-
-       * command.c: status: print id tags
-
-2003-04-20 15:55  maan
-
-       * afs.c: cleanups
-
-2003-04-20 15:53  maan
-
-       * Makefile: new target: sdl_gui
-
-2003-04-04 02:45  maan
-
-       * icc_gui.c: show also mp3tags
-
-2003-04-04 02:25  maan
-
-       * command.c: stat: print also id3 tags
-
-2003-04-04 02:12  maan
-
-       * Makefile, afs.c, command.c, icc.h: include mp3info struct in mmd
-         and remove duplication of information in mmd
-
-2003-04-04 01:19  maan
-
-       * mp3tech.c, mp3tech.h, mp3info.h, textfunc.h: taken from mp3info
-         package
-
-2003-04-04 01:18  maan
-
-       * afs.c: Use mp3tech instead of mp3info
-
-2003-04-04 01:18  maan
-
-       * Makefile: include mp3tech
-
-2003-04-03 04:20  maan
-
-       * icc_gui.c: add c (change stream) to status bar
-
-2003-04-03 03:53  maan
-
-       * icc_dbtool.c: further cosmetics
-
-2003-04-02 22:18  maan
-
-       * icc_dbtool.c: cosmetics
-
-2003-04-02 03:19  maan
-
-       * icc_dbtool.template: Omit streams in help's output
-
-2003-04-02 03:07  maan
-
-       * README.dbtool: Improve(?) Real life eample
-
-2003-04-02 02:40  maan
-
-       * icc_server.conf.sample: use 127.0.0.1 as default icecast ip
-
-2003-04-02 02:33  maan
-
-       * icc_dbtool.template: add nec. streams command and some more
-         comments
-
-2003-03-29 18:22  maan
-
-       * command.c, icc_gui.c: new command: ns (next stream)
-
-2003-03-29 17:37  maan
-
-       * command.c, icc_dbtool.c, icc_gui.c: info: print default text if
-         no attributes set or lastplayed=NULL
-
-2003-03-29 02:12  maan
-
-       * INSTALL, README: linguistic improvements (I hope)
-
-2003-03-29 00:43  maan
-
-       * VERSION: bump version number to 93
-
-2003-03-29 00:43  maan
-
-       * Makefile: add xmms-patch to sources
-
-2003-03-29 00:40  maan
-
-       * xmms-1.2.7.titlebar_vbr_patch: patch for xmms-1.2.7 to fix title
-         display for mp3s with vbr
-
-2003-03-29 00:32  maan
-
-       * afs.c, command.c: nicify afs status output
-
-2003-03-28 05:18  maan
-
-       * icc_gui.c: statusbar improvements
-
-2003-03-28 05:05  maan
-
-       * icc_gui.c: major optic overhowl. I like it colored
-
-2003-03-28 00:06  maan
-
-       * icc_gui.c: print also current stream
-
-2003-03-28 00:05  maan
-
-       * command.c: stat: print name of current stream
-
-2003-03-28 00:04  maan
-
-       * afs.c: cleanups
-
-2003-03-18 02:29  maan
-
-       * icc_gui.c: use linux/soundcard.h to set volume directly
-
-2003-03-17 22:29  maan
-
-       * icc_gui.c: cosmetics
-
-2003-03-17 22:22  maan
-
-       * icc_gui.c: additional delay for command '-'
-
-2003-03-17 22:18  maan
-
-       * init_afs.c: loglevel adjustments
-
-2003-03-17 22:17  maan
-
-       * icc_server.c: log: print server if mmd not yet defined
-
-2003-03-17 05:10  maan
-
-       * afs.c, icc_server.c: adjust some loglevels
-
-2003-03-17 02:16  maan
-
-       * command.c, icc.h, icc_server.c, init_afs.c: use semaphor-locking
-         to serialize access to server-afs pipes
-
-2003-03-17 01:19  maan
-
-       * init_afs.c: kill processgroup if afs dies
-
-2003-03-12 22:22  maan
-
-       * icc.h: add prototypes for pid_list_lock, pid_list_unlock
-
-2003-03-12 22:21  maan
-
-       * command.c: uptime: lock pid_list before accessing
-
-2003-03-12 21:51  maan
-
-       * icc_server.c: add semaphor locking for pid_list. Fix several bugs
-         causing corrupt pid_list
-
-2003-03-12 21:50  maan
-
-       * icc.h: add server and afs pids to mmd struct, split macro LICENSE
-
-2003-03-12 21:48  maan
-
-       * command.c: fix typo
-
-2003-03-11 00:43  maan
-
-       * afs.c, command.c, icc_server.c: forgotten cleanups
-
-2003-02-23 18:06  maan
-
-       * icc.h, icc_server.c: new loglevel: VERBOSE
-
-2003-02-23 16:54  maan
-
-       * icc_server.c: fix permission bug (commands were executed even if
-         permissions are not suff.)
-
-2003-02-23 16:46  maan
-
-       * Makefile: Change icebear.c and init_icebear.c to afs
-
-2003-02-23 16:45  maan
-
-       * init_afs.c: new, former init_icebear.c
-
-2003-02-23 16:44  maan
-
-       * init_icebear.c: renamed to init_afs.c
-
-2003-02-23 16:40  maan
-
-       * afs.c: new file, former icebear.c
-
-2003-02-23 16:39  maan
-
-       * icebear.c: will be renamed to afs.c
-
-2003-02-23 16:35  maan
-
-       * command.c, icc.h, icc_dbtool.c, icc_server.c, icebear.c: change
-         rest of occurences of icebear to afs
-
-2003-02-23 16:18  maan
-
-       * icc.h, icebear.c, init_icebear.c: change icebear function to afs
-
-2003-02-23 16:12  maan
-
-       * command.c, icc.h, icc_server.c, icebear.c, init_icebear.c: change
-         icebear_init to afs_init
-
-2003-02-23 15:57  maan
-
-       * INSTALL, command.c, icc.h, icc_server.c, icc_server.conf.sample,
-         icebear.c: change ICEBEAR to AFS
-
-2003-02-23 15:47  maan
-
-       * icc_dbtool.c, icebear.c: cosmetics
-
-2003-02-23 03:31  maan
-
-       * command.c: cosmetics
-
-2003-02-23 03:20  maan
-
-       * command.c, icc.h: change ICEBEAR_HANDLER to AFS_HANDLER
-
-2003-02-23 03:08  maan
-
-       * icc_server.c: cosmetics
-
-2003-02-23 03:00  maan
-
-       * command.c, icc.h, icc_server.c: replace icc_server: by server:
-
-2003-02-23 02:45  maan
-
-       * icebear.c: comment out unneeded signal handler code
-
-2003-02-23 02:17  maan
-
-       * icc_server.c: Fix bug: become deamon *before* we record our pid.
-
-2003-02-23 02:07  maan
-
-       * icc_server.c: make version the first line that is printed out
-
-2003-02-23 01:05  maan
-
-       * icebear.c: logical simplifications
-
-2003-02-23 00:34  maan
-
-       * icebear.c: new function: send_chunk. Many cleanups
-
-2003-02-22 23:01  maan
-
-       * icebear.c: new functions: get_song and compute_sb_string
-
-2003-02-22 22:51  maan
-
-       * icebear.c: new functions: get_song and compute_sb_string
-
-2003-02-22 21:56  maan
-
-       * icebear.c: cosmetics
-
-2003-02-22 21:46  maan
-
-       * icebear.c: only send metadata stream once
-
-2003-02-22 21:36  maan
-
-       * icebear.c: clear buffer before reading
-
-2003-02-18 01:48  maan
-
-       * icc_gui.c: thinko: add break statements
-
-2003-02-18 01:30  maan
-
-       * command.c: add comment
-
-2003-02-18 01:29  maan
-
-       * icc_gui.c: use case instead of ifs
-
-2003-02-18 00:34  maan
-
-       * command.c: comment out obsolete check for icebear_fd
-
-2003-02-18 00:32  maan
-
-       * icc_server.c: log pid of current process
-
-2003-02-17 23:43  maan
-
-       * init_icebear.c: cosmetics
-
-2003-02-17 23:30  maan
-
-       * icc_server.c: cosmetics
-
-2003-02-17 23:29  maan
-
-       * icc.h: add struct pid_list and macro FOR_EACH_PROC from server
-
-2003-02-17 23:27  maan
-
-       * command.c: uptime: add pid of chilren in output
-
-2003-02-17 03:47  maan
-
-       * icc_server.c: sigchd handler: Wait not only for one child. There
-         may be more...
-
-2003-02-17 02:36  maan
-
-       * icebear.c: make it terminate if read fails and ppid == 1
-
-2003-02-11 03:04  maan
-
-       * icc_gui.c: major cleanup. Wow, is that crappy
-
-2003-02-11 00:35  maan
-
-       * command.c, icc.h, icc_server.c, icebear.c: implement pid list to
-         keep track of children. Needed for hup since kill(0,sighup)
-         doesnt work in daemon mode
-
-2003-02-10 01:53  maan
-
-       * icc_server.c: cosmetics
-
-2003-02-10 01:51  maan
-
-       * icc_dbtool.template: add -print to find command, documentation
-         update
-
-2003-02-10 01:50  maan
-
-       * icc_dbtool.c: remove obsolete ass command
-
-2003-02-10 00:55  maan
-
-       * command.c, icc_server.c: new function send_buffer
-
-2003-02-10 00:04  maan
-
-       * command.c: new command: hup
-
-2003-02-09 23:33  maan
-
-       * icc.h, icc_server.c, icebear.c: handle sighup correctly (all
-         children have to reload log file)
-
-2003-02-09 18:30  maan
-
-       * icc.h, icc_server.c, icebear.c, init_icebear.c: reduce use of
-         global variables. Extend mmd and put info there instead
-
-2003-02-09 15:58  maan
-
-       * icc_server.c: print plural form correctly in uptime
-
-2003-02-09 15:46  maan
-
-       * icc_server.c: cosmetics
-
-2003-02-09 01:55  maan
-
-       * command.c: further cosmetics
-
-2003-02-09 01:18  maan
-
-       * command.c: cosmetics
-
-2003-02-08 23:16  maan
-
-       * icc_client.c: cosmetics
-
-2003-01-11 16:30  maan
-
-       * VERSION, icc_dbtool.c, icc_gui.c, icebear.c, init_icebear.c:
-         change 2002 to 2003
-
-2003-01-11 16:28  maan
-
-       * icc_client.c, icc_server.c: cleanup. use new macros LICENSE and
-         COPYRIGHT
-
-2003-01-11 16:27  maan
-
-       * icc.h: add macros COPYRIGHT, LICENSE
-
-2003-01-11 16:26  maan
-
-       * command.c: minor cleanups
-
-2003-01-11 16:24  maan
-
-       * README.dbtool: fix some misprints
-
-2003-01-11 16:23  maan
-
-       * README:
-         Minor clarifications
-
-2002-12-23 22:26  maan
-
-       * icebear.c: cosmetic cleanup
-
-2002-12-23 22:20  maan
-
-       * icc_server.c: cosmetic cleanups
-
-2002-12-23 22:15  maan
-
-       * icebear.c: set icc version in init_shout
-
-2002-12-15 23:11  maan
-
-       * Makefile: commit change of version number on target version
-         before calling cvs tag
-
-2002-12-15 23:04  maan
-
-       * Makefile: version now implies distclean
-
-2002-12-15 22:56  maan
-
-       * Makefile: enable cvs tagging
-
-2002-12-15 22:53  maan
-
-       * Makefile: prepare for cvs tagging
-
-2002-12-15 22:49  maan
-
-       * Makefile: fix version (no more tdl), new target: update
-
-2002-12-15 22:37  maan
-
-       * Makefile: tgz no longer implies version
-
-2002-12-15 21:20  maan
-
-       * icebear.c: minor cleanups
-
-2002-12-15 21:04  maan
-
-       * icc_server.c: remove unneeded comments
-
-2002-12-15 20:55  maan
-
-       * icc_server.c, icebear.c: move (parts of) initialization of conn
-         fromicebear to server
-
-2002-12-15 20:11  maan
-
-       * icc_server.c: minor code cleanup,  add documentation bits
-
-2002-12-15 18:05  maan
-
-       * INSTALL, icebear.c: icc_dbtool is no longer a script. Fix
-         accordingly
-
-2002-12-15 14:28  maan
-
-       * icc_server.c: cosmetic cleanup
-
-2002-12-14 21:51  maan
-
-       * icc.h, icebear.c: use new mmd.mdst (meta data stream text) to
-         display meta data
-
-2002-12-14 02:51  maan
-
-       * icebear.c: new function: update_mmd
-
-2002-12-14 02:02  maan
-
-       * 1.0, icebear.c: preparation for movement of large parts in
-         icebear to extra function
-
-2002-12-14 01:03  maan
-
-       * icebear.c: minor code cleanup
-
-2002-12-14 00:10  maan
-
-       * icebear.c: use icecast meta data streaming
-
-2002-12-13 22:53  maan
-
-       * icc_dbtool.c: remove #include <libgen.h>
-
-2002-12-13 22:50  maan
-
-       * icc.h: add documentation
-
-2002-12-12 23:23  maan
-
-       * icc_client.c: better ERROR logging
-
-2002-12-08 03:11  maan
-
-       * command.c: code cleanup
-
-2002-12-08 02:54  maan
-
-       * command.c: fix cs in case invalid stream name is given
-
-2002-12-01 01:47  maan
-
-       * icc_dbtool.c: unlink tempfile _after_ closing
-
-2002-12-01 00:55  maan
-
-       * command.c, icc.h, icc_client.c, icc_dbtool.c, icc_gui.c,
-         icc_server.c, init_icebear.c: add Keyword Expansion
-
-2002-12-01 00:48  maan
-
-       * .changelog_before_cvs: self explanatory
-
-2002-12-01 00:46  maan
-
-       * Makefile: New Changelog Format with cvs2cl
-
-2002-12-01 00:19  maan
-
-       * icebear.c: add Keyword Expansion
-
-2002-12-01 00:09  maan
-
-       * .tdldb, 1.0, COPYING, GPL, INSTALL, Makefile, README,
-         README.dbtool, VERSION, command.c, icc.h, icc_bash_completion,
-         icc_client.c, icc_client.conf.sample, icc_dbtool.c,
-         icc_dbtool.conf.sample, icc_dbtool.template, icc_gui.c,
-         icc_server.c, icc_server.conf.sample, icebear.c,
-         icecast.conf.sample, init_icebear.c: Initial revision
-
-2002-12-01 00:09  maan
-
-       * .tdldb, 1.0, COPYING, GPL, INSTALL, Makefile, README,
-         README.dbtool, VERSION, command.c, icc.h, icc_bash_completion,
-         icc_client.c, icc_client.conf.sample, icc_dbtool.c,
-         icc_dbtool.conf.sample, icc_dbtool.template, icc_gui.c,
-         icc_server.c, icc_server.conf.sample, icebear.c,
-         icecast.conf.sample, init_icebear.c: initial import into cvs
-
index 04d8f32621edd1426e2651aab711dd11516d9080..00cb6cc905af69531136fbf06b03e9ee1052b072 100644 (file)
--- a/Doxyfile
+++ b/Doxyfile
@@ -622,7 +622,6 @@ EXCLUDE_PATTERNS       = *.cmdline.* \
                          gui* \
                          gcc-compat.h \
                          fade.c \
-                         config.h \
                        *_command_list.h \
                        *_completion.h
 
@@ -1267,7 +1266,7 @@ ENABLE_PREPROCESSING   = YES
 # compilation will be performed. Macro expansion can be done in a controlled
 # way by setting EXPAND_ONLY_PREDEF to YES.
 
-MACRO_EXPANSION        = NO
+MACRO_EXPANSION        = YES
 
 # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES
 # then the macro expansion is limited to the macros specified with the
@@ -1301,13 +1300,7 @@ INCLUDE_FILE_PATTERNS  =
 # undefined via #undef or recursively expanded use the := operator
 # instead of the = operator.
 
-PREDEFINED             = HAVE_MAD \
-                         HAVE_FAAD \
-                         HAVE_OGGVORBIS \
-                         __GNUC__=4 \
-                         __GNUC_MINOR__=4 \
-                         HAVE_UCRED \
-                        HAVE_CLOCK_GETTIME
+PREDEFINED             = __GNUC__=4 __GNUC_MINOR__=4
 
 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then
 # this tag can be used to specify a list of macro names that should be expanded.
index 19679923934883941ab6b810dcbb0e33cf4c3e39..6762b449bed265fd2e0141e3c6bf462bf44e3a6e 100644 (file)
@@ -16,6 +16,10 @@ ggo_descriptions_declared := @ggo_descriptions_declared@
 object_executable_matrix := @object_executable_matrix@
 
 executables := @executables@
+receivers := @receivers@
+filters := @filters@
+writers := @writers@
+
 recv_objs := @recv_objs@
 filter_objs := @filter_objs@
 client_objs := @client_objs@
index d80203765c521d68a3f2f634536cf46283142545..2973637e517692bad60d1773e8feee5feb1c48f2 100644 (file)
@@ -51,11 +51,10 @@ man_pages := $(patsubst %, $(man_dir)/%.1, $(prefixed_executables))
 
 autocrap := config.h.in configure
 tarball_pfx := $(PACKAGE_TARNAME)-$(PACKAGE_VERSION)
-tarball_delete := $(addprefix $(tarball_pfx)/,\
-       web .changelog_before_cvs .changelog_cvs .gitignore)
+tarball_delete := $(addprefix $(tarball_pfx)/, web .gitignore)
 tarball := $(tarball_pfx).tar.bz2
 
-.PHONY: dep all clean distclean maintainer-clean install man tarball
+.PHONY: dep all clean clean2 distclean maintainer-clean install man tarball
 all: dep $(prefixed_executables) $(man_pages)
 dep: $(deps)
 man: $(man_pages)
@@ -125,36 +124,44 @@ endif
 
 %_command_list.h: %.cmd %.c
        @[ -z "$(Q)" ] || echo 'GEN $@'
-       $(Q) ./command_util.sh h < $< >$@
+       $(Q) ./command_util.bash h < $< >$@
 %_command_list.man: %.cmd %.c
        @[ -z "$(Q)" ] || echo 'GEN $@'
-       $(Q) ./command_util.sh man < $< > $@
+       $(Q) ./command_util.bash man < $< > $@
 %_completion.h: %.cmd %.c
        @[ -z "$(Q)" ] || echo 'GEN $@'
-       $(Q) ./command_util.sh compl $(strip $(call TOUPPER,$(*F)))_COMPLETERS \
+       $(Q) ./command_util.bash compl $(strip $(call TOUPPER,$(*F)))_COMPLETERS \
                $(strip $(call TOUPPER,$(*F)))_COMMANDS < $< > $@
 
 server_command_list.h server_command_list.man server_completion.h: command.c
 afs_command_list.h afs_command_list.man afs_completion.h: afs.c aft.c attribute.c
 audiod_command_list.h audiod_command_list.man audiod_completion.h: audiod_command.c
 
-server_command_lists_man = server_command_list.man afs_command_list.man
-$(man_dir)/para_server.1: $(help2man_dir)/para_server $(server_command_lists_man) | $(man_dir)
-       @[ -z "$(Q)" ] || echo 'MAN $<'
-       $(Q) opts="`for i in $(server_command_lists_man); do printf "%s\n" "-i $$i"; done`"; \
-       $(HELP2MAN) $$opts ./$< > $@
+server_command_lists := server_command_list.man afs_command_list.man
+audiod_command_lists := audiod_command_list.man
+play_command_lists := play_command_list.man
 
-$(man_dir)/para_audiod.1: $(help2man_dir)/para_audiod audiod_command_list.man | $(man_dir)
-       @[ -z "$(Q)" ] || echo 'MAN $<'
-       $(Q) $(HELP2MAN) -N -i audiod_command_list.man ./$< > $@
+$(man_dir)/para_server.1: $(server_command_lists)
+$(man_dir)/para_audiod.1: $(audiod_command_lists)
+$(man_dir)/para_play.1: $(play_command_lists)
 
-$(man_dir)/para_play.1: $(help2man_dir)/para_play play_command_list.man | $(man_dir)
-       @[ -z "$(Q)" ] || echo 'MAN $<'
-       $(Q) $(HELP2MAN) -N -i play_command_list.man ./$< > $@
+$(man_dir)/para_server.1: man_util_command_lists := $(server_command_lists)
+$(man_dir)/para_audiod.1: man_util_command_lists := $(audiod_command_lists)
+$(man_dir)/para_play.1: man_util_command_lists := $(play_command_lists)
 
-$(man_dir)/%.1: $(help2man_dir)/% | $(man_dir)
+$(man_dir)/para_%.1: $(ggo_dir)/%.ggo man_util.bash | $(man_dir) $(help2man_dir)
        @[ -z "$(Q)" ] || echo 'MAN $<'
-       $(Q) $(HELP2MAN) -N ./$< > $@
+       $(Q) \
+               COMMAND_LISTS="$(man_util_command_lists)" \
+               FILTERS="$(filters)" \
+               GENGETOPT=$(GENGETOPT) \
+               GGO_DIR=$(ggo_dir) \
+               HELP2MAN=$(HELP2MAN) \
+               HELP2MAN_DIR=$(help2man_dir) \
+               RECEIVERS="$(receivers)" \
+               VERSION="$(GIT_VERSION)" \
+               WRITERS="$(writers)" \
+               ./man_util.bash $@
 
 $(hostbin_dir)/error2: error2.c | $(hostbin_dir)
        @[ -z "$(Q)" ] || echo 'HCC $<'
diff --git a/NEWS b/NEWS
index cc9b67ad18da23606ca2167d8b1fe94da1cb4ee5..508288ecfe94de4a36d471df39e9eb0b49f0b64a 100644 (file)
--- a/NEWS
+++ b/NEWS
@@ -1,14 +1,35 @@
 NEWS
 ====
 
----------------------------------------------
-0.5.2 (to be announced) "orthogonal interior"
----------------------------------------------
+----------------------------------------
+0.5.2 (2014-04-11) "orthogonal interior"
+----------------------------------------
 
-       - The new sync synchronizes playback between multiple clients.
+The new sync filter, the AES_CTR128 stream cipher and the overhauled
+network code are the highlights of this release. It also includes a
+fair number of smaller fixes and improvements not mentioned here.
+
+       - The new sync filter synchronizes playback between multiple
+         clients.
+       - Connections between para_server and para_client are now
+         encrypted by means of AES rather than RC4 if both sides
+         support it. RC4 is still available as a fallback. This
+         feature is fully transparent, i.e. no command line options
+         are necessary, and a client linked against openssl can
+         speak with a server linked against libgcrypt and vice versa.
        - Major cleanup of the networking subsystem.
+       - Improvements to para_fade: the new set mode, multi-channel
+         initial volumes, better error logging.
+       - The man pages of para_audiod, para_filter, para_recv, and
+         para_write contain the relevant options for receivers, filters,
+         writers. This broke in 0.5.0.
+       - ogg/vorbis latency improvements.
+       - Improved user manual.
        - Minor fixes to avoid clang warnings.
 
+Downloads: ./releases/paraslash-0.5.2.tar.bz2 (tarball),
+./releases/paraslash-0.5.2.tar.bz2.asc (signature)
+
 ------------------------------------------
 0.5.1 (2013-12-20) "temporary implication"
 ------------------------------------------
@@ -32,6 +53,9 @@ of the build system.
        - Many small bugs in the build system have been identified
          and fixed.
 
+Downloads: ./releases/paraslash-0.5.1.tar.bz2 (tarball),
+./releases/paraslash-0.5.1.tar.bz2.asc (signature)
+
 ----------------------------------------
 0.5.0 (2013-08-23) "invertible validity"
 ----------------------------------------
diff --git a/aac.h b/aac.h
index 08bc8b1ef6d26fdf6486b0a3becd015a3b5e9b7f..6e6c3402b303095334bd71e84d10c95d835ab47e 100644 (file)
--- a/aac.h
+++ b/aac.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 1610cb2c12b99f9494af33dabeef747672253b08..f354a63ce9c3c34b95d32d19bc588bd1134470eb 100644 (file)
--- a/aac_afh.c
+++ b/aac_afh.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index ab1fb50c259546755f23ca8838eeba1c63def529..ca29607a1753e243d8d2f627842776e57af7ce2e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 3ff90834c62bb75f179e5778ef02f6d23feb0d09..d63236da5112d2ea9a9ac52d80c31abdc0ad78f4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/acl.c b/acl.c
index 7762a990d38a090ae661371cdee1066fb075c429..e1415050e6e47a1397689bbcbcdc341693834e71 100644 (file)
--- a/acl.c
+++ b/acl.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -18,6 +18,7 @@
 #include "string.h"
 #include "list.h"
 #include "net.h"
+#include "acl.h"
 
 /**
  * Describes one entry in the blacklist/whitelist of a paraslash sender.
diff --git a/acl.h b/acl.h
index c44f26ab21fa042ca0be1093e97262c5d325ce2d..af68e1bcef1c517b411a531ff9f6e8d03637ec9f 100644 (file)
--- a/acl.h
+++ b/acl.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2008-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/afh.c b/afh.c
index 8e70750511381b425c33f0c7cf8237dc1a47af16..15b5e6b940b17b02043b38937ff8f44fca0dc04e 100644 (file)
--- a/afh.c
+++ b/afh.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2008-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/afh.h b/afh.h
index b224b61a4bbf5f210311fe2c7573c4725e866e7a..2264cc6139501e26d1f46ba89960cf5e630308c2 100644 (file)
--- a/afh.h
+++ b/afh.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 5be43550c202b516aaedf332dbbfba341da20dcb..cad972d94026eb1f1587fdf7201b752786b801b7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1997-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1997-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 5c17dab7de21132cf48d50bfaf37eabba506ce6f..0c7b3946377b6d25be9549834920054e3034de0d 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2011-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/afs.c b/afs.c
index 135888a7fc632e6760d2aba4e1b4b2b4738af618..fa4f4326cc110cd377ab6e8a7c30c74fe8148373 100644 (file)
--- a/afs.c
+++ b/afs.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2007-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/afs.cmd b/afs.cmd
index 82b6dc485cd00683b58a4ec79bd1e69c5602690f..91da48cb4511a8b740c27f93b73812132cbf3e09 100644 (file)
--- a/afs.cmd
+++ b/afs.cmd
@@ -22,7 +22,7 @@ H:    database, skip this file.  This operation is really cheap.
 H:     Use it when adding large directories if only a few files
 H:     where added.
 H:
-H:-f   Force adding/updating. Recompute the audio format handler data
+H: -f  Force adding/updating. Recompute the audio format handler data
 H:     even if a file with the same path and the same hash value exists.
 H:
 H: -v  Verbose mode. Print what is being done.
@@ -44,17 +44,12 @@ H: Options:
 H:
 H: -l  Change listing mode. Defaults to short listing if not given.
 H:
-H:             -ls:   short listing mode
-H:
-H:             -ll:   long listing mode (equivalent to -l)
-H:
-H:             -lv:   verbose listing mode
-H:
-H:             -lp:   parser-friendly mode
-H:
-H:             -lm:   mbox listing mode
-H:
-H:             -lc:   chunk-table listing mode
+H:    -ls: short listing mode
+H:    -ll: long listing mode (equivalent to -l)
+H:    -lv: verbose listing mode
+H:    -lp: parser-friendly mode
+H:    -lm: mbox listing mode
+H:    -lc: chunk-table listing mode
 H:
 H: -p  List full path of audio file. If not specified, only the basename
 H:     of each file is printed.
@@ -68,27 +63,17 @@ H: -d       Print dates as seconds after the epoch.
 H:
 H: -s  Change sort order. Defaults to alphabetical path sort if not given.
 H:
-H:             -sp:  sort by path.
-H:
-H:             -sl:  sort by last played time.
-H:
-H:             -ss:  sort by score (implies -a).
-H:
-H:             -sn:  sort by num played count.
-H:
-H:             -sf:  sort by frequency.
-H:
-H:             -sc:  sort by number of channels.
-H:
-H:             -si:  sort by image id.
-H:
-H:             -sy:  sort by lyrics id.
-H:
-H:             -sb:  sort by bit rate.
-H:
-H:             -sd:  sort by duration.
-H:
-H:             -sa:  sort by audio format.
+H:    -sp: by path
+H:    -sl: by last played time
+H:    -ss: by score (implies -a)
+H:    -sn: by num played count
+H:    -sf: by frequency
+H:    -sc: by number of channels
+H:    -si: by image id
+H:    -sy: by lyrics id
+H:    -sb: by bit rate
+H:    -sd: by duration
+H:    -sa: by audio format
 ---
 N: lsatt
 P: AFS_READ
diff --git a/afs.h b/afs.h
index 8a6b927c74f78f86cad9e748fa04dd02a88bb2ef..7a3f963f940e3e710e02d0dbb34e42e97a9542fd 100644 (file)
--- a/afs.h
+++ b/afs.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2007-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -20,7 +20,7 @@ struct afs_info {
        uint32_t image_id;
        /** Lyrics blob associated with this file (foreign key). */
        uint32_t lyrics_id;
-       /** Mp3, ogg, aac, wma, spx. */
+       /** Mp3, ogg, ... */
        uint8_t audio_format_id;
        /** Amplification value. */
        uint8_t amp;
diff --git a/aft.c b/aft.c
index f529416aec375779419a1a936699f6f0584da051..179777ba8c8999dc633cf8578f08951ff7dd995c 100644 (file)
--- a/aft.c
+++ b/aft.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2007-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 01f1c51260a7b6753ba8b14aac0c255120b4b331..be38e887af9babf8925bcda4d8065a79f991ff7c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2012-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -141,19 +141,19 @@ static int alsa_mix_set_channel(struct mixer_handle *h,
                PARA_NOTICE_LOG("unable to find simple control '%s',%i\n",
                        snd_mixer_selem_id_get_name(sid),
                        snd_mixer_selem_id_get_index(sid));
-               return -E_ALSA_MIX_BAD_ELEM;
+               return -E_BAD_CHANNEL;
        }
        ret = snd_mixer_selem_get_playback_volume_range(h->elem,
                &h->pmin, &h->pmax);
        if (ret < 0) {
                PARA_NOTICE_LOG("unable to get %s range (%s): %s\n",
                        mixer_channel, h->card, snd_strerror(ret));
-               return -E_ALSA_MIX_BAD_ELEM;
+               return -E_ALSA_MIX_RANGE;
        }
        if (h->pmin < 0 || h->pmax < 0 || h->pmin >= h->pmax) {
                PARA_NOTICE_LOG("alsa reported %s range %ld-%ld (%s)\n",
                        mixer_channel, h->pmin, h->pmax, h->card);
-               return -E_ALSA_MIX_BAD_ELEM;
+               return -E_ALSA_MIX_RANGE;
        }
        return 1;
 }
index a3912c1165e6054b0be0bd622b17175fdad4fd8a..ad59a829e4d0967bad079b9df6caa0e976b8f77b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index b0f3687212a1e1a4f4106bba8356bfe84b934d87..c3e55cf0477b253dfd663953613c2ed5f95daa51 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2009-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index fdae8eea542f97720f963f281bddd121cf5d0a38..730653c1b06844ed0822cc784c0c61b6a0303269 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2011-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 867e24b9ee705561a18ee5460a2a4f92438c56a2..ffe841025c1f7776e0bf33e35a951953abc48160 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1997-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1997-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 79051a98bb03b542dbb7d53a76c0d4a426a484bc..5f6b5ae1195645e3a8b4c2b458559625a036701c 100644 (file)
--- a/audioc.c
+++ b/audioc.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index f12dbc1b999a0892abdcea5791692f1f5dfab3c3..a8f401834b8a438d7b21d96920bc7b735f0a6c6b 100644 (file)
--- a/audiod.c
+++ b/audiod.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -219,7 +219,7 @@ static int get_matching_audio_format_nums(const char *re)
  * from the status items received from para_server and the start time of the
  * (first) writer of the given slot.
  *
- * It has to to take into account that probably the stream was not started at
+ * It has to take into account that the stream was probably not started at
  * the beginning of the file, that the clock between the server and the client
  * host may differ and that playback of the stream was delayed, e.g. because
  * the prebuffer filter is used in the filter configuration of the given slot.
@@ -647,7 +647,7 @@ static bool must_start_decoder(void)
        return true;
 }
 
-static unsigned compute_time_diff(const struct timeval *status_time)
+static void compute_time_diff(const struct timeval *status_time)
 {
        struct timeval tmp, diff;
        static unsigned count;
@@ -655,8 +655,6 @@ static unsigned compute_time_diff(const struct timeval *status_time)
        const struct timeval max_deviation = {0, 500 * 1000};
        const int time_smooth = 5;
 
-       if (!status_time)
-               return count;
        sign = tv_diff(status_time, now, &diff);
 //             PARA_NOTICE_LOG("%s: sign = %i, sa_time_diff_sign = %i\n", __func__,
 //                     sign, sa_time_diff_sign);
@@ -686,7 +684,6 @@ static unsigned compute_time_diff(const struct timeval *status_time)
        );
 out:
        stat_task->sa_time_diff_sign = sa_time_diff_sign;
-       return count;
 }
 
 static int update_item(int itemnum, char *buf)
@@ -1156,13 +1153,10 @@ static void close_unused_slots(void)
  */
 void __noreturn clean_exit(int status, const char *msg)
 {
-       int i;
-
        if (socket_name)
                unlink(socket_name);
        close_stat_pipe();
-       FOR_EACH_SLOT(i)
-               close_slot(i);
+       close_unused_slots();
        audiod_cmdline_parser_free(&conf);
        close_stat_clients();
        PARA_EMERG_LOG("%s\n", msg);
index 6c99d4c7d272e73e686bc8a9cd1d5832b3bdf9de..ad8f67d08d86aac29c311e6eb1cf62f55f9bf687 100644 (file)
@@ -19,17 +19,13 @@ H: Options:
 H:
 H: -m  Change grab mode. Defaults to sloppy grab if not given.
 H:
-H:             -ms: sloppy grab
+H:    -ms: sloppy grab
+H:    -mp: pedantic grab
+H:    -ma: aggressive grab
 H:
-H:             -mp: pedantic grab
-H:
-H:             -ma: aggressive grab
-H:
-H:     The various grab modes only differ in what happens if the
-H:     file descriptor to write the grabbed audio data to is not
-H:     ready for writing (i.e. would block). Sloppy mode ignores
-H:     the write, pedantic mode aborts and aggressive mode tries
-H:     to write anyway.
+H: The various grab modes only differ in what happens if an attempt to
+H: write the grabbed audio data would block. Sloppy mode ignores the
+H: write, pedantic mode aborts and aggressive mode tries to write anyway.
 H:
 H: -p  Grab output of node PARENT of the buffer tree.
 H:
index 5485b4243d56399b804cb368048b0f715a05ed66..aa98001c3d34906775ce6cf7c135dfb22c060ac1 100644 (file)
--- a/audiod.h
+++ b/audiod.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 1ffab87c0fbd5269d6da52b05428dc44132dd922..4485d9e9df28ca0fb2d1689046c1e53cffc9f5a5 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index d35247eb7d47d4d739a61973949f8c564d67bb2f..33bf64f6f4e68790e04ae1edff8d9c613b8c0ec5 100644 (file)
@@ -1,4 +1,4 @@
-# Copyright (C) 2007-2013 Andre Noll <maan@systemlinux.org>
+# Copyright (C) 2007-2014 Andre Noll <maan@systemlinux.org>
 #
 # Licensed under the GPL v2. For licencing details see COPYING.
 
diff --git a/blob.c b/blob.c
index 373d8d005cc1ea9e232f47f76e0c3794cd018538..dc71b8e3feb61323279b770effbab33b7c6d4978 100644 (file)
--- a/blob.c
+++ b/blob.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2007-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 56ab2b24cccd3e0b1f0bd786006cd3c08ab6424f..5afa3ad3deda281415cfd172af0c13092b95ad67 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2009-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 6127dd92a1373b37c2315dd03cb9d364d1a15d10..e01cb90609b6acf89109a21b0279dc446e150ac3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2009-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 11459e08c375c62285664637125c599f0e5b02be..a36cea9ab34fb319bf7070eaa43e8bb65dcfcd24 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index ba1a8eca48f2bf9407c7f3efbbdbd74e7414b2c7..5310d170735c24cef72bfe2443e104310947e14e 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2012-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index c870d4d2a0d397d17777f09fe3f94ff527cfc86a..5328c1132f51ff9b85c2c448f740233732c76a10 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2007-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -13,6 +13,7 @@
 #include "afh.h"
 #include "string.h"
 #include "error.h"
+#include "chunk_queue.h"
 
 /**
  * Senders may use the chunk queue facility to deal with laggy connections.  It
index 7514682464b787295863119b90a03ae5b9eb8439..946cacda31749437a575cecc0e319aac92864dd8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2007-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 873edc163b3e5f5164307d647724cf6655ec0d5f..c1ef5217345eb96720e7ce81e495e681f6d774f2 100644 (file)
--- a/client.c
+++ b/client.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1997-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1997-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 6e438f7ed15179da1817aea1c738712e229d7223..82dbc03327260cb9d3810c47f0e8d972f421d70e 100644 (file)
--- a/client.h
+++ b/client.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1997-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1997-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 6652cc35477234a9dd4a9f0621be953c5cc9ba00..900d3653893dea7067330d60a929ce0a4b13d902 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1997-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1997-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -336,7 +336,8 @@ static int client_post_select(struct sched *s, struct task *t)
        case CL_RECEIVED_WELCOME: /* send auth command */
                if (!FD_ISSET(ct->scc.fd, &s->wfds))
                        return 0;
-               sprintf(buf, AUTH_REQUEST_MSG "%s sideband", ct->user);
+               sprintf(buf, AUTH_REQUEST_MSG "%s sideband%s", ct->user,
+                       has_feature("aes_ctr128", ct)? ",aes_ctr128" : "");
                PARA_INFO_LOG("--> %s\n", buf);
                ret = write_buffer(ct->scc.fd, buf);
                if (ret < 0)
@@ -352,6 +353,7 @@ static int client_post_select(struct sched *s, struct task *t)
                /* decrypted challenge/session key buffer */
                unsigned char crypt_buf[1024];
                struct sb_buffer sbb;
+               bool use_aes;
 
                ret = recv_sb(ct, &s->rfds, &sbb);
                if (ret <= 0)
@@ -370,9 +372,10 @@ static int client_post_select(struct sched *s, struct task *t)
                        goto out;
                ct->challenge_hash = para_malloc(HASH_SIZE);
                hash_function((char *)crypt_buf, CHALLENGE_SIZE, ct->challenge_hash);
-               ct->scc.send = sc_new(crypt_buf + CHALLENGE_SIZE, SESSION_KEY_LEN);
+               use_aes = has_feature("aes_ctr128", ct);
+               ct->scc.send = sc_new(crypt_buf + CHALLENGE_SIZE, SESSION_KEY_LEN, use_aes);
                ct->scc.recv = sc_new(crypt_buf + CHALLENGE_SIZE + SESSION_KEY_LEN,
-                       SESSION_KEY_LEN);
+                       SESSION_KEY_LEN, use_aes);
                hash_to_asc(ct->challenge_hash, buf);
                PARA_INFO_LOG("--> %s\n", buf);
                ct->status = CL_RECEIVED_CHALLENGE;
index 37f727e278c6b61cedede8e6a84e77db3ba4c74b..eb470cf6066b16d78a9154a85124b88e6045ad11 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -11,6 +11,7 @@
 #include "para.h"
 #include "list.h"
 #include "string.h"
+#include "close_on_fork.h"
 
 static struct list_head close_on_fork_list;
 static int initialized;
index fc098b7803f58259452906b1dfc52fd1b6b56144..eb15875c36b8affba5a3defdce8f787ad73026ba 100644 (file)
--- a/command.c
+++ b/command.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1997-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1997-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -115,7 +115,6 @@ static unsigned get_status(struct misc_meta_data *nmmd, int parser_friendly,
        char mtime[30] = "";
        char *status, *flags; /* vss status info */
        /* nobody updates our version of "now" */
-       char *ut = get_server_uptime_str(NULL);
        long offset = (nmmd->offset + 500) / 1000;
        struct timeval current_time;
        struct tm mtime_tm;
@@ -149,7 +148,6 @@ static unsigned get_status(struct misc_meta_data *nmmd, int parser_friendly,
                (long unsigned)current_time.tv_usec);
        free(flags);
        free(status);
-       free(ut);
        *result = b.buf;
        return b.offset;
 }
@@ -786,14 +784,20 @@ static void reset_signals(void)
        para_sigaction(SIGHUP, SIG_DFL);
 }
 
-static int parse_auth_request(char *buf, int len, struct user **u)
+struct connection_features {
+       bool sideband_requested;
+       bool aes_ctr128_requested;
+};
+
+static int parse_auth_request(char *buf, int len, struct user **u,
+               struct connection_features *cf)
 {
        int ret;
        char *p, *username, **features = NULL;
        size_t auth_rq_len = strlen(AUTH_REQUEST_MSG);
-       bool sideband_requested = false;
 
        *u = NULL;
+       memset(cf, 0, sizeof(*cf));
        if (len < auth_rq_len + 2)
                return -E_AUTH_REQUEST;
        if (strncmp(buf, AUTH_REQUEST_MSG, auth_rq_len) != 0)
@@ -809,18 +813,15 @@ static int parse_auth_request(char *buf, int len, struct user **u)
                create_argv(p, ",", &features);
                for (i = 0; features[i]; i++) {
                        if (strcmp(features[i], "sideband") == 0)
-                               sideband_requested = true;
+                               cf->sideband_requested = true;
+                       else if (strcmp(features[i], "aes_ctr128") == 0)
+                               cf->aes_ctr128_requested = true;
                        else {
                                ret = -E_BAD_FEATURE;
                                goto out;
                        }
                }
        }
-       if (sideband_requested == false) { /* sideband is mandatory */
-               PARA_ERROR_LOG("client did not request sideband\n");
-               ret = -E_BAD_FEATURE;
-               goto out;
-       }
        PARA_DEBUG_LOG("received auth request for user %s\n", username);
        *u = lookup_user(username);
        ret = 1;
@@ -895,10 +896,11 @@ __noreturn void handle_connect(int fd, const char *peername)
        int ret;
        unsigned char rand_buf[CHALLENGE_SIZE + 2 * SESSION_KEY_LEN];
        unsigned char challenge_hash[HASH_SIZE];
-       char *p, *command = NULL, *buf = para_malloc(HANDSHAKE_BUFSIZE) /* must be on the heap */;
+       char *command = NULL, *buf = para_malloc(HANDSHAKE_BUFSIZE) /* must be on the heap */;
        size_t numbytes;
        struct command_context cc_struct = {.peer = peername}, *cc = &cc_struct;
        struct iovec iov;
+       struct connection_features cf;
 
        cc->scc.fd = fd;
        reset_signals();
@@ -909,7 +911,7 @@ __noreturn void handle_connect(int fd, const char *peername)
        /* send Welcome message */
        ret = write_va_buffer(fd, "This is para_server, version "
                PACKAGE_VERSION  ".\n"
-               "Features: sideband\n"
+               "Features: sideband,aes_ctr128\n"
        );
        if (ret < 0)
                goto net_err;
@@ -917,12 +919,14 @@ __noreturn void handle_connect(int fd, const char *peername)
        ret = recv_buffer(fd, buf, HANDSHAKE_BUFSIZE);
        if (ret < 0)
                goto net_err;
-       ret = parse_auth_request(buf, ret, &cc->u);
+       ret = parse_auth_request(buf, ret, &cc->u, &cf);
        if (ret < 0)
                goto net_err;
-       p = buf + strlen(AUTH_REQUEST_MSG);
-       PARA_DEBUG_LOG("received auth request for user %s\n", p);
-       cc->u = lookup_user(p);
+       if (!cf.sideband_requested) { /* sideband is mandatory */
+               PARA_ERROR_LOG("client did not request sideband\n");
+               ret = -E_BAD_FEATURE;
+               goto net_err;
+       }
        if (cc->u) {
                get_random_bytes_or_die(rand_buf, sizeof(rand_buf));
                ret = pub_encrypt(cc->u->pubkey, rand_buf, sizeof(rand_buf),
@@ -939,7 +943,7 @@ __noreturn void handle_connect(int fd, const char *peername)
                numbytes = 256;
                get_random_bytes_or_die((unsigned char *)buf, numbytes);
        }
-       PARA_DEBUG_LOG("sending %u byte challenge + rc4 keys (%zu bytes)\n",
+       PARA_DEBUG_LOG("sending %u byte challenge + session key (%zu bytes)\n",
                CHALLENGE_SIZE, numbytes);
        ret = send_sb(&cc->scc, buf, numbytes, SBD_CHALLENGE, false);
        buf = NULL;
@@ -969,8 +973,10 @@ __noreturn void handle_connect(int fd, const char *peername)
        alarm(0);
        PARA_INFO_LOG("good auth for %s\n", cc->u->name);
        /* init stream cipher keys with the second part of the random buffer */
-       cc->scc.recv = sc_new(rand_buf + CHALLENGE_SIZE, SESSION_KEY_LEN);
-       cc->scc.send = sc_new(rand_buf + CHALLENGE_SIZE + SESSION_KEY_LEN, SESSION_KEY_LEN);
+       cc->scc.recv = sc_new(rand_buf + CHALLENGE_SIZE, SESSION_KEY_LEN,
+               cf.aes_ctr128_requested);
+       cc->scc.send = sc_new(rand_buf + CHALLENGE_SIZE + SESSION_KEY_LEN,
+               SESSION_KEY_LEN, cf.aes_ctr128_requested);
        ret = send_sb(&cc->scc, NULL, 0, SBD_PROCEED, false);
        if (ret < 0)
                goto net_err;
diff --git a/command_util.bash b/command_util.bash
new file mode 100755 (executable)
index 0000000..e33e076
--- /dev/null
@@ -0,0 +1,305 @@
+#!/usr/bin/env bash
+
+read_header()
+{
+       local key value i
+
+       while read key value; do
+               case "$key" in
+               ---)
+                       break
+                       ;;
+               BN:)
+                       base_name="$value"
+                       ;;
+               SF:)
+                       source_files="$value"
+                       ;;
+               SN:)
+                       section_name="$value"
+                       ;;
+               TM:)
+                       template_members="$value"
+               esac
+       done
+}
+
+read_one_command()
+{
+       local line
+
+       name_txt=""
+       desc_txt=""
+       usage_txt=""
+       help_txt=""
+       perms_txt=""
+       template=0
+       template_name=""
+       template_prototype=""
+       while read key value; do
+               case "$key" in
+               ---)
+                       break
+                       ;;
+               N:)
+                       name_txt="$value"
+                       ;;
+               T:)
+                       template_name="$value"
+                       template=1
+                       ;;
+               O:)
+                       template_prototype="$value"
+                       template=1
+                       ;;
+               P:)
+                       perms_txt="$value"
+                       ;;
+               D:)
+                       desc_txt="$value"
+                       ;;
+               U:)
+                       usage_txt="$value"
+                       ;;
+               H:)
+                       help_txt="${value}"
+                       while read line; do
+                               if test "$line" = "---"; then
+                                       break;
+                               fi
+                               line=${line#H:}
+                               help_txt="$help_txt
+${line# }"
+                       done
+                       break
+                       ;;
+               esac
+       done
+       if test $template -eq 0; then
+               if test -n "$name_txt" -a -n "$desc_txt" -a -n "$usage_txt" \
+                               -a -n "$help_txt"; then
+                       ret=1
+                       return
+               fi
+       else
+               if test -n "$template_name" -a -n "$template_prototype" \
+                               -a -n "$name_txt " -a -n "$template_members" \
+                               -a -n "$desc_txt" -a -n "$usage_txt" \
+                               -a -n "$help_txt"; then
+                       ret=1
+                       return
+               fi
+       fi
+       if test -z "$name_txt" -a -z "$desc_txt" -a -z "$usage_txt" \
+                       -a -z "$help_txt"; then
+               ret=0
+               return
+       fi
+       ret=-1
+       #return
+       echo "!ERROR!"
+       echo "N: $name_txt"
+       echo "D: $desc_txt"
+       echo "S: $usage_txt"
+       echo "P: $perms_txt"
+       echo "H: $help_txt"
+       echo "O: $template_prototype"
+}
+
+dump_man()
+{
+       if test $template -eq 0; then
+               echo ".SS \"$name_txt\""
+               echo "$desc_txt"
+               echo
+               echo "\\fBUsage: \\fP$usage_txt"
+       else
+               for member in $template_members; do
+                       local sed_cmd="sed -e s/@member@/$member/g"
+                       local t_name_txt=$(echo $name_txt | $sed_cmd)
+                       echo ".SS \"$t_name_txt\""
+               done
+               echo "$desc_txt" | sed -e "s/@member@/{$(echo $template_members | sed -e 's/ / | /g')}/g"
+               echo
+               echo "\\fBUsage: \\fP"
+               echo
+               echo ".nf"
+               for member in $template_members; do
+                       local sed_cmd="sed -e s/@member@/$member/g"
+                       local t_usage_txt=$(echo $usage_txt | $sed_cmd)
+                       printf "\t$t_usage_txt\n"
+               done
+               echo ".fi"
+       fi
+       echo
+       echo "$help_txt" | sed -e 's/^  //'
+       echo
+       if test -n "$perms_txt"; then
+               echo -n "\\fBpermissions:\\fP "
+               if test "$perms_txt" = "0"; then
+                       echo "(none)"
+               else
+                       echo "$perms_txt"
+               fi
+       fi
+       echo
+}
+
+
+com_man()
+{
+       echo "[$section_name]"
+       echo
+       while : ; do
+               read_one_command
+               if test $ret -lt 0; then
+                       exit 1
+               fi
+               if test $ret -eq 0; then
+                       break
+               fi
+               dump_man
+       done
+}
+
+make_proto()
+{
+       local regex='\(__noreturn \)*\(static \)*int com_'
+       local source_file match="" all_commands CR='
+'
+       if test -n "$prototype"; then
+               result="$prototype$CR"
+               return
+       fi
+       all_commands="$(cat $source_files | grep "$regex")"
+       result=
+       for source_file in $source_files; do
+               match=$(grep "$regex$name_txt(" <<< "$all_commands" | head -n 1 | sed -e 's/$/;/1')
+               if test -n "$match"; then
+                       result="$result$match$CR"
+                       break
+               fi
+       done
+}
+
+make_array_member()
+{
+       local TAB='     ' CR='
+'
+       local tmp
+
+       result="{.name = \"$name_txt\", .handler = com_$name_txt, "
+       if test -n "$perms_txt"; then
+               result="$result .perms = $perms_txt,"
+       fi
+       result="$result.description = \"$desc_txt\", .usage = \"$usage_txt\", \\$CR .help = "
+       tmp="$(printf "%s\n" "$help_txt" | sed -e 's/^/\"/g' -e 's/$/\\n\"/g' \
+               -e "s/$TAB/\\\t/g" -e's/$/\\/g')"
+       result="$result$tmp$CR}, \\$CR"
+}
+
+make_completion()
+{
+       local CR='
+'
+       result="  {.name = \"$name_txt\", .completer = ${name_txt}_completer}, \\$CR"
+}
+
+template_loop()
+{
+       local loop_result=
+
+       local t_name="$name_txt"
+       local t_perms="$perms_txt"
+       local t_desc="$desc_txt"
+       local t_usage="$usage_txt"
+       local t_help="$help_txt"
+       local t_source_files="$source_files"
+       local member
+       for member in $template_members; do
+               name_txt="${t_name//@member@/$member}"
+               perms_txt="${t_perms//@member@/$member}"
+               desc_txt="${t_desc//@member@/$member}"
+               usage_txt="${t_usage//@member@/$member}"
+               help_txt="${t_help//@member@/$member}"
+               prototype="${template_prototype//@member@/$member}"
+               result=
+               $1
+               loop_result="$loop_result$result"
+       done
+       result="$loop_result"
+       # reset global variables
+       name_txt="$t_name"
+       perms_txt="$t_perms"
+       desc_txt="$t_desc"
+       usage_txt="$t_usage"
+       help_txt="$t_help"
+       source_files="$t_source_files"
+}
+
+com_header()
+{
+       local array_members CR='
+'
+
+       while : ; do
+               read_one_command
+               if test $ret -lt 0; then
+                       exit 1
+               fi
+               if test $ret -eq 0; then
+                       break
+               fi
+               if test $template -eq 0; then
+                       make_proto
+                       printf "%s" "$result"
+                       make_array_member
+                       array_members="$array_members$result"
+                       continue
+               fi
+               template_loop make_proto
+               printf "%s" "$result"
+               template_loop make_array_member
+               array_members="$array_members$result"
+       done
+       array_members="$array_members{.name = NULL} \\$CR"
+       echo "#define DEFINE_$(tr 'a-z' 'A-Z' <<< "$base_name")_CMD_ARRAY $array_members"
+}
+
+com_completion()
+{
+
+       echo "#define $1 \\"
+       while : ; do
+               read_one_command
+               if test $ret -lt 0; then
+                       exit 1
+               fi
+               if test $ret -eq 0; then
+                       break
+               fi
+               if test $template -eq 0; then
+                       make_completion
+                       printf "%s" "$result"
+                       continue
+               fi
+               template_loop make_completion
+               printf "%s" "$result"
+       done
+       echo
+}
+
+read_header
+arg="$1"
+shift
+case "$arg" in
+       "h")
+               com_header
+               ;;
+       "man")
+               com_man $*
+               ;;
+       "compl")
+               com_completion $*
+               ;;
+esac
diff --git a/command_util.sh b/command_util.sh
deleted file mode 100755 (executable)
index e33e076..0000000
+++ /dev/null
@@ -1,305 +0,0 @@
-#!/usr/bin/env bash
-
-read_header()
-{
-       local key value i
-
-       while read key value; do
-               case "$key" in
-               ---)
-                       break
-                       ;;
-               BN:)
-                       base_name="$value"
-                       ;;
-               SF:)
-                       source_files="$value"
-                       ;;
-               SN:)
-                       section_name="$value"
-                       ;;
-               TM:)
-                       template_members="$value"
-               esac
-       done
-}
-
-read_one_command()
-{
-       local line
-
-       name_txt=""
-       desc_txt=""
-       usage_txt=""
-       help_txt=""
-       perms_txt=""
-       template=0
-       template_name=""
-       template_prototype=""
-       while read key value; do
-               case "$key" in
-               ---)
-                       break
-                       ;;
-               N:)
-                       name_txt="$value"
-                       ;;
-               T:)
-                       template_name="$value"
-                       template=1
-                       ;;
-               O:)
-                       template_prototype="$value"
-                       template=1
-                       ;;
-               P:)
-                       perms_txt="$value"
-                       ;;
-               D:)
-                       desc_txt="$value"
-                       ;;
-               U:)
-                       usage_txt="$value"
-                       ;;
-               H:)
-                       help_txt="${value}"
-                       while read line; do
-                               if test "$line" = "---"; then
-                                       break;
-                               fi
-                               line=${line#H:}
-                               help_txt="$help_txt
-${line# }"
-                       done
-                       break
-                       ;;
-               esac
-       done
-       if test $template -eq 0; then
-               if test -n "$name_txt" -a -n "$desc_txt" -a -n "$usage_txt" \
-                               -a -n "$help_txt"; then
-                       ret=1
-                       return
-               fi
-       else
-               if test -n "$template_name" -a -n "$template_prototype" \
-                               -a -n "$name_txt " -a -n "$template_members" \
-                               -a -n "$desc_txt" -a -n "$usage_txt" \
-                               -a -n "$help_txt"; then
-                       ret=1
-                       return
-               fi
-       fi
-       if test -z "$name_txt" -a -z "$desc_txt" -a -z "$usage_txt" \
-                       -a -z "$help_txt"; then
-               ret=0
-               return
-       fi
-       ret=-1
-       #return
-       echo "!ERROR!"
-       echo "N: $name_txt"
-       echo "D: $desc_txt"
-       echo "S: $usage_txt"
-       echo "P: $perms_txt"
-       echo "H: $help_txt"
-       echo "O: $template_prototype"
-}
-
-dump_man()
-{
-       if test $template -eq 0; then
-               echo ".SS \"$name_txt\""
-               echo "$desc_txt"
-               echo
-               echo "\\fBUsage: \\fP$usage_txt"
-       else
-               for member in $template_members; do
-                       local sed_cmd="sed -e s/@member@/$member/g"
-                       local t_name_txt=$(echo $name_txt | $sed_cmd)
-                       echo ".SS \"$t_name_txt\""
-               done
-               echo "$desc_txt" | sed -e "s/@member@/{$(echo $template_members | sed -e 's/ / | /g')}/g"
-               echo
-               echo "\\fBUsage: \\fP"
-               echo
-               echo ".nf"
-               for member in $template_members; do
-                       local sed_cmd="sed -e s/@member@/$member/g"
-                       local t_usage_txt=$(echo $usage_txt | $sed_cmd)
-                       printf "\t$t_usage_txt\n"
-               done
-               echo ".fi"
-       fi
-       echo
-       echo "$help_txt" | sed -e 's/^  //'
-       echo
-       if test -n "$perms_txt"; then
-               echo -n "\\fBpermissions:\\fP "
-               if test "$perms_txt" = "0"; then
-                       echo "(none)"
-               else
-                       echo "$perms_txt"
-               fi
-       fi
-       echo
-}
-
-
-com_man()
-{
-       echo "[$section_name]"
-       echo
-       while : ; do
-               read_one_command
-               if test $ret -lt 0; then
-                       exit 1
-               fi
-               if test $ret -eq 0; then
-                       break
-               fi
-               dump_man
-       done
-}
-
-make_proto()
-{
-       local regex='\(__noreturn \)*\(static \)*int com_'
-       local source_file match="" all_commands CR='
-'
-       if test -n "$prototype"; then
-               result="$prototype$CR"
-               return
-       fi
-       all_commands="$(cat $source_files | grep "$regex")"
-       result=
-       for source_file in $source_files; do
-               match=$(grep "$regex$name_txt(" <<< "$all_commands" | head -n 1 | sed -e 's/$/;/1')
-               if test -n "$match"; then
-                       result="$result$match$CR"
-                       break
-               fi
-       done
-}
-
-make_array_member()
-{
-       local TAB='     ' CR='
-'
-       local tmp
-
-       result="{.name = \"$name_txt\", .handler = com_$name_txt, "
-       if test -n "$perms_txt"; then
-               result="$result .perms = $perms_txt,"
-       fi
-       result="$result.description = \"$desc_txt\", .usage = \"$usage_txt\", \\$CR .help = "
-       tmp="$(printf "%s\n" "$help_txt" | sed -e 's/^/\"/g' -e 's/$/\\n\"/g' \
-               -e "s/$TAB/\\\t/g" -e's/$/\\/g')"
-       result="$result$tmp$CR}, \\$CR"
-}
-
-make_completion()
-{
-       local CR='
-'
-       result="  {.name = \"$name_txt\", .completer = ${name_txt}_completer}, \\$CR"
-}
-
-template_loop()
-{
-       local loop_result=
-
-       local t_name="$name_txt"
-       local t_perms="$perms_txt"
-       local t_desc="$desc_txt"
-       local t_usage="$usage_txt"
-       local t_help="$help_txt"
-       local t_source_files="$source_files"
-       local member
-       for member in $template_members; do
-               name_txt="${t_name//@member@/$member}"
-               perms_txt="${t_perms//@member@/$member}"
-               desc_txt="${t_desc//@member@/$member}"
-               usage_txt="${t_usage//@member@/$member}"
-               help_txt="${t_help//@member@/$member}"
-               prototype="${template_prototype//@member@/$member}"
-               result=
-               $1
-               loop_result="$loop_result$result"
-       done
-       result="$loop_result"
-       # reset global variables
-       name_txt="$t_name"
-       perms_txt="$t_perms"
-       desc_txt="$t_desc"
-       usage_txt="$t_usage"
-       help_txt="$t_help"
-       source_files="$t_source_files"
-}
-
-com_header()
-{
-       local array_members CR='
-'
-
-       while : ; do
-               read_one_command
-               if test $ret -lt 0; then
-                       exit 1
-               fi
-               if test $ret -eq 0; then
-                       break
-               fi
-               if test $template -eq 0; then
-                       make_proto
-                       printf "%s" "$result"
-                       make_array_member
-                       array_members="$array_members$result"
-                       continue
-               fi
-               template_loop make_proto
-               printf "%s" "$result"
-               template_loop make_array_member
-               array_members="$array_members$result"
-       done
-       array_members="$array_members{.name = NULL} \\$CR"
-       echo "#define DEFINE_$(tr 'a-z' 'A-Z' <<< "$base_name")_CMD_ARRAY $array_members"
-}
-
-com_completion()
-{
-
-       echo "#define $1 \\"
-       while : ; do
-               read_one_command
-               if test $ret -lt 0; then
-                       exit 1
-               fi
-               if test $ret -eq 0; then
-                       break
-               fi
-               if test $template -eq 0; then
-                       make_completion
-                       printf "%s" "$result"
-                       continue
-               fi
-               template_loop make_completion
-               printf "%s" "$result"
-       done
-       echo
-}
-
-read_header
-arg="$1"
-shift
-case "$arg" in
-       "h")
-               com_header
-               ;;
-       "man")
-               com_man $*
-               ;;
-       "compl")
-               com_completion $*
-               ;;
-esac
index 0c0200e7e3b522af5aad7bb0a9f86f7e32024218..b488f55cb3ae2471201ab518ae84e3603ebcf005 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 61ff547e1e09f62403fa65fde03f0ee0ce474aec..30bce8ee400858cb099c3bc7d1d2593c4f842225 100644 (file)
@@ -580,7 +580,11 @@ if test -n "$with_flac_libs"; then
        LDFLAGS="$LDFLAGS $flac_libs"
 fi
 AC_CHECK_HEADER(FLAC/stream_decoder.h, [], have_flac=no)
-AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [], have_flac=no, -logg -lm)
+AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [], [
+       # nope, try again with -logg
+       AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [],
+               have_flac=no, -lm -logg)
+       ], -lm)
 if test "$have_flac" = "yes"; then
        AC_DEFINE(HAVE_FLAC, 1, define to 1 if you want to build the flacdec filter)
        AC_SUBST(flac_cppflags)
@@ -728,15 +732,17 @@ AC_CHECK_HEADERS([readline/readline.h], [
 ])
 
 if test "$have_readline" = "yes"; then
-       readline_ldflags="$readline_libs -lreadline"
-       AC_SEARCH_LIBS([rl_free_keymap], [readline], [], [have_readline="no"])
+       readline_ldflags="$readline_libs"
+       AC_SEARCH_LIBS([rl_free_keymap], [readline], [
+               readline_ldflags="$readline_ldflags -lreadline"
+       ], [have_readline="no"])
        if test "$have_readline" = "no"; then # try with -lcurses
                 # clear cache
                AC_MSG_NOTICE([trying again with -lcurses])
                 unset ac_cv_search_rl_free_keymap 2> /dev/null
                AC_SEARCH_LIBS([rl_free_keymap], [readline], [
                        have_readline=yes
-                       readline_ldflags="$readline_ldflags -lcurses"
+                       readline_ldflags="$readline_ldflags -lreadline -lcurses"
                ], [], [-lcurses])
        fi
        if test "$have_readline" = "no"; then # try with -ltermcap
@@ -745,7 +751,7 @@ if test "$have_readline" = "yes"; then
                 unset ac_cv_search_rl_free_keymap 2> /dev/null
                AC_SEARCH_LIBS([rl_free_keymap], [readline], [
                        have_readline=yes
-                       readline_ldflags="$readline_ldflags -ltermcap"
+                       readline_ldflags="$readline_ldflags -lreadline -ltermcap"
                ], [], [-ltermcap])
        fi
 fi
@@ -1180,6 +1186,8 @@ if test "$have_samplerate" = "yes"; then
        filter_cmdline_objs="$filter_cmdline_objs resample_filter"
        filters="$filters resample"
 fi
+filters="$(echo $filters)"
+AC_SUBST(filters)
 filter_objs="add_cmdline($filter_cmdline_objs) $filter_errlist_objs"
 
 AC_SUBST(filter_objs, add_dot_o($filter_objs))
@@ -1244,6 +1252,7 @@ if test "$have_flac" = "yes"; then
        recv_errlist_objs="$recv_errlist_objs flac_afh"
 fi
 recv_objs="add_cmdline($recv_cmdline_objs) $recv_errlist_objs"
+AC_SUBST(receivers, "http dccp udp afh")
 AC_SUBST(recv_objs, add_dot_o($recv_objs))
 AC_DEFINE_UNQUOTED(INIT_RECV_ERRLISTS, objlist_to_errlist($recv_errlist_objs),
        errors used by para_recv)
@@ -1277,6 +1286,7 @@ if test "$have_speex" = "yes"; then
 fi
 if test "$have_opus" = "yes"; then
        afh_errlist_objs="$afh_errlist_objs opus_afh opus_common"
+       audio_format_handlers="$audio_format_handlers opus"
 fi
 if test "$have_faad" = "yes"; then
        afh_errlist_objs="$afh_errlist_objs aac_common aac_afh"
@@ -1436,6 +1446,7 @@ if test "$have_alsa" = "yes"; then
        writers="$writers alsa"
        default_writer="ALSA_WRITE"
 fi
+AC_SUBST(writers)
 write_objs="add_cmdline($write_cmdline_objs) $write_errlist_objs"
 AC_SUBST(write_objs, add_dot_o($write_objs))
 AC_DEFINE_UNQUOTED(INIT_WRITE_ERRLISTS,
@@ -1554,7 +1565,7 @@ unix socket credentials: $have_ucred
 readline (interactive CLIs): $have_readline
 audio formats handlers: $audio_format_handlers
 id3 version2 support: $have_libid3tag
-filters: $(echo $filters)
+filters: $filters
 writers: $writers
 
 para_fade: $build_fade
diff --git a/convert_0.3-0.4.sh b/convert_0.3-0.4.sh
deleted file mode 100755 (executable)
index aa0b239..0000000
+++ /dev/null
@@ -1,221 +0,0 @@
-#!/usr/bin/env bash
-
-#-------------------------------------------------------------------------------
-## Script to convert the database of paraslash 0.3.5 to version 0.4.x.
-##
-## Assumptions:
-##     - para_server 0.3.5 is running
-##     - "para_client check" reports no errors
-##     - para_server 0.4.x is running, listens on another port and uses a
-##       different afs database and a different afs socket
-##     - The database of paraslash 0.4.x has been initialized (i.e.
-##       para_client init has successfully been executed)
-##     - All audio files in the 0.3.x database have already been added to
-##       the 0.4.x database (execute para_client add /my/audio/file/dir to
-##       do that)
-##
-#-------------------------------------------------------------------------------
-
-# Call this script without arguments to see usage info
-
-# How to connect to para_server 0.3.x.
-client03=/usr/local/bin/para_client
-port03=2991
-host03=localhost
-database03=$HOME/.paraslash/afs_database
-
-# How to connect to para_server 0.4.x.
-client04=$(pwd)/para_client
-port04=2990
-host04=localhost
-database04=$HOME/.paraslash/afs_database-0.4
-
-# Any character that does not occur in any filename of an audio file
-sep='|'
-
-
-client03_cmd="$client03 -p $port03 -i $host03"
-client04_cmd="$client04 -p $port04 -i $host04"
-
-exec_client03_cmd()
-{
-       result="$($client03_cmd -- "$@")"
-}
-
-exec_client04_cmd()
-{
-       result="$($client04_cmd -- "$@")"
-}
-
-convert_attribute_table()
-{
-       local atts
-
-       echo "converting attribute table"
-       exec_client03_cmd lsatt
-       atts="$result"
-       exec_client04_cmd addatt $atts
-}
-
-convert_attributes()
-{
-       local OIFS="$IFS" a p att atts
-
-       printf "converting attributes: "
-       $client03_cmd -- ls -p -lv \
-               | grep '^path:\|^attributes_txt:' \
-               | sed -e "/^path:/N;s/\n/$sep/1" \
-               | {
-                       IFS="$sep"
-                       while read p a; do
-                               p=${p#path: }
-                               a=${a#attributes_txt:}
-                               IFS=" "
-                               atts=
-                               for att in $a; do
-                                       atts="$atts $att+"
-                               done
-                               IFS="$OIFS"
-                               [[ -n "$atts" ]] && $client04_cmd -- setatt $atts "$p"
-                               IFS="$sep"
-                               printf "."
-                       done
-                       echo done
-               }
-               IFS="$OIFS"
-}
-
-convert_lna()
-{
-       local OIFS="$IFS" p l n a
-
-       printf "converting last_played, num_played, amplification values: "
-       $client03_cmd -- ls -p -d -lv \
-               | grep '^path:\|^last_played: \|^num_played: \|^amplification: ' \
-               | sed -e "/^path:/N;N;N;s/\n/$sep/g" \
-               | {
-                       IFS="$sep"
-                       while read p l n a; do
-                               #echo "p: $p, l:$l, n:$n a:$a"
-                               p=${p#path: }
-                               l=${l#last_played: }
-                               n=${n#num_played: }
-                               a=${a#amplification: }
-                               IFS="$OIFS"
-                               $client04_cmd -- touch "-l$l" "-n$n" "-a$a" "$p"
-                               IFS="$sep"
-                               printf "."
-                       done
-                       echo done
-               }
-               IFS="$OIFS"
-}
-
-convert_blobs()
-{
-       local blob name
-
-       for blob in img lyr mood pl; do
-               printf "converting $blob table: "
-               exec_client03_cmd ls$blob
-               echo "$result" | while read name; do
-                       $client03_cmd -- cat$blob "$name" | $client04_cmd -- add$blob "$name"
-                       printf "."
-               done
-               echo done
-       done
-}
-
-convert_ids()
-{
-       local OIFS="$IFS" p i y iopts yopts
-
-       printf "converting image and lyrics ids: "
-       $client03_cmd -- ls -p -lv \
-               | grep '^path:\|^image_name: \|^lyrics_name: ' \
-               | sed -e "/^path:/N;N;s/\n/$sep/g" \
-               | {
-                       IFS="$sep"
-                       while read p i l; do
-                               IFS="$OIFS"
-                               iopts=
-                               yopts=
-                               p=${p#path: }
-                               i=${i#image_name: }
-                               l=${l#lyrics_name: }
-                               if [[ "$i" != '(none)' ]]; then
-                                       exec_client04_cmd lsimg -l "$i"
-                                       iopts="-i${result%%     *}"
-                               fi
-                               if [[ "$l" != '(none)' ]]; then
-                                       exec_client04_cmd lslyr -l "$l"
-                                       yopts="-y${result%%     *}"
-                               fi
-                               if [[ -n "$iopts" && -n "$yopts" ]]; then
-                                       $client04_cmd -- touch "$iopts" "$yopts" "$p"
-                               elif [[ -n "$iopts" ]]; then
-                                       $client04_cmd -- touch "$iopts" "$p"
-                               elif [[ -n "$yopts" ]]; then
-                                       $client04_cmd -- touch "$yopts" "$p"
-                               fi
-                               printf "."
-                               IFS="$sep"
-                       done
-                       echo done
-               }
-               IFS="$OIFS"
-}
-
-
-usage()
-{
-       grep '^##' $0 | sed -e 's/^## *//'
-       echo '
-Usage: $0 command
-
-command is one of the following:
-
-       attribute_table: create attributes
-       attributes: convert attributes for each audio file
-       lna: convert the last_played/num_played/amplification values
-       blobs: convert the image/lyrics/moods/playlists tables
-       ids: convert image and the lyrics id of each audio file.
-       all: Do all of the above.
-
-Edit the top of the script to customize some options.
-'
-}
-
-if test $# -ne 1; then
-       usage
-       exit 1
-fi
-
-case "$1" in
-attribute_table)
-       convert_attribute_table
-       ;;
-attributes)
-       convert_attributes
-       ;;
-lna)
-       convert_lna
-       ;;
-blobs)
-       convert_blobs
-       ;;
-ids)
-       convert_ids
-       ;;
-all)
-       convert_attribute_table
-       convert_attributes
-       convert_lna
-       convert_blobs
-       convert_ids
-       ;;
-*)
-       usage
-       exit 1
-       ;;
-esac
diff --git a/crypt.c b/crypt.c
index 5445138d53f6589ebce6645b027531f02b74c860..0137e004cbb2b0e121373c1ffe1d5ee6e5f75b6e 100644 (file)
--- a/crypt.c
+++ b/crypt.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -15,6 +15,7 @@
 #include <openssl/pem.h>
 #include <openssl/sha.h>
 #include <openssl/bn.h>
+#include <openssl/aes.h>
 
 #include "para.h"
 #include "error.h"
@@ -259,14 +260,40 @@ int pub_encrypt(struct asymmetric_key *pub, unsigned char *inbuf,
        return ret < 0? -E_ENCRYPT : ret;
 }
 
+struct aes_ctr_128_context {
+       AES_KEY key;
+       unsigned char ivec[AES_CRT128_BLOCK_SIZE];
+       unsigned char ecount[AES_CRT128_BLOCK_SIZE];
+       unsigned int num;
+};
+
 struct stream_cipher {
-       RC4_KEY key;
+       bool use_aes;
+       union {
+               RC4_KEY rc4_key;
+               struct aes_ctr_128_context aes;
+       } context;
 };
 
-struct stream_cipher *sc_new(const unsigned char *data, int len)
+struct stream_cipher *sc_new(const unsigned char *data, int len,
+               bool use_aes)
 {
+       int ret;
        struct stream_cipher *sc = para_malloc(sizeof(*sc));
-       RC4_set_key(&sc->key, len, data);
+       struct aes_ctr_128_context *aes;
+
+       sc->use_aes = use_aes;
+       if (!use_aes) {
+               RC4_set_key(&sc->context.rc4_key, len, data);
+               return sc;
+       }
+       assert(len >= 2 * AES_CRT128_BLOCK_SIZE);
+       aes = &sc->context.aes;
+       ret = AES_set_encrypt_key(data, AES_CRT128_BLOCK_SIZE * 8 /* bits */,
+               &aes->key);
+       assert(ret == 0);
+       memcpy(aes->ivec, data + AES_CRT128_BLOCK_SIZE, AES_CRT128_BLOCK_SIZE);
+       aes->num = 0;
        return sc;
 }
 
@@ -282,10 +309,9 @@ void sc_free(struct stream_cipher *sc)
  */
 #define RC4_ALIGN 8
 
-void sc_crypt(struct stream_cipher *sc, struct iovec *src, struct iovec *dst)
+static void rc4_crypt(RC4_KEY *key, struct iovec *src, struct iovec *dst)
 {
        size_t len = src->iov_len, l1, l2;
-       RC4_KEY *key = &sc->key;
 
        assert(len > 0);
        assert(len < ((typeof(src->iov_len))-1) / 2);
@@ -306,6 +332,28 @@ void sc_crypt(struct stream_cipher *sc, struct iovec *src, struct iovec *dst)
        ((char *)dst->iov_base)[len] = '\0';
 }
 
+static void aes_ctr128_crypt(struct aes_ctr_128_context *aes, struct iovec *src,
+               struct iovec *dst)
+{
+       size_t len = src->iov_len;
+
+       *dst = (typeof(*dst)) {
+               /* Add one for the terminating zero byte. */
+               .iov_base = para_malloc(len + 1),
+               .iov_len = len
+       };
+       AES_ctr128_encrypt(src->iov_base, dst->iov_base, len,
+               &aes->key, aes->ivec, aes->ecount, &aes->num);
+       ((char *)dst->iov_base)[len] = '\0';
+}
+
+void sc_crypt(struct stream_cipher *sc, struct iovec *src, struct iovec *dst)
+{
+       if (sc->use_aes)
+               return aes_ctr128_crypt(&sc->context.aes, src, dst);
+       return rc4_crypt(&sc->context.rc4_key, src, dst);
+}
+
 void hash_function(const char *data, unsigned long len, unsigned char *hash)
 {
        SHA_CTX c;
diff --git a/crypt.h b/crypt.h
index 1406197d0c6cd64c14cf1b30d8ef281417903638..324a87b349a5b9f69443e47c44e242ffb0be04df 100644 (file)
--- a/crypt.h
+++ b/crypt.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -123,10 +123,12 @@ struct stream_cipher_context {
  *
  * \param data The key.
  * \param len The size of the key.
+ * \param use_aes True: Use the aes_ctr128 stream cipher, false: Use RC4.
  *
  * \return A new stream cipher structure.
  */
-struct stream_cipher *sc_new(const unsigned char *data, int len);
+struct stream_cipher *sc_new(const unsigned char *data, int len,
+               bool use_aes);
 
 /**
  * Encrypt or decrypt a buffer using a stream cipher.
index 481a215fb24bc4257c1faebde329c07fa1d7ff1e..ddebe62e16e547e243d808cf9155261698fecbec 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2011-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -8,6 +8,9 @@
 
 /* This should only be incuded from files which provide crypto functions. */
 
+/** AES block size in bytes. */
+#define AES_CRT128_BLOCK_SIZE 16
+
 size_t is_ssh_rsa_key(char *data, size_t size);
 uint32_t read_ssh_u32(const void *vp);
 int uudecode(const char *src, unsigned char *target, size_t targsize);
index 6c71d7e3716829d90485894bc261ee867589d7bf..71aabf53f944eea64d4214fccff354787b7e6f9b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 18ad1568fbb5074bbddd60bc99835bb49967d24e..05002f4eff228e0200d5d6cdce9be0c697ed3bc3 100644 (file)
--- a/daemon.c
+++ b/daemon.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1997-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1997-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index ca3432a31de2fc3eaadf13572cef68358f85c0a2..796a7e6baf76fe15041386041e21d403b4c58cf0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 22f2bd1ba63467c7a13eb15951b000e67ccf3a62..1e95aac6401cf43cf7368a0ad61a2c37e6428587 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/error.h b/error.h
index 08b309ce398d8375c334eb420d6e94408a223189..301e2ca5e1ae36a045a044d8f69c072e82c62a88 100644 (file)
--- a/error.h
+++ b/error.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -28,7 +28,7 @@ DEFINE_ERRLIST_OBJECT_ENUM;
 #define GGO_ERRORS
 #define COLOR_ERRORS
 #define SIGNAL_ERRORS
-#define FADE_ERRORS
+#define OSS_MIX_ERRORS
 #define STDOUT_ERRORS
 #define FILE_WRITE_ERRORS
 #define STDIN_ERRORS
@@ -44,15 +44,11 @@ extern const char **para_errlist[];
        PARA_ERROR(SYNC_COMPLETE, "all buddies in sync"), \
        PARA_ERROR(SYNC_LISTEN_FD, "no fd to listen on"), \
 
-#define OSS_MIX_ERRORS \
-       PARA_ERROR(OSS_MIXER_CHANNEL, "invalid mixer channel"), \
-
-
 #define ALSA_MIX_ERRORS \
        PARA_ERROR(ALSA_MIX_OPEN, "could not open mixer"), \
-       PARA_ERROR(ALSA_MIX_BAD_ELEM, "invalid/unsupported control element"), \
        PARA_ERROR(ALSA_MIX_GET_VAL, "could not read control element state"), \
        PARA_ERROR(ALSA_MIX_SET_VAL, "could not set control element state"), \
+       PARA_ERROR(ALSA_MIX_RANGE, "value control element out of range"), \
 
 
 #define RESAMPLE_FILTER_ERRORS \
@@ -83,6 +79,8 @@ extern const char **para_errlist[];
        PARA_ERROR(NO_VALID_FILES, "no valid file found in playlist"), \
        PARA_ERROR(BAD_PLAY_CMD, "invalid command"), \
 
+#define FADE_ERRORS \
+       PARA_ERROR(BAD_CHANNEL, "invalid channel"), \
 
 #define FLACDEC_FILTER_ERRORS \
        PARA_ERROR(FLACDEC_DECODER_ALLOC, "could not allocate stream decoder"), \
index 630d4c7195416ff54f217521ead604200925e32f..9271dadf8a6424e86ccdc7ae3ff5e504b93e0155 100644 (file)
--- a/error2.c
+++ b/error2.c
@@ -1,3 +1,11 @@
+/*
+ * Copyright (C) 2013-2014 Andre Noll <maan@systemlinux.org>
+ *
+ * Licensed under the GPL v2. For licencing details see COPYING.
+ */
+
+/** \file error2.c Simple program to create error2.h. */
+
 #include <stdio.h>
 #include <stdlib.h>
 #include <assert.h>
@@ -135,6 +143,18 @@ static void dump_bipolar(void)
        }
 }
 
+/**
+ * The main function of error2.c.
+ *
+ * The purpose of this program is to create the error2.h file which defines the
+ * enumerations of all error codes which may be used by any given .c file. This
+ * header is included by most .c files of the paraslash suite.
+ *
+ * Since this program is executed on the build system, it must be compiled with
+ * the host compiler.
+ *
+ * \return \p EXIT_SUCCESS or \p EXIT_FAILURE.
+ */
 int main(void)
 {
        int ret;
diff --git a/exec.c b/exec.c
index 66065d374e4e0a19b9410e00c05ec1c0a35225cf..5f48436d2b2fe8ff29cdb88a49971acdd5b32acd 100644 (file)
--- a/exec.c
+++ b/exec.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2003-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/fade.c b/fade.c
index a8424d67a5db24ea2967670ee6eb90ccaf284100..543a666dd0e32fbf106d263d3cf96e1bb11ce136 100644 (file)
--- a/fade.c
+++ b/fade.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1998-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1998-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -37,13 +37,21 @@ static __printf_2_3 void date_log(int ll, const char *fmt, ...)
                return;
        time(&t1);
        tm = localtime(&t1);
-       printf("%d:%02d:%02d ", tm->tm_hour, tm->tm_min, tm->tm_sec);
+       fprintf(stderr, "%d:%02d:%02d ", tm->tm_hour, tm->tm_min, tm->tm_sec);
        va_start(argp, fmt);
        vprintf(fmt, argp);
        va_end(argp);
 }
 __printf_2_3 void (*para_log)(int, const char*, ...) = date_log;
 
+static int set_channel(struct mixer *m, struct mixer_handle *h, const char *channel)
+{
+
+       PARA_NOTICE_LOG("using %s mixer channel\n", channel?
+               channel : "default");
+       return m->set_channel(h, channel);
+}
+
 /* Fade to new volume in fade_time seconds. */
 static int fade(struct mixer *m, struct mixer_handle *h, int new_vol, int fade_time)
 {
@@ -55,11 +63,12 @@ static int fade(struct mixer *m, struct mixer_handle *h, int new_vol, int fade_t
        if (fade_time <= 0)
                return m->set(h, new_vol);
        secs = fade_time;
-       PARA_NOTICE_LOG("fading to %d in %d seconds\n", new_vol, secs);
        ret = m->get(h);
        if (ret < 0)
                goto out;
        vol = ret;
+       PARA_NOTICE_LOG("fading %s from %d to %d in %d seconds\n",
+               conf.mixer_channel_arg, vol, new_vol, secs);
        diff = new_vol - vol;
        if (!diff) {
                sleep(secs);
@@ -112,7 +121,7 @@ fail:
        exit(EXIT_FAILURE);
 }
 
-static void change_afs_mode_and_play(char *afs_mode)
+static void change_afs_mode(char *afs_mode)
 {
        char *cmd;
 
@@ -122,7 +131,44 @@ static void change_afs_mode_and_play(char *afs_mode)
        cmd = make_message("select %s", afs_mode);
        client_cmd(cmd);
        free(cmd);
-       client_cmd("play");
+}
+
+static int set_initial_volume(struct mixer *m, struct mixer_handle *h)
+{
+       int i, ret;
+
+       for (i = 0; i < conf.ivol_given; i++) {
+               char *p, *ch, *arg = para_strdup(conf.ivol_arg[i]);
+               int32_t iv;
+               p = strchr(arg, ':');
+               if (p) {
+                       *p = '\0';
+                       p++;
+                       ch = arg;
+               } else {
+                       p = arg;
+                       ch = NULL;
+               }
+               ret = para_atoi32(p, &iv);
+               if (ret < 0) {
+                       free(arg);
+                       return ret;
+               }
+               ret = set_channel(m, h, ch);
+               if (!ch)
+                       ch = "default";
+               if (ret < 0) {
+                       PARA_WARNING_LOG("ignoring channel %s\n", ch);
+                       ret = 0;
+               } else {
+                       PARA_INFO_LOG("initial volume %s: %d\n", ch, iv);
+                       ret = m->set(h, iv);
+               }
+               free(arg);
+               if (ret < 0)
+                       return ret;
+       }
+       return 1;
 }
 
 static int sweet_dreams(struct mixer *m, struct mixer_handle *h)
@@ -138,7 +184,6 @@ static int sweet_dreams(struct mixer *m, struct mixer_handle *h)
        int fot = conf.fo_time_arg;
        int fiv = conf.fi_vol_arg;
        int fov = conf.fo_vol_arg;
-       int iv = conf.ivol_arg;
 
        /* calculate wake time */
        time(&t1);
@@ -162,11 +207,14 @@ static int sweet_dreams(struct mixer *m, struct mixer_handle *h)
        client_cmd("stop");
        sleep(1);
        if (fot) {
-               PARA_INFO_LOG("initial volume: %d\n", iv);
-               ret = m->set(h, iv);
+               ret = set_initial_volume(m, h);
+               if (ret < 0)
+                       return ret;
+               change_afs_mode(fo_mood);
+               client_cmd("play");
+               ret = set_channel(m, h, conf.mixer_channel_arg);
                if (ret < 0)
                        return ret;
-               change_afs_mode_and_play(fo_mood);
                ret = fade(m, h, fov, fot);
                if (ret < 0)
                        return ret;
@@ -175,12 +223,14 @@ static int sweet_dreams(struct mixer *m, struct mixer_handle *h)
                if (ret < 0)
                        return ret;
        }
-       if (conf.sleep_mood_given)
-               change_afs_mode_and_play(sleep_mood);
-       else
+       if (conf.sleep_mood_given) {
+               change_afs_mode(sleep_mood);
+               client_cmd("play");
+       } else
                client_cmd("stop");
        if (!fit)
                return 1;
+       change_afs_mode(fi_mood);
        for (;;) {
                time(&t1);
                if (wake_time_epoch <= t1 + fit)
@@ -191,7 +241,7 @@ static int sweet_dreams(struct mixer *m, struct mixer_handle *h)
                        (delay % 3600) / 60);
                sleep(delay);
        }
-       change_afs_mode_and_play(fi_mood);
+       client_cmd("play");
        ret = fade(m, h, fiv, fit);
        PARA_INFO_LOG("fade complete, returning\n");
        return ret;
@@ -246,22 +296,9 @@ static void init_mixers(void)
        }
 }
 
-static int set_channel(struct mixer *m, struct mixer_handle *h)
+static int set_val(struct mixer *m, struct mixer_handle *h)
 {
-       char *channels;
-       int ret;
-
-       ret = m->set_channel(h, conf.mixer_channel_arg);
-       if (ret >= 0) {
-               PARA_NOTICE_LOG("using %s mixer channel\n",
-                       conf.mixer_channel_arg?  conf.mixer_channel_arg
-                               : "default");
-               return ret;
-       }
-       channels = m->get_channels(h);
-       printf("Available channels: %s\n", channels);
-       free(channels);
-       return ret;
+       return m->set(h, conf.val_arg);
 }
 
 static struct mixer *get_mixer_or_die(void)
@@ -330,7 +367,12 @@ int main(int argc, char *argv[])
        ret = m->open(conf.mixer_device_arg, &h);
        if (ret < 0)
                goto out;
-       ret = set_channel(m, h);
+       ret = set_channel(m, h, conf.mixer_channel_arg);
+       if (ret == -E_BAD_CHANNEL) {
+               char *channels = m->get_channels(h);
+               printf("Available channels: %s\n", channels);
+               free(channels);
+       }
        if (ret < 0)
                goto out;
        switch (conf.mode_arg) {
@@ -340,6 +382,9 @@ int main(int argc, char *argv[])
        case mode_arg_snooze:
                ret = snooze(m, h);
                break;
+       case mode_arg_set:
+               ret = set_val(m, h);
+               break;
        default: /* sleep mode */
                ret = sweet_dreams(m, h);
                break;
diff --git a/fd.c b/fd.c
index f70dedc1ec57fd7f2779b5818bb02e7746dfa263..b8d0d77c3ba94091d753714d54b8181ce7c395ac 100644 (file)
--- a/fd.c
+++ b/fd.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/fd.h b/fd.h
index 3cd2638bbef079f2546aeb13c6dbc0ec4fa89634..c8127a4a5a19547c8b54cab8db2d1bb34a9bc6d8 100644 (file)
--- a/fd.h
+++ b/fd.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 691d696af6e3972ac9f2becf68c0712873fe9624..b8e130d4ed124ad67fb6550073e3122be7a346be 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2009-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index f7b2b30792881e6146a4e2af1d12373f14b8a53f..7d63469f8ef68d9ed9e99531c6b31ab7307612dd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 3b68857328b230877e2f8cd9061fb07ee789902c..b3dc022e37f5ceaaca680f63a25173e46ba398d4 100644 (file)
--- a/filter.c
+++ b/filter.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 80bc896be87612d869da1610366333fced5660a3..de8ce8e8b5d0ca128cbc2cb4f3bb568ec416c07e 100644 (file)
--- a/filter.h
+++ b/filter.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 2616c9bdfc940a3415ef6e5abd3a446d4e859b7e..8ce66ea878c309d96e98e944f21af02670d9060c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index d2f256dc152a8e9547968b5f30ece5cff381754c..eeb0e86c32ac558cc483fe1fc4ce1270c8f0d2f8 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2011-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -80,7 +80,7 @@ static FLAC__int64 meta_tell_cb(FLAC__IOHandle handle)
 static int meta_eof_cb(FLAC__IOHandle handle)
 {
        struct private_flac_afh_data *pfad = handle;
-       return pfad->fpos == pfad->map_bytes - 1;
+       return pfad->fpos == pfad->map_bytes;
 }
 
 static int meta_close_cb(FLAC__IOHandle __a_unused handle)
index bf881725165f38415267193473f56bc145dc2b5c..2a58044c59baef2ba898e2d33b642846657e7efd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2011-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 2736a6c769835823b39820b0291069f1ca80a534..751c1a4a65d4d0b3b9e5a90242462a83d3fc6cf1 100644 (file)
--- a/gcrypt.c
+++ b/gcrypt.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2011-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -97,7 +97,7 @@ static void mgf1(unsigned char *seed, size_t seed_len, unsigned result_len,
 {
        gcry_error_t gret;
        gcry_md_hd_t handle;
-       size_t n;;
+       size_t n;
        unsigned char *md;
        unsigned char octet_string[4], *rp = result, *end = rp + result_len;
 
@@ -912,11 +912,25 @@ struct stream_cipher {
        gcry_cipher_hd_t handle;
 };
 
-struct stream_cipher *sc_new(const unsigned char *data, int len)
+struct stream_cipher *sc_new(const unsigned char *data, int len,
+               bool use_aes)
 {
        gcry_error_t gret;
-
        struct stream_cipher *sc = para_malloc(sizeof(*sc));
+
+       if (use_aes) {
+               assert(len >= 2 * AES_CRT128_BLOCK_SIZE);
+               gret = gcry_cipher_open(&sc->handle, GCRY_CIPHER_AES128,
+                       GCRY_CIPHER_MODE_CTR, 0);
+               assert(gret == 0);
+               gret = gcry_cipher_setkey(sc->handle, data,
+                       AES_CRT128_BLOCK_SIZE);
+               assert(gret == 0);
+               gret = gcry_cipher_setctr(sc->handle,
+                       data + AES_CRT128_BLOCK_SIZE, AES_CRT128_BLOCK_SIZE);
+               assert(gret == 0);
+               return sc;
+       }
        gret = gcry_cipher_open(&sc->handle, GCRY_CIPHER_ARCFOUR,
                GCRY_CIPHER_MODE_STREAM, 0);
        if (gret) {
diff --git a/ggo.c b/ggo.c
index 99171c73457d150cb2f4b193f5fe20df0025e662..deea00bbb1ac46074af5f87ec1fc7787922b0138 100644 (file)
--- a/ggo.c
+++ b/ggo.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2008-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/ggo.h b/ggo.h
index 81565e7c24b50d130afd36560c4f5973973f1090..9d9c5044db9a8c0fa4061bcd579f861c353d54ea 100644 (file)
--- a/ggo.h
+++ b/ggo.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2008-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2008-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index ecc16fc89bd66d6a71b351b9e468d125bc8a1775..672c96f1d6b42ac8fd75418486cdb02ce2d24395 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index a4e81ced7283144e65db596898b2637196ded577..91adf2eaaadf67870cdee678019de7701f0f9850 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/gui.c b/gui.c
index 54fc9db98bd91ad836eb79288d42927eadcb1fcf..5a2e659d159e6b6225b5ec94adc2796138d5b358 100644 (file)
--- a/gui.c
+++ b/gui.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1998-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1998-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -560,7 +560,6 @@ static void setup_signal_handling(void)
        para_install_sighandler(SIGCHLD);
        para_install_sighandler(SIGWINCH);
        para_install_sighandler(SIGUSR1);
-       para_sigaction(SIGHUP, SIG_IGN);
 }
 
 /* kill every process in the process group and exit */
diff --git a/gui.h b/gui.h
index 2a3214d0e11acb64d8064ecbfd335a1e06898203..8f25c767b5384c49789101e87802527439b9c6ce 100644 (file)
--- a/gui.h
+++ b/gui.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2007-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index a0c47fb0da23f0fb5ceb5243dff1f3bb80e81238..fa63e90972fa7b3b70ec9b2fec53adf098a3e107 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 9c42a1a85817f6cca6aa827e0ed349a01312949b..1f02e48d9ae5ad2e32ae3273110cb540912e67a0 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 60b877c08082ffa7e1cd7fb41617ab32bb7a465a..3e9c95393c5120c82bd91cc4bd84e5ea9c56f60c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/imdct.c b/imdct.c
index aab498a390ba3ecdeded2452120d729540e84184..93393e9959edb611e32b92c41a8c09c61e3af55e 100644 (file)
--- a/imdct.c
+++ b/imdct.c
@@ -58,7 +58,9 @@ struct mdct_context {
        struct fft_context fft;
 };
 
-/** cos(2 * pi * x / n) for 0 <= x <= n / 4, followed by its reverse */
+/** \cond cosine_tabs */
+
+/* cos(2 * pi * x / n) for 0 <= x <= n / 4, followed by its reverse */
 #define COSINE_TAB(n) static fftsample_t cos_ ## n[n / 2] __a_aligned(16)
 
 COSINE_TAB(16);
@@ -79,6 +81,7 @@ static fftsample_t *cos_tabs[] = {
        cos_16, cos_32, cos_64, cos_128, cos_256, cos_512, cos_1024, cos_2048,
        cos_4096, cos_8192, cos_16384, cos_32768, cos_65536,
 };
+/** \endcond cosine_tabs */
 
 __a_const static int split_radix_permutation(int i, int n)
 {
index 5e4a89b3aa8111cc4f9912893ca0c12bf8f93430..9f2b71953c90f3148d17af0becf0b6a9f3eeaecd 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2011-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 1d6b36aa1a57e87e2c61283a21627e0ab2271064..96401b16a3a89b68182464622e55b6e629b0bc82 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2011-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2011-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/ipc.c b/ipc.c
index 89bbe53564e3c678e97b453e38b7c70be8063314..b8a6fd0c3733d16faa0f35179329d563381c9ec8 100644 (file)
--- a/ipc.c
+++ b/ipc.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index ebc1d1cfa751f3e8ce6f2b8a96923c7c628362f1..0df2fad8c9ff66bef9b633ed2ff0ebbf4042313e 100644 (file)
@@ -1,6 +1,6 @@
 args "--unamed-opts=audio_file --no-handle-version --no-handle-help"
 
-purpose "Print information about audio file(s)."
+purpose "Print information about audio file(s)"
 
 include(header.m4)
 include(loglevel.m4)
index 6fdef59eead56accda9ed3d1cb639d356a34db6f..08c3152121797a39218bced32d4944635acc212a 100644 (file)
@@ -1,6 +1,6 @@
 args "--no-version --no-help"
 
-purpose "Make an audio stream from a local file."
+purpose "Make an audio stream from a local file"
 
 description "
        The afh (audio format handler) receiver can be used to write
index 04b4963d3a9fbe6bc342ffa808ae6f33a8a168fa..be56c9849144b9a266aca80bf6bb2b5a31c15a40 100644 (file)
@@ -1,6 +1,6 @@
 args "--no-version --no-help"
 
-purpose "Native ALSA output plugin."
+purpose "Native ALSA output plugin"
 
 include(header.m4)
 
index 2d4d4ce6ca5166355fa99bdbf28884a2a213daff..a02cc5b73f8e2bf85a94090d3b781b4f85efe827 100644 (file)
@@ -1,6 +1,6 @@
 args "--no-version --no-help"
 
-purpose "Amplify the decoded audio stream."
+purpose "Amplify the decoded audio stream"
 
 option "amp" a
 #~~~~~~~~~~~~~
index ccee4ee62f5fc23903857f9ba29e0b470792548a..29112d711694b239c82dee218ca88745a3f38dc2 100644 (file)
@@ -1,6 +1,6 @@
 args "--no-version --no-help"
 
-purpose "Output plugin for libao."
+purpose "Output plugin for libao"
 
 include(header.m4)
 <qu>
index 36520bfa0f16888020d431d7001c40c17c00146a..f216204f78330449c95bd09acfe35d1d1ded252f 100644 (file)
@@ -1,6 +1,6 @@
 args "--unamed-opts=command --conf-parser --no-handle-version --no-handle-help"
 
-purpose "Communicate with para_audiod through a local socket."
+purpose "Communicate with para_audiod through a local socket"
 
 include(header.m4)
 <qu>
index 5fc15893cb0b963337bac97e47f6885f1cb38a58..2e6f936f3a94d058ee35d24afd59ca9966f958cf 100644 (file)
@@ -1,6 +1,6 @@
 args "--no-handle-help --no-handle-version --conf-parser"
 
-purpose "Connect to para_server, receive, decode and play audio streams."
+purpose "Connect to para_server, receive, decode and play audio streams"
 
 include(header.m4)
 define(CURRENT_PROGRAM,para_audiod)
index 5b4c8ec844314b06eb08c62b909d52677834709b..0530d39551993fb5b9ec35641f975732c4b84068 100644 (file)
@@ -1,6 +1,6 @@
 args "--unamed-opts=command --no-handle-error --conf-parser --no-handle-version --no-handle-help"
 
-purpose "Communicate with para_server through the paraslash control port."
+purpose "Communicate with para_server through the paraslash control port"
 
 include(header.m4)
 define(CURRENT_PROGRAM,para_client)
index 772bdb2ef69615036791b9fa795c2018b55b9c05..501f46ccfd8f0730787c37e5290fa0b19dfa71a9 100644 (file)
@@ -1,6 +1,6 @@
 args "--no-version --no-help"
 
-purpose "Dynamically adjust the volume of an audio stream."
+purpose "Dynamically adjust the volume of an audio stream"
 
 option "blocksize" b
 #~~~~~~~~~~~~~~~~~~~
index f8191fe003bec99957155d71c8ef5a5be694376b..1ba3fb59e79fb462e67a97b926816f1c7885a84e 100644 (file)
@@ -1,6 +1,6 @@
 args "--no-version --no-help"
 
-purpose "Receive a DCCP audio stream."
+purpose "Receive a DCCP audio stream"
 
 option "host" i
 "ip or host"
index 7c731c2b6ec1cdf15322131827fe99add0917e09..59389ffefb5105ee8af56e4d7b844377c9d5d9c7 100644 (file)
@@ -1,6 +1,6 @@
 args "--conf-parser --no-handle-version --no-handle-help"
 
-purpose "An alarm clock and volume-fader for OSS and ALSA."
+purpose "An alarm clock and volume-fader for OSS and ALSA"
 
 include(header.m4)
 define(CURRENT_PROGRAM,para_fade)
@@ -17,11 +17,11 @@ option "mode" o
 #~~~~~~~~~~~~~~
 "how to fade volume"
        enum typestr = "mode"
-       values = "sleep", "snooze", "fade"
+       values = "sleep", "fade", "set", "snooze"
        default = "sleep"
        optional
        details="
-               para_fade knows three different fading modes:
+               para_fade knows the following modes:
 
                sleep mode: Change to the initial volume and select
                the initial afs mood/playlist. Then fade out until
@@ -33,6 +33,8 @@ option "mode" o
                fade: Fade the volume to the given value in the
                given time.
 
+               set: Just set the value and exit.
+
                snooze: Fade out, sleep a bit and fade in.
 "
 
@@ -86,12 +88,15 @@ section "Options for sleep mode"
 option "ivol" -
 #~~~~~~~~~~~~~~
 "set initial volume"
-       int typestr = "volume"
+       string typestr = "[channel:]volume"
        default = "60"
        optional
+       multiple
        details = "
                Used as the start volume, before fading out to the
-               fade out volume.
+               fade out volume. The channel part may be omitted, in
+               which case the default channel is used. This option
+               may be given multiple times.
        "
 
 option "fo-mood" -
@@ -228,4 +233,14 @@ option "fade-time" t
        int typestr = "seconds"
        default = "5"
        optional
+
+section "Options for set mode"
+##############################
+
+option "val" -
+"value to set"
+       int typestr = "value"
+       default = "0"
+       optional
+
 </qu>
index 045b8657236b57ed58b8ececdd8cd183481acb53..4f98884f4bad2c5828f420068e103d14d3923dec 100644 (file)
@@ -1,6 +1,6 @@
 args "--no-version --no-help"
 
-purpose "Output plugin that writes to a local file."
+purpose "Output plugin that writes to a local file"
 
 option "filename" f
 #~~~~~~~~~~~~~~~~~~
index baf6ecdb974a72ec7ceb8058d13e2264e1b448ad..b8b49f622600d749a2b1c7dccb1fe2b0f2b7c16a 100644 (file)
@@ -1,6 +1,6 @@
 args "--no-handle-help --no-handle-version --conf-parser"
 
-purpose "Decode or process audio data from STDIN to STDOUT."
+purpose "Decode or process audio data from STDIN to STDOUT"
 
 include(header.m4)
 include(loglevel.m4)
index 5b44efa61ac98ebd0d13f81801b759bfdc0d9c06..8e21356f3bb362b3aecccd6f4d19bbaea58c7ae2 100644 (file)
@@ -1,6 +1,6 @@
 args "--conf-parser --no-handle-version --no-handle-help"
 
-purpose "Show para_audiod status in a curses window."
+purpose "Show para_audiod status in a curses window"
 
 include(header.m4)
 define(CURRENT_PROGRAM,para_gui)
index b8ece39d9809a85dfa4e3e0d7b09afefd2475954..6db3ff0444fdc7feedd067c79292d8b7abc00bb1 100644 (file)
@@ -1,6 +1,6 @@
 args "--no-version --no-help"
 
-purpose "Receive an HTTP audio stream."
+purpose "Receive an HTTP audio stream"
 
 include(header.m4)
 
index ada70d198b496abc98fb5ed462180f81d4c0d99a..79e101a3e4e88f3e55b096b90780615b82b2e602 100644 (file)
@@ -25,14 +25,3 @@ $(m4depdir)/%.m4d: $(m4_ggo_dir)/%.m4 | $(m4depdir)
 $(ggo_dir)/%.ggo: $(m4_ggo_dir)/%.m4 $(m4_ggo_dir)/header.m4 | $(ggo_dir)
        @[ -z "$(Q)" ] || echo 'M4 $<'
        $(Q) m4 -I $(m4_ggo_dir) $< > $@
-
-$(help2man_dir)/para_%: $(ggo_dir)/%.ggo | $(help2man_dir)
-       @[ -z "$(Q)" ] || echo 'G2X $<'
-       $(Q) printf "#!/bin/sh\nif [ \"\$$1\" = '--version' ]; then \
-                       $(GENGETOPT) $(ggo_opts) --show-version < $<; \
-               elif [ \"\$$1\" = '--help' ]; then \
-                       $(GENGETOPT)  $(ggo_opts) --show-detailed-help < $<; \
-               else \
-                       exit 1; \
-               fi\n" > $@.tmp
-       $(Q) chmod 755 $@.tmp && mv $@.tmp $@
index a6425b3e7f296485101c52e8dc5fa72a9acac355..8b187835d1ecd7d8b109244a9e5efc1b38c2936e 100644 (file)
@@ -1,6 +1,6 @@
 args "--no-version --no-help"
 
-purpose "Decode an mp3 stream."
+purpose "Decode an mp3 stream"
 
 include(header.m4)
 
index 352bea5bc3cfe2e0d2d431c2e4b7c0fb1f31f60f..578d81387ec3562312572ec218b4aa4cf9a234cc 100644 (file)
@@ -1,6 +1,6 @@
 args "--no-version --no-help"
 
-purpose "Output plugin for the Open Sound System."
+purpose "Output plugin for the Open Sound System"
 
 option "device" d
 #~~~~~~~~~~~~~~~~
index 5add6f2e6e340f5eacd4260d33e4166522751261..83ed737ca91168156cb3c3a05efea655e8ceaabd 100644 (file)
@@ -1,6 +1,6 @@
 args "--no-version --no-help"
 
-purpose "Output plugin for Mac OS coreaudio."
+purpose "Output plugin for Mac OS coreaudio"
 
 section "osx options"
 #####################
index cb406bec8f45cad5fdde710ddc0ee8657d2e56c6..168755907fd302f8eb5f95c5484f04df210f95a9 100644 (file)
@@ -1,6 +1,6 @@
 args "--unamed-opts=audio_file --no-handle-version --conf-parser --no-handle-help"
 
-purpose "Command line audio player."
+purpose "Command line audio player"
 
 description "para_play operates either in command mode or in insert
 mode. In insert mode it presents a prompt and allows to enter commands
index 9e84dcfcea04934a7f5a2f3f776d5afabe0b6bc1..20ff86fe4b332038e497313540a2cea515f486a4 100644 (file)
@@ -1,6 +1,6 @@
 args "--no-version --no-help"
 
-purpose "Delay processing of an audio stream."
+purpose "Delay processing of an audio stream"
 
 option "duration" d
 #~~~~~~~~~~~~~~~~~~
index 086c9c0a5c73049630bda211a8433ddfebba3963..9a9a88046f66b8c31fc23c670df730539525912d 100644 (file)
@@ -1,6 +1,6 @@
 args "--no-handle-help --no-handle-version"
 
-purpose "A command line HTTP/DCCP/UDP stream grabber."
+purpose "A command line HTTP/DCCP/UDP stream grabber"
 
 include(header.m4)
 include(loglevel.m4)
index 4f4af4b0c41182d21faecf888926488bb372095e..2e5f40054edcfa9c9239139e1be3aaf8a8857597 100644 (file)
@@ -1,6 +1,6 @@
 args "--no-version --no-help"
 
-purpose "Transform raw audio to a different sample rate."
+purpose "Transform raw audio to a different sample rate"
 
 include(header.m4)
 
index 4c52d2c22b93d937777d7ded66e28ac946ecdd2a..916e88563ea32af2fc75d94c19a74f5c03ea0b64 100644 (file)
@@ -1,6 +1,6 @@
 args "--conf-parser --no-handle-version --no-handle-help"
 
-purpose "Manage and stream audio files."
+purpose "Manage and stream audio files"
 
 include(header.m4)
 define(CURRENT_PROGRAM,para_server)
index 48770d974dc495f205a1538367511600fee97281..dcdad4f7b70143647ed40bc36e5c5cdefdc7975b 100644 (file)
@@ -1,6 +1,6 @@
 args "--no-version --no-help"
 
-purpose "Receive an UDP audio stream."
+purpose "Receive an UDP audio stream"
 
 option "host" i
 "ip or host to receive udp packets from"
index 8b13f457a1480a3f430b31c478d5237ae9a0ba61..83e8bcabf4ccbfe642e39d8ab07eaa7371427943 100644 (file)
@@ -1,6 +1,6 @@
 args "--no-handle-help --no-handle-version"
 
-purpose "Play wav or raw audio."
+purpose "Play wav or raw audio"
 
 include(header.m4)
 include(loglevel.m4)
diff --git a/man_util.bash b/man_util.bash
new file mode 100755 (executable)
index 0000000..cb7519c
--- /dev/null
@@ -0,0 +1,108 @@
+#!/usr/bin/env bash
+
+# Receivers, filters, writers are called "modules" in this script
+print_modhelp()
+{
+       local ggo="$1"
+
+       $GENGETOPT --show-detailed-help \
+               --set-version "" \
+               --set-package "" \
+               < "$ggo" | awk 'BEGIN {
+                       have_purpose=0
+                       have_usage=0
+               } {
+                       if (!have_purpose) {
+                               if ($0 ~ /^ *$/)
+                                       next
+                               printf(" (%s):", $0)
+                               have_purpose=1
+                               next
+                       }
+                       if (!have_usage) {
+                               if ($0 ~ /^Usage: /) {
+                                       have_usage=1
+                               }
+                               next
+                       }
+                       print $0
+               }'
+}
+
+make_help()
+{
+       local target="$1" module ggo
+
+       ggo="$GGO_DIR/$1.ggo"
+       $GENGETOPT --show-detailed-help \
+               --set-version "$VERSION" \
+               --set-package "para_$1" \
+               < "$ggo"
+
+       if [[ "$target" == 'recv' || "$target" == 'audiod' ]]; then
+               for module in $RECEIVERS; do
+                       ggo="$GGO_DIR/${module}_recv.ggo"
+                       [[ ! -f "$ggo" ]] && continue
+                       printf "\nOptions for the $module receiver"
+                       print_modhelp "$ggo"
+               done
+       fi
+       if [[ "$target" == 'filter' || "$target" == 'audiod' ]]; then
+               for module in $FILTERS; do
+                       ggo="$GGO_DIR/${module}_filter.ggo"
+                       [[ ! -f "$ggo" ]] && continue
+                       printf "\nOptions for the $module filter"
+                       print_modhelp "$ggo"
+               done
+       fi
+       if [[ "$target" == 'write' || "$target" == 'audiod' ]]; then
+               for module in $WRITERS; do
+                       ggo="$GGO_DIR/${module}_write.ggo"
+                       [[ ! -f "$ggo" ]] && continue
+                       printf "\nOptions for the $module writer"
+                       print_modhelp "$ggo"
+               done
+       fi
+}
+
+set -u
+
+(($# != 1)) && exit 1
+
+# These must be set by the caller (make or help2man)
+export COMMAND_LISTS FILTERS GENGETOPT GGO_DIR HELP2MAN HELP2MAN_DIR \
+       RECEIVERS VERSION WRITERS
+
+# If either --version or --help-xxx was given, we are being called by help2man
+if [[ "$1" == "--version" ]]; then
+       echo "$VERSION"
+       exit $?
+fi
+if [[ "$1" =~ --help- ]]; then
+       make_help "${1#--help-}"
+       exit $?
+fi
+
+# Called by make, run help2man
+output_file="$1"
+target="${output_file##*/para_}"
+target="${target%.*}" # server, audiod, filter, ...
+link="$HELP2MAN_DIR/para_$target"
+
+cl_opts=
+for cl in $COMMAND_LISTS; do
+       cl_opts+=" --include $cl"
+done
+
+# Create a symlink para_$target, pointing to this script. This hack is
+# necessary because help2man always includes the name of the executable in its
+# output.
+ln -sf "$PWD/$0" "$link"
+
+# This will call us again twice, with either --help-$target or --version given.
+$HELP2MAN --no-info --help-option "--help-$target" $cl_opts \
+       "$link" > "$output_file"
+if (($? != 0)); then
+       rm -f "$output_file"
+       exit 1
+fi
diff --git a/mix.h b/mix.h
index 427a84f559c8f67369c24e9f4910f9cccdb83e8a..cfcfd72b6058bbd2ededbf6693805581d42957e5 100644 (file)
--- a/mix.h
+++ b/mix.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2012-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/mm.c b/mm.c
index 5ce3476eca25fc8f5304ae81d04c1f526c1b199a..6f2c088e9e653d375e4ab76157f58582f0d04797 100644 (file)
--- a/mm.c
+++ b/mm.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2007-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/mm.h b/mm.h
index b635a5a841597a4d56c389c1aee4063c92be0f12..9c64002b59908520d11c187f935fffc2e37c6725 100644 (file)
--- a/mm.h
+++ b/mm.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2007-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/mood.c b/mood.c
index d15e011f04c720cef376b73752d9fcba51c61f00..897c22b9997d21d25f3644cd866706a7152182d9 100644 (file)
--- a/mood.c
+++ b/mood.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2007-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -18,6 +18,7 @@
 #include "ipc.h"
 #include "mm.h"
 #include "sideband.h"
+#include "mood.h"
 
 /**
  * Contains statistical data of the currently admissible audio files.
@@ -838,7 +839,7 @@ int change_current_mood(char *mood_name)
        if (ret < 0)
                return ret;
        log_statistics();
-       PARA_INFO_LOG("%d admissible files \n", statistics.num);
+       PARA_INFO_LOG("%d admissible files\n", statistics.num);
        for (i = 0; i < statistics.num; i++) {
                struct admissible_file_info *a = aa.array + i;
                ret = add_to_score_table(a->aft_row, a->score);
diff --git a/mood.h b/mood.h
index f97081a96c7d16d06e2f8d8ea865547c34035134..10e2ba10eb87712b9a483cdeee56e37d8f96c6ae 100644 (file)
--- a/mood.h
+++ b/mood.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2007-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 251574a528d38a665b0ab67c88c213f6e27b5e41..2b558cbbaa1d8c82fd5fc121b6a1ce30fbff08ee 100644 (file)
--- a/mp3_afh.c
+++ b/mp3_afh.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2003-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2003-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 33c0dfc9f7d5019484a17f97a47064fb75798358..feaa1d1f03f9a9a4bd4b0d6f1984219b480099ad 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/net.c b/net.c
index 986660fa8f12fd11649d9bd4b3310b01837811dc..c11f67c4bac3f7f316daa317ae71ed8ebe6f10a9 100644 (file)
--- a/net.c
+++ b/net.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/net.h b/net.h
index e249498e3901b307bb68c57fe9bb4ac4d33d93a2..877d1cbbe537bcb70f3d4ededc91514f226e61c0 100644 (file)
--- a/net.h
+++ b/net.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index a6120be28bfcf8bfb581cc1fb37a8f37776a2533..debc0c9f3dec6e9416bf42ea52a0e3c05ff6d6e6 100644 (file)
--- a/ogg_afh.c
+++ b/ogg_afh.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2004-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index ac70eb3f0fc543a316f636c7a589cfaa60018c5c..21444fa33b1b35f8f1a7653b103f27469956e680 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2004-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index a4d44f4395a178c7cdfab2a0b74baba81c37aef3..59a5c486423e3e34f51dcdb3e541fe65efe15b60 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2010-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index f41150f2638c62d4dd48fc23f9705f1dcf94ac4d..3222b4aaaaabc046ac3983359ae58d868861c46a 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -136,14 +136,13 @@ open:
                0, /* no initial bytes */
                ovc); /* the ov_open_callbacks */
        if (oret == OV_ENOTVORBIS || oret == OV_EBADHEADER) {
-               /* this might be due to the input buffer being too small */
+               /* maybe the input buffer is too small */
                if (!btr_no_parent(btrn)) {
                        fn->min_iqs += 1000;
                        iqs = btr_get_input_queue_size(btrn);
                        ret = 0;
                        if (iqs < fn->min_iqs)
                                goto out;
-                       PARA_CRIT_LOG("iqs: %zu\n", iqs);
                        btr_merge(btrn, fn->min_iqs);
                        pod->converted = 0;
                        goto open;
@@ -236,13 +235,8 @@ static int ogg_post_select(__a_unused struct sched *s, struct task *t)
                        break;
                fn->min_iqs = 0;
                have += ret;
-               if (have < OGGDEC_OUTPUT_CHUNK_SIZE)
-                       continue;
-               if (btr_get_output_queue_size(btrn) > OGGDEC_MAX_OUTPUT_SIZE)
+               if (have >= OGGDEC_OUTPUT_CHUNK_SIZE)
                        break;
-               btr_add_output(buf, have, btrn);
-               buf = para_malloc(OGGDEC_OUTPUT_CHUNK_SIZE);
-               have = 0;
        }
        pod->have_more = (ret > 0);
        if (have > 0) {
index b079bcd5f3f373ed3b9e4826f010edd0e70a6201..10fe25d8e8dc00a3e085b4d6f2eae832f913b8a2 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2012-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index cae9a6e9164de556ce5bde23de6c81aad7b476c3..fea6727463c858c87b0d9729a37800ff08a58b7b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2013-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index c3b405cc338df6666342e863aa3a0ac053ea8500..9022fbab63e0c3e2626528bcfa752ff6fde8faa3 100644 (file)
@@ -2,7 +2,7 @@
  * Copyright (c) 2002-2007 Jean-Marc Valin
  * Copyright (c) 2008 CSIRO
  * Copyright (c) 2007-2012 Xiph.Org Foundation
- * Copyright (C) 2012-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2012-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -277,7 +277,7 @@ static void opusdec_pre_select(struct sched *s, struct task *t)
 
        if (ret != 0)
                return sched_min_delay(s);
-       if (ctx->have_more)
+       if (!ctx->have_more)
                return;
        if (btr_get_output_queue_size(fn->btrn) <= OPUSDEC_MAX_OUTPUT_SIZE)
                return sched_min_delay(s);
index 5182ad238b81f706ebac2f6abdcaec3859b809dc..5fbfea08e178a56f43a0ead27d3a88c603c4145b 100644 (file)
--- a/oss_mix.c
+++ b/oss_mix.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1998-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1998-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -98,7 +98,7 @@ static int oss_mix_set_channel(struct mixer_handle *handle,
                handle->id = i;
                return 1;
        }
-       return -E_OSS_MIXER_CHANNEL;
+       return -E_BAD_CHANNEL;
 }
 
 static int oss_mix_get(struct mixer_handle *handle)
index 3c61a445eec2456ec5fdcf585a9d95753d4cd71c..d547acf7422e2437a2af0d74f706d477bea8c309 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2009-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index f1e308d8beb498586f60acbe1fa93b24077bc320..889854c22a711a167e5bbfa61ac35241c60f8a95 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/para.h b/para.h
index d1e266fcfb249758b633860540a4bd637cc7152a..6bd048d8c590cb2bc493a1f65860a30517f6230e 100644 (file)
--- a/para.h
+++ b/para.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1997-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1997-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/play.c b/play.c
index 01125ab647f73482bb248ecdbaac2b8b2ad13021..5736a2ddbdfc04199f6d2bf6544f9ce2d35a56f8 100644 (file)
--- a/play.c
+++ b/play.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2012-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index c822e0802c53fdfbb72b5d728e0ca84aabbedc45..b83f8df8c30e93a04af060714445f7c40ef9ee63 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2007-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index c72d6d4951bb784816502a982185647ef9bcfe63..7371038a57cd7ef4450f02ddaf0add12c09050ca 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2007-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index f4ef76e245c98ca141caf4bd04e8594087ac6da6..6fac4cb31d944db1aa603fbfdd71819a946a359c 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2009-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/recv.c b/recv.c
index 7a5549aaa27fe49f267d5cdcf122e8b244649f34..babd1e306989b18f2702ec14ef0e26e5706e99e5 100644 (file)
--- a/recv.c
+++ b/recv.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/recv.h b/recv.h
index 68222acffc7fc41f8fa2c4d644ff70ee3c4f753d..a590aabdb02b3a79902f4ea3d02e8379bd81133f 100644 (file)
--- a/recv.h
+++ b/recv.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 2ea8a5992034419cf0375bae43851172c136b765..2d6aa74a55063da799f35d1b9abbe07b33aa59b4 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -50,19 +50,19 @@ static void *parse_receiver_args(int receiver_num, char *options)
 }
 
 /**
- * check if given string is a valid command line for any receiver
+ * Check if the given string is a valid receiver specifier.
  *
  * \param \ra string of the form receiver_name:options
  * \param receiver_num contains the number of the receiver upon success
  *
  * This function checks whether \a ra starts with the name of a supported
  * paraslash receiver, optinally followed by a colon and any options for that
- * receiver. If a valid receiver name was found and further are present, the
- * remaining part of \a ra is passed to that receiver's config parser.
+ * receiver. If a valid receiver name was found the remaining part of \a ra is
+ * passed to the receiver's config parser.
  *
- * \return On success, a pointer to the gengetopt args info struct is returned
- * and \a receiver_num contains the number of the receiver. Otherwise this function
- * returns \p NULL.
+ * \return On success, a pointer to the receiver-specific gengetopt args info
+ * struct is returned and \a receiver_num contains the number of the receiver.
+ * On errors, the function returns \p NULL.
  */
 void *check_receiver_arg(char *ra, int *receiver_num)
 {
index 5ad584ded50eaad435f5afdfeedccac9f40bcd75..2caa1e21395a7a77909d0284f6e44e3013640857 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2012-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index a5a1c2594f0de72f7fc75dffeac3d93c8cf59d6c..e85661e4c0d57e56fb6b245b5c106c6e87090180 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index ce89d4b792db234ea8bba7dc04f04ce1076cf08e..075eb070927c97429f62c6f4acb3c02af61cdafa 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/sched.c b/sched.c
index d42e149801e4a7ecabd4f96cc1f79802eb7a4ff1..8b68667bf453c481df6950ec727be3b134037f99 100644 (file)
--- a/sched.c
+++ b/sched.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/sched.h b/sched.h
index 234a8458d5870a1f14c66c81c140b61c0c20bf01..f15e4efb666738d5f12da542e3ae10c3d774132e 100644 (file)
--- a/sched.h
+++ b/sched.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/score.c b/score.c
index 37f4c55072d920bcef85ec622f6568c91b0ed11e..f1afd22be7bc5c580312ca8eca3d128d1044dee0 100644 (file)
--- a/score.c
+++ b/score.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2007-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/send.h b/send.h
index 01e0d0a850586312d4c6f4376ee7373ccdde9f93..8a69cb714ecd6c4a33d5c9c3bd8e99a9b3aff454 100644 (file)
--- a/send.h
+++ b/send.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index a16869b07154022bfd9adf4a56250d34a2de16fb..0baac3a6f5c9713e810f97b53d13275f4178c610 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index f92ef5518cd507ea5e1ef6026e03f841f4b37e37..fa19ce4225111e33ec7f192935f455c6cd5b2d76 100644 (file)
--- a/server.c
+++ b/server.c
@@ -1,66 +1,37 @@
 /*
- * Copyright (C) 1997-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1997-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
 
 /** \file server.c Paraslash's main server. */
 
-
 /**
- * \mainpage Starting points for getting an overview:
+ * \mainpage Main data structures:
  *
- *     - The main programs: \ref server.c, \ref audiod.c, \ref client.c,
- *       \ref audioc.c, \ref afh.c, \ref play.c,
  *     - Server: \ref server_command, \ref sender,
- *     - Audio file selector: \ref audio_format_handler, \ref afs_table,
- *     - Client: \ref receiver, \ref receiver_node, \ref filter,
- *       \ref filter_node, \ref writer_node.
- *
- *
- * The gory details, listed by topic:
+ *     - Audio file selector: \ref afs_info, \ref afs_table,
+ *     - Audio format handler: \ref audio_format_handler, \ref afh_info
+ *     - Receivers/filters/writers: \ref receiver, \ref receiver_node,
+ *       \ref filter, \ref filter_node, \ref writer_node, \ref writer.
  *
- *     - Audio format handlers: \ref send_common.c \ref mp3_afh.c,
- *       \ref ogg_afh.c, \ref aac_afh.c, \ref wma_afh.c, \ref spx_afh.c
- *     - Decoders: \ref mp3dec_filter.c, \ref oggdec_filter.c,
- *       \ref aacdec_filter.c, \ref wmadec_filter.c, spxdec_filter.c,
- *       \ref flacdec_filter.c,
- *     - Volume normalizer: \ref compress_filter.c,
- *     - Output: \ref alsa_write.c, \ref osx_write.c, \ref oss_write.c,
- *     - http: \ref http_recv.c, \ref http_send.c,
- *     - udp: \ref udp_recv.c, \ref udp_send.c,
- *     - dccp: \ref dccp_recv.c, \ref dccp_send.c,
- *     - Audio file selector: \ref afs.c, \ref aft.c, \ref mood.c,
- *     - Afs structures: \ref afs_table, \ref audio_file_data,
- *       \ref afs_info \ref afh_info,
- *     - Afs tables: \ref aft.c, \ref mood.c, \ref playlist.c,
- *       \ref attribute.c, \ref score.c,
- *     - The virtual streaming system: \ref vss.c, \ref chunk_queue.c.
+ * Selected APIs:
  *
- * Lower levels:
- *
- *     - Scheduling: \ref sched.c, \ref sched.h,
- *     - Networking: \ref net.c,
- *     - File descriptors: \ref fd.c,
- *     - Signals: \ref signal.c,
- *     - Daemons: \ref daemon.c,
- *     - Strings: \ref string.c, \ref string.h,
+ *     - Scheduling: \ref sched.h,
+ *     - Buffer trees: \ref buffer_tree.h,
+ *     - Sideband API: \ref sideband.h,
+ *     - Crypto: \ref crypt.h, \ref crypt_backend.h,
+ *     - Error subsystem: \ref error.h, \ref error2.c,
+ *     - Inter process communication: \ref ipc.h,
+ *     - Forward error correction: \ref fec.h,
+ *     - Daemons: \ref daemon.h,
+ *     - Mixer API: \ref mix.h,
+ *     - Interactive sessions: \ref interactive.h,
+ *     - File descriptors: \ref fd.h,
+ *     - Signals: \ref signal.h,
+ *     - Networking: \ref net.h,
  *     - Time: \ref time.c,
- *     - Spawning processes: \ref exec.c,
- *     - Inter process communication: \ref ipc.c,
- *     - Blob tables: \ref blob.c,
- *     - The error subsystem: \ref error.h.
- *     - Access control for paraslash senders: \ref acl.c, \ref acl.h.
- *     - Internal crypto API: \ref crypt.h.
- *     - interactive sessions (libreadline): \ref interactive.c.
- *
- * Low-level data structures:
- *
- *     - Doubly linked lists: \ref list.h,
- *     - Ring buffer: \ref ringbuffer.c, \ref ringbuffer.h,
- *     - openssl: \ref crypt.c
- *     - libgcrypt: \ref gcrypt.c
- *     - Forward error correction: \ref fec.c.
+ *     - Doubly linked lists: \ref list.h.
  */
 
 #include <netinet/in.h>
index 820295a3ed8f627431081e8eecc540e43c9a19c1..64f0cc75972b9ec17ff9693fe0664d24c9ec4a42 100644 (file)
--- a/server.h
+++ b/server.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1997-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1997-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 6004651f110537ecf0da5eaf220365078e264cd9..a5f191615b4582542e5408442c69cf5096d7eea3 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2012-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 20e195b364b3d8bffcce3df4cd2c48f9e6afe4a8..4a838cee916cba03e85634784b0b3488595873a7 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2012-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2012-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 3b202a2c8ba6a62b23fa46f7e99ed207c4f08750..972d9d129a03f8060cda1a8dd2d98e3b181b2875 100644 (file)
--- a/signal.c
+++ b/signal.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2004-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -11,6 +11,9 @@
 #include "para.h"
 #include "error.h"
 #include "fd.h"
+#include "list.h"
+#include "sched.h"
+#include "signal.h"
 
 static int signal_pipe[2];
 
index 92af8170529fc1cbe3d5fa41d8bc79a2257f29d7..526f15025c658f5f09b1388feba057addb848864 100644 (file)
--- a/signal.h
+++ b/signal.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2007-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2007-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/spx.h b/spx.h
index c4999f07a6a32c2229afa8187c13871c64b3a7f8..3ae2c87cd85abb42a89d7663ab0540903dff7e23 100644 (file)
--- a/spx.h
+++ b/spx.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2010-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 8f7d715cf20cc730d985845818c8dd49f4bde200..2afebb186573fdc190f473efb467923c2c052ca8 100644 (file)
--- a/spx_afh.c
+++ b/spx_afh.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2010-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2010-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 3bd3d48d2b9fbc70fe8c8283a3ab47421ef1c463..f770be7db07d759dac671e1c19bb459cb8a133e8 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Copyright (C) 2002-2006 Jean-Marc Valin
- * Copyright (C) 2010-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2010-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 9bba042c040c0687eb33f0fc156dbf62f06392c9..72ecd62a8d9c11460e6962689f52446e3b43ccb7 100644 (file)
@@ -1,6 +1,6 @@
 /*
  * Copyright (C) 2002-2006 Jean-Marc Valin
- * Copyright (C) 2010-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2010-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/stat.c b/stat.c
index 8036de3a9d682d9bfe7506a09ee52cabbb9780ea..afc9c389d801b8d1fe970a64f7001516e930a831 100644 (file)
--- a/stat.c
+++ b/stat.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/stdin.c b/stdin.c
index 20b9250e9b7fbf3c252e20dff8891bfeeb5112dd..d5425b28504493a65eda7381959cba8af31dbf5f 100644 (file)
--- a/stdin.c
+++ b/stdin.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/stdin.h b/stdin.h
index cdf0c67fd57a1078f38a9f175d598adf65ece520..22ea7ed6cab3fb16ebcda30a35f0c878600a8203 100644 (file)
--- a/stdin.h
+++ b/stdin.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index cf33bf6d0b67cf49625d27b4d602dec35922d32d..4554145f3d24883e828c849e856e4eca2f428cc6 100644 (file)
--- a/stdout.c
+++ b/stdout.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index a21b7cedfb699d9402f666a1a754a26d12cdcec1..dbf8866b368f16d800ab90e799a71e07ff726954 100644 (file)
--- a/stdout.h
+++ b/stdout.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 38e25b09c5f3ff2b289d6e943a0f7bde3bfc23ad..8cc7d5d7965e725839375237af3f063b1b44d13b 100644 (file)
--- a/string.c
+++ b/string.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2004-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2004-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -36,7 +36,7 @@
  *
  * \sa realloc(3).
  */
-__must_check __malloc void *para_realloc(void *p, size_t size)
+__must_check void *para_realloc(void *p, size_t size)
 {
        /*
         * No need to check for NULL pointers: If p is NULL, the call
index 935c7d456c2c5b6910b356f2ddd52fd62848cf67..b13a0d86bbe57b2fb7a31e81ad04c3f19ca96bad 100644 (file)
--- a/string.h
+++ b/string.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/time.c b/time.c
index fe431208d27130f452e0d61e7d801477730fbbfa..c405351a96f978c39b18ec0466a65fad012aff26 100644 (file)
--- a/time.c
+++ b/time.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 96b6c73123acba4da30e34e9d50850cfa7b554ac..15cf73eb210dd0354b27abf795e60fdd1959377b 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 4580f009b3cb4b75d2f9e4c3a4e274cfc230e387..6ed5026ac31102932d4fb3b23e6e87d375002096 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 31ffe67b6e96f44aaabb2c32ac31ef4cfee2d468..4815e5d368c28ce8f66d00d0da3af2ce6c9bc003 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 5a1d69208c2720ead0c37dcadd29acc08a918ccc..120b0fdb44d6f9e64b9264b85f22ddafe419131f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index f8f7e6a33f69a4624f347e8b2c95f88e61111bb7..3a190e634a6a4445edb200ecb34b205dbf762def 100644 (file)
--- a/version.c
+++ b/version.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2013-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -7,6 +7,7 @@
 /** \file version.c Some helpers for printing version and copyright strings. */
 
 #include "para.h"
+#include "version.h"
 
 /** \file version.h Macros for printing the version string. */
 
@@ -28,8 +29,8 @@ __a_const const char *version_git(void)
  *
  * \param pfx The program name (without the leading "para_").
  *
- * \return A statically allocated string which contains the program name, the
- * git version and the codename. It must not be freed by the caller.
+ * \return A statically allocated string which contains the program name and
+ * the git version. It must not be freed by the caller.
  */
 const char *version_single_line(const char *pfx)
 {
@@ -56,7 +57,7 @@ const char *version_text(const char *pfx)
        static char buf[512];
 
        snprintf(buf, sizeof(buf) - 1, "%s\n"
-               "Copyright (C) 2013 Andre Noll\n"
+               "Copyright (C) 2014 Andre Noll\n"
                "This is free software with ABSOLUTELY NO WARRANTY."
                " See COPYING for details.\n"
                "Report bugs to <maan@systemlinux.org>.\n"
diff --git a/vss.c b/vss.c
index 2349b0931cfcc22b4d54b01f6c26f6b545614e6a..3ace49e9e90e8fb27144964a0f61f1fae267e843 100644 (file)
--- a/vss.c
+++ b/vss.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 1997-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 1997-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/vss.h b/vss.h
index bedbb8017a1c4cddf12282d53a48b71b6bb60648..c4d6f7376933a9f59569405dfa9e847e2c9dc0b9 100644 (file)
--- a/vss.h
+++ b/vss.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index eaef1f5cca7b79c4b532d91dda239aaa7e53c0ee..ea3236c7f56a0ee1b2719b47a80dc4e4754154ad 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 475079bae46270f9be09d9559bbaa097b0befbbf..8f7428f7c54b5d5ec04dedad57971d5706212d25 100644 (file)
        </tr>
        <tr>
                <td>
-                       <br />
-                       <a href="index.html">Home</a><br />
-                       <a href="FEATURES.html">Features</a><br />
-                       <a href="screenshots.html">Screenshots</a><br />
-                       <a href="download.html">Download</a><br />
-                       <a href="documentation.html">Documentation</a><br />
-                       <a href="/gitweb/gitweb.cgi?p=.git;a=summary">Changes</a><br />
-                       <a href="devel.html">Development</a><br />
-                       <a href="license.html">License</a><br />
-                       <a href="contact.html">Contact</a><br />
-                       <a href="CREDITS.html">Credits</a><br />
+                       <br>
+                       <a href="index.html">Home</a><br>
+                       <a href="FEATURES.html">Features</a><br>
+                       <a href="screenshots.html">Screenshots</a><br>
+                       <a href="download.html">Download</a><br>
+                       <a href="documentation.html">Documentation</a><br>
+                       <a href="/gitweb/gitweb.cgi?p=.git;a=summary">Changes</a><br>
+                       <a href="devel.html">Development</a><br>
+                       <a href="license.html">License</a><br>
+                       <a href="contact.html">Contact</a><br>
+                       <a href="CREDITS.html">Credits</a><br>
                </td>
                <td>
index cf919d0d8b6c86d85c03a3355c53fca7e731f183..68980a865dc082af5a2ccbeae0e08184fe57a228 100644 (file)
        </tr>
        <tr>
                <td>
-                       <br />
-                       <a href="../../index.html">Home</a><br />
-                       <a href="../../FEATURES.html">Features</a><br />
-                       <a href="../../screenshots.html">Screenshots</a><br />
-                       <a href="../../download.html">Download</a><br />
-                       <a href="../../documentation.html">Documentation</a><br />
-                       <a href="/gitweb/gitweb.cgi?p=.git;a=summary">Changes</a><br />
-                       <a href="../../devel.html">Development</a><br />
-                       <a href="../../license.html">License</a><br />
-                       <a href="../../contact.html">Contact</a><br />
-                       <a href="../../CREDITS.html">Credits</a><br />
+                       <br>
+                       <a href="../../index.html">Home</a><br>
+                       <a href="../../FEATURES.html">Features</a><br>
+                       <a href="../../screenshots.html">Screenshots</a><br>
+                       <a href="../../download.html">Download</a><br>
+                       <a href="../../documentation.html">Documentation</a><br>
+                       <a href="/gitweb/gitweb.cgi?p=.git;a=summary">Changes</a><br>
+                       <a href="../../devel.html">Development</a><br>
+                       <a href="../../license.html">License</a><br>
+                       <a href="../../contact.html">Contact</a><br>
+                       <a href="../../CREDITS.html">Credits</a><br>
                </td>
                <td>
                        <h1>API Reference</h1>
index 62ebf3a8e5f897135fc20e1d754e1e6ce6ff5436..e809c8b22be7ddea6a6e9335550670098a303b06 100644 (file)
@@ -112,7 +112,7 @@ can be used by any scripting language to produce user interfaces with
 little programming effort.
 
 All connections between para_server and para_client are encrypted
-with a symmetric RC4 session key. For each user of paraslash you must
+with a symmetric session key. For each user of paraslash you must
 create a public/secret RSA key pair for authentication.
 
 If para_client is started without non-option arguments, an interactive
@@ -505,9 +505,9 @@ User management
 para_server uses a challenge-response mechanism to authenticate
 requests from incoming connections, similar to ssh's public key
 authentication method. Authenticated connections are encrypted using
-the RC4 stream cipher.
+a stream cipher, either RC4 or AES in integer counter mode.
 
-In this chapter we briefly describe RSA and RC4 and sketch the
+In this chapter we briefly describe RSA, RC4 and AES, and sketch the
 REFERENCE(Client-server authentication, authentication handshake)
 between para_client and para_server. User management is discussed
 in the section on REFERENCE(The user_list file, the user_list file).
@@ -517,8 +517,8 @@ in a REFERENCE(Connecting para_audiod, separate section).
 
 
 
-RSA and RC4
-~~~~~~~~~~~
+RSA, RC4, AES
+~~~~~~~~~~~~~
 
 RSA is an asymmetric block cipher which is used in many applications,
 including ssh and gpg. An RSA key consists in fact of two keys,
@@ -537,6 +537,15 @@ strong encryption by today's standards. Since the same key must never
 be used twice, a different, randomly-generated key is used for every
 new connection.
 
+AES, the advanced encryption standard, is a well-known symmetric block
+cipher, i.e. a transformation operating on fixed-length blocks which
+is determined by a single key for both encryption and decryption. Any
+block cipher can be turned into a stream cipher by generating
+a pseudo-random key stream by encrypting successive values of a
+counter. The AES_CTR128 stream cipher used in paraslash is obtained
+in this way from the AES block cipher with a 128 bit block size.
+
+
 Client-server authentication
 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 
@@ -557,7 +566,7 @@ as follows:
        fixed-length buffer with random bytes, encrypts that buffer
        using the public key and sends the encrypted buffer to the
        client. The first part of the buffer is the challenge which
-       is used for authentication while the second part is the RC4
+       is used for authentication while the second part is the
        session key.
 
        - para_client receives the encrypted buffer and decrypts it
@@ -574,12 +583,12 @@ as follows:
 
        - Otherwise the user is considered authenticated and the client
        is allowed to proceed by sending a command to be executed. From
-       this point on the communication is encrypted using the RC4
-       stream cipher with the session key known to both peers.
+       this point on the communication is encrypted using the stream
+       cipher with the session key known to both peers.
 
 paraslash relies on the quality of the pseudo-random bytes provided
 by the crypto library (openssl or libgcrypt), on the security of
-the implementation of the RSA and RC4 crypto routines and on the
+the implementation of the RSA, RC4 and AES crypto routines and on the
 infeasibility to invert the SHA1 function.
 
 Neither para_server or para_client create RSA keys on their own. This
@@ -1071,17 +1080,18 @@ It is possible to change the behaviour of the add command by using the
 Troubleshooting
 ~~~~~~~~~~~~~~~
 
-Use the debug loglevel (option -l debug for most commands) to show
-debugging info. Almost all paraslash executables have a brief online
-help which is displayed by using the -h switch. The --detailed-help
-option prints the full help text.
+Use the debug loglevel (-l debug) to show debugging info. All paraslash
+executables have a brief online help which is displayed when -h is
+given. The --detailed-help option prints the full help text.
 
 If para_server crashed or was killed by SIGKILL (signal 9), it
 may refuse to start again because of "dirty osl tables". In this
 case you'll have to run the oslfsck program of libosl to fix your
-database. It might be necessary to use --force (even if your name
-isn't Luke). However, make sure para_server isn't running before
-executing oslfsck --force.
+database:
+
+       oslfsck -fd ~/.paraslash/afs_database-0.4
+
+However, make sure para_server isn't running before executing oslfsck.
 
 If you don't mind to recreate your database you can start
 from scratch by removing the entire database directory, i.e.
@@ -1099,6 +1109,14 @@ care about the table contents. To check for invalid table contents, use
 This prints out references to missing audio files as well as invalid
 playlists and mood definitions.
 
+Similarly, para_audiod refuses to start if its socket file exists, since
+this indicates that another instance of para_audiod is running. After
+a crash a stale socket file might remain and you must run
+
+       para_audiod --force
+
+once to fix it up.
+
 ---------------------------------------
 Audio formats and audio format handlers
 ---------------------------------------
@@ -1135,7 +1153,17 @@ Excited Linear Prediction) coding. It is designed for voice
 over IP applications, has modest complexity and a small memory
 footprint. Wideband and narrowband (telephone quality) speech are
 supported. As for Vorbis audio, Speex bit-streams are often stored
-in OGG files.
+in OGG files. As of 2012 this codec is considered obsolete since the
+Oppus codec, described below, surpasses its performance in all areas.
+
+*OGG/Opus*
+
+Opus is a lossy audio compression format standardized through RFC
+6716 in 2012. It combines the speech-oriented SILK codec and the
+low-latency CELT (Constrained Energy Lapped Transform) codec. Like
+OGG/Vorbis and OGG/Speex, Opus data is usually encapsulated in OGG
+containers. All known software patents which cover Opus are licensed
+under royalty-free terms.
 
 *AAC*
 
@@ -1218,9 +1246,7 @@ chunk table and reads the meta data.
 The audio format handler code is linked into para_server and executed
 via the _add_ command. The same code is also available as a stand-alone
 tool, para_afh, which can be used to print the technical data, the
-chunk table and the meta data of a file. Furthermore, one can use
-para_afh to cut an audio file, i.e. to select some of its chunks to
-produce a new file containing only these chunks.
+chunk table and the meta data of a file.
 
 ----------
 Networking
@@ -1506,10 +1532,10 @@ the output to STDOUT, the filter modules of para_audiod are always
 connected to a receiver which produces the input stream and a writer
 which absorbs the output stream.
 
-Some filters depend on a specific library being installed and are
-not compiled in if this library was not found at compile time. To
-see the list of supported filters, run para_filter and para_audiod
-with the --help option. The output looks similar to the following:
+Some filters depend on a specific library and are not compiled in
+if this library was not found at compile time. To see the list of
+supported filters, run para_filter and para_audiod with the --help
+option. The output looks similar to the following:
 
        Available filters:
                compress wav amp fecdec wmadec prebuffer oggdec aacdec mp3dec
@@ -2181,6 +2207,8 @@ RFCs
        Congestion Control ID 2: TCP-like Congestion Control
        - XREFERENCE(http://www.ietf.org/rfc/rfc4342.txt, RFC 4342) (2006):
        Congestion Control ID 3: TCP-Friendly Rate Control (TFRC)
+       - XREFERENCE(http://www.ietf.org/rfc/rfc6716.txt, RFC 6716) (2012):
+       Definition of the Opus Audio Codec
 
 Application web pages
 ~~~~~~~~~~~~~~~~~~~~~
index c9e43663ecd783578fe0606b2612cc9771c38b1e..adc82b58bcc7257582dae581969ffbd22847eef1 100644 (file)
-Dec 08 19:23:27 meins 2 log_welcome: welcome to para_audiod git (Sat Dec  8 13:42:52 MET 2007)
-Dec 08 19:23:27 meins 2 init_writers: maximal number of writers: 3
-Dec 08 19:23:27 meins 2 check_writer_arg: checking  alsa -d plug:swmix
-Dec 08 19:23:27 meins 2 alsa_parse_config: options: -d plug:swmix, 2
-Dec 08 19:23:27 meins 2 alsa_parse_config: help given: 0
-Dec 08 19:23:27 meins 2 init_writers: mp3 writer #0: alsa
-Dec 08 19:23:27 meins 2 check_writer_arg: checking  alsa -d plug:swmix
-Dec 08 19:23:27 meins 2 alsa_parse_config: options: -d plug:swmix, 2
-Dec 08 19:23:27 meins 2 alsa_parse_config: help given: 0
-Dec 08 19:23:27 meins 2 init_writers: ogg writer #0: alsa
-Dec 08 19:23:27 meins 2 check_writer_arg: checking  alsa -d plug:swmix
-Dec 08 19:23:27 meins 2 alsa_parse_config: options: -d plug:swmix, 2
-Dec 08 19:23:27 meins 2 alsa_parse_config: help given: 0
-Dec 08 19:23:27 meins 2 init_writers: aac writer #0: alsa
-Dec 08 19:23:27 meins 2 init_receivers: initializing http receiver
-Dec 08 19:23:27 meins 2 init_receivers: initializing dccp receiver
-Dec 08 19:23:27 meins 2 init_receivers: initializing ortp receiver
-Dec 08 19:23:27 meins 2 init_filters: maximal number of filters: 6
-Dec 08 19:23:27 meins 2 add_filter: mp3 filter 1: mp3dec
-Dec 08 19:23:27 meins 2 add_filter: mp3 filter 2: compress
-Dec 08 19:23:27 meins 2 add_filter: ogg filter 1: oggdec
-Dec 08 19:23:27 meins 2 add_filter: ogg filter 2: compress
-Dec 08 19:23:27 meins 2 add_filter: aac filter 1: aacdec
-Dec 08 19:23:27 meins 2 add_filter: aac filter 2: compress
-Dec 08 19:23:27 meins 2 clear_slot: clearing slot 0
-Dec 08 19:23:27 meins 2 clear_slot: clearing slot 1
-Dec 08 19:23:27 meins 2 clear_slot: clearing slot 2
-Dec 08 19:23:27 meins 2 clear_slot: clearing slot 3
-Dec 08 19:23:27 meins 2 clear_slot: clearing slot 4
-Dec 08 19:23:27 meins 2 init_grabbing: grab init
-Dec 08 19:23:27 meins 2 setup_signal_handling: signal pipe: fd 4
-Dec 08 19:23:27 meins 3 audiod_get_socket: local socket: /var/paraslash/audiod_socket.meins
-Dec 08 19:23:27 meins 2 daemon_init: daemonizing
-Dec 08 19:23:27 meins 2 init_sched: initializing scheduler
-Dec 08 19:23:27 meins 2 register_task: registering signal task (0x80631bc)
-Dec 08 19:23:27 meins 2 register_task: registering command task (0xbfec3ec4)
-Dec 08 19:23:27 meins 2 register_task: registering status task (0x80632e8)
-Dec 08 19:23:27 meins 2 register_task: registering audiod task (0xbfec3fe8)
-Dec 08 19:23:27 meins 2 status_pre_select: clock diff count: 5
-Dec 08 19:23:27 meins 2 client_open: loglevel: 5
-Dec 08 19:23:27 meins 2 client_open: config_file: /home/maan/.paraslash/client.conf
-Dec 08 19:23:27 meins 2 client_open: key_file: /home/maan/.paraslash/key.maan
-Dec 08 19:23:27 meins 3 client_open: connecting localhost:2990
-Dec 08 19:23:27 meins 2 register_task: registering client (0x8067878)
-Dec 08 19:23:27 meins 2 client_post_select: --> auth rc4 maan
-Dec 08 19:23:27 meins 2 client_post_select: <-- [challenge]
-Dec 08 19:23:27 meins 2 client_post_select: --> 1499570993
-Dec 08 19:23:27 meins 2 client_post_select: decrypting session key
-Dec 08 19:23:27 meins 2 enable_crypt: rc4 encryption activated for fd 7
-Dec 08 19:23:27 meins 2 unregister_task: unregistering client (0x8067878)
-Dec 08 19:23:28 meins 2 handle_connect: connection from user 409, buf: stat
-Dec 08 19:23:28 meins 2 handle_connect: argv[0]: stat, argc= 1
-Dec 08 19:23:28 meins 2 com_stat: mask: 0xffffffff
-Dec 08 19:23:28 meins 2 stat_client_add: adding client on fd 7
-Dec 08 19:23:28 meins 2 dump_stat_client_list: stat client on fd 7
-Dec 08 19:23:28 meins 2 status_pre_select: clock diff count: 4
-Dec 08 19:23:28 meins 2 client_open: loglevel: 5
-Dec 08 19:23:28 meins 2 client_open: config_file: /home/maan/.paraslash/client.conf
-Dec 08 19:23:28 meins 2 client_open: key_file: /home/maan/.paraslash/key.maan
-Dec 08 19:23:28 meins 3 client_open: connecting localhost:2990
-Dec 08 19:23:28 meins 2 register_task: registering client (0x8067878)
-Dec 08 19:23:28 meins 2 client_post_select: --> auth rc4 maan
-Dec 08 19:23:28 meins 2 client_post_select: <-- [challenge]
-Dec 08 19:23:28 meins 2 client_post_select: --> 1400991892
-Dec 08 19:23:28 meins 2 client_post_select: decrypting session key
-Dec 08 19:23:28 meins 2 enable_crypt: rc4 encryption activated for fd 8
-Dec 08 19:23:28 meins 2 compute_time_diff: time diff (cur/avg): -1ms/+1ms
-Dec 08 19:23:28 meins 2 unregister_task: unregistering client (0x8067878)
-Dec 08 19:23:29 meins 2 status_pre_select: clock diff count: 3
-Dec 08 19:23:29 meins 2 client_open: loglevel: 5
-Dec 08 19:23:29 meins 2 client_open: config_file: /home/maan/.paraslash/client.conf
-Dec 08 19:23:29 meins 2 client_open: key_file: /home/maan/.paraslash/key.maan
-Dec 08 19:23:29 meins 3 client_open: connecting localhost:2990
-Dec 08 19:23:29 meins 2 register_task: registering client (0x8067878)
-Dec 08 19:23:29 meins 2 client_post_select: --> auth rc4 maan
-Dec 08 19:23:29 meins 2 client_post_select: <-- [challenge]
-Dec 08 19:23:29 meins 2 client_post_select: --> 1772412478
-Dec 08 19:23:29 meins 2 client_post_select: decrypting session key
-Dec 08 19:23:29 meins 2 enable_crypt: rc4 encryption activated for fd 8
-Dec 08 19:23:29 meins 2 compute_time_diff: time diff (cur/avg): -1ms/+1ms
-Dec 08 19:23:29 meins 2 unregister_task: unregistering client (0x8067878)
-Dec 08 19:23:30 meins 2 status_pre_select: clock diff count: 2
-Dec 08 19:23:30 meins 2 client_open: loglevel: 5
-Dec 08 19:23:30 meins 2 client_open: config_file: /home/maan/.paraslash/client.conf
-Dec 08 19:23:30 meins 2 client_open: key_file: /home/maan/.paraslash/key.maan
-Dec 08 19:23:30 meins 3 client_open: connecting localhost:2990
-Dec 08 19:23:30 meins 2 register_task: registering client (0x8067878)
-Dec 08 19:23:30 meins 2 client_post_select: --> auth rc4 maan
-Dec 08 19:23:30 meins 2 client_post_select: <-- [challenge]
-Dec 08 19:23:30 meins 2 client_post_select: --> 1882631692
-Dec 08 19:23:30 meins 2 client_post_select: decrypting session key
-Dec 08 19:23:30 meins 2 enable_crypt: rc4 encryption activated for fd 8
-Dec 08 19:23:30 meins 2 compute_time_diff: time diff (cur/avg): -1ms/+1ms
-Dec 08 19:23:30 meins 2 unregister_task: unregistering client (0x8067878)
-Dec 08 19:23:31 meins 2 status_pre_select: clock diff count: 1
-Dec 08 19:23:31 meins 2 client_open: loglevel: 5
-Dec 08 19:23:31 meins 2 client_open: config_file: /home/maan/.paraslash/client.conf
-Dec 08 19:23:31 meins 2 client_open: key_file: /home/maan/.paraslash/key.maan
-Dec 08 19:23:31 meins 3 client_open: connecting localhost:2990
-Dec 08 19:23:31 meins 2 register_task: registering client (0x8067878)
-Dec 08 19:23:31 meins 2 client_post_select: --> auth rc4 maan
-Dec 08 19:23:31 meins 2 client_post_select: <-- [challenge]
-Dec 08 19:23:31 meins 2 client_post_select: --> 1630455651
-Dec 08 19:23:31 meins 2 client_post_select: decrypting session key
-Dec 08 19:23:31 meins 2 enable_crypt: rc4 encryption activated for fd 8
-Dec 08 19:23:31 meins 2 compute_time_diff: time diff (cur/avg): -1ms/+1ms
-Dec 08 19:23:31 meins 2 unregister_task: unregistering client (0x8067878)
-Dec 08 19:23:36 meins 2 client_open: loglevel: 5
-Dec 08 19:23:36 meins 2 client_open: config_file: /home/maan/.paraslash/client.conf
-Dec 08 19:23:36 meins 2 client_open: key_file: /home/maan/.paraslash/key.maan
-Dec 08 19:23:36 meins 3 client_open: connecting localhost:2990
-Dec 08 19:23:36 meins 2 register_task: registering client (0x8067878)
-Dec 08 19:23:36 meins 2 client_post_select: --> auth rc4 maan
-Dec 08 19:23:36 meins 2 client_post_select: <-- [challenge]
-Dec 08 19:23:36 meins 2 client_post_select: --> 759215314
-Dec 08 19:23:36 meins 2 client_post_select: decrypting session key
-Dec 08 19:23:36 meins 2 enable_crypt: rc4 encryption activated for fd 8
-Dec 08 19:23:36 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+1ms
-Dec 08 19:23:36 meins 2 clear_slot: clearing slot 0
-Dec 08 19:23:36 meins 3 open_receiver: started ogg: dccp receiver in slot 0
-Dec 08 19:23:36 meins 2 register_task: registering dccp receiver node (0x806a324)
-Dec 08 19:23:37 meins 2 open_filters: opening ogg filters
-Dec 08 19:23:37 meins 3 open_filters: ogg filter 1/2 (oggdec) started in slot 0
-Dec 08 19:23:37 meins 3 open_filters: ogg filter 2/2 (compress) started in slot 0
-Dec 08 19:23:37 meins 2 register_task: registering filter chain (0x807460c)
-Dec 08 19:23:37 meins 3 ogg_convert: input buffer: 17032, opening ov callbacks
-Dec 08 19:23:37 meins 3 ogg_convert: 2 channels, 44100 Hz
-Dec 08 19:23:37 meins 2 open_writers: opening ogg writers
-Dec 08 19:23:37 meins 2 open_writers: samplerate: 44100
-Dec 08 19:23:37 meins 3 wng_open: opening wng 0x80a5660 with 1 writer(s)
-Dec 08 19:23:37 meins 2 register_task: registering  (0x80a5684)
-Dec 08 19:23:37 meins 2 alsa_open: 2 channel(s), 44100Hz
-Dec 08 19:23:37 meins 2 alsa_open: buffer time: 170658
-Dec 08 19:23:37 meins 2 alsa_open: buffer size: 7526, period_size: 940
-Dec 08 19:23:43 meins 3 rn_event_handler: dccp_recv: end of file
-Dec 08 19:23:43 meins 2 unregister_task: unregistering dccp receiver node (0x806a324)
-Dec 08 19:23:43 meins 2 unregister_task: unregistering client (0x8067878)
-Dec 08 19:23:43 meins 2 kill_all_decoders: unregistering writer node group in slot 0
-Dec 08 19:23:43 meins 2 unregister_task: unregistering writer node group (0x80a5684)
-Dec 08 19:23:43 meins 2 kill_all_decoders: unregistering filter chain in slot 0
-Dec 08 19:23:43 meins 2 unregister_task: unregistering filter chain (0x807460c)
-Dec 08 19:23:43 meins 2 try_to_close_slot: closing slot 0 
-Dec 08 19:23:43 meins 3 wng_close: closing wng with 1 writer(s)
-Dec 08 19:23:43 meins 2 alsa_close: closing writer node 0x80a57b0
-Dec 08 19:23:43 meins 3 close_filters: closing filter chain 0x80745e0
-Dec 08 19:23:43 meins 2 close_filters: closing oggdec filter
-Dec 08 19:23:43 meins 2 close_filters: closing compress filter
-Dec 08 19:23:43 meins 3 close_receiver: closing ogg receiver in slot 0 (eof = 1)
-Dec 08 19:23:43 meins 2 clear_slot: clearing slot 0
-Dec 08 19:23:48 meins 2 client_open: loglevel: 5
-Dec 08 19:23:48 meins 2 client_open: config_file: /home/maan/.paraslash/client.conf
-Dec 08 19:23:48 meins 2 client_open: key_file: /home/maan/.paraslash/key.maan
-Dec 08 19:23:48 meins 3 client_open: connecting localhost:2990
-Dec 08 19:23:48 meins 2 register_task: registering client (0x8067878)
-Dec 08 19:23:48 meins 2 client_post_select: --> auth rc4 maan
-Dec 08 19:23:48 meins 2 client_post_select: <-- [challenge]
-Dec 08 19:23:48 meins 2 client_post_select: --> 960122352
-Dec 08 19:23:48 meins 2 client_post_select: decrypting session key
-Dec 08 19:23:48 meins 2 enable_crypt: rc4 encryption activated for fd 8
-Dec 08 19:23:48 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:23:58 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:23:58 meins 2 clear_slot: clearing slot 0
-Dec 08 19:23:58 meins 3 open_receiver: started mp3: http receiver in slot 0
-Dec 08 19:23:58 meins 2 register_task: registering http receiver node (0x806a204)
-Dec 08 19:23:58 meins 2 http_recv_post_select: sending http request
-Dec 08 19:23:58 meins 2 http_recv_post_select: received ok msg, streaming
-Dec 08 19:23:59 meins 2 open_filters: opening mp3 filters
-Dec 08 19:23:59 meins 3 open_filters: mp3 filter 1/2 (mp3dec) started in slot 0
-Dec 08 19:23:59 meins 3 open_filters: mp3 filter 2/2 (compress) started in slot 0
-Dec 08 19:23:59 meins 2 register_task: registering filter chain (0x807260c)
-Dec 08 19:23:59 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:23:59 meins 2 audiod_pre_select: initial delay: 173 ms left
-Dec 08 19:23:59 meins 2 audiod_pre_select: initial delay: 147 ms left
-Dec 08 19:23:59 meins 2 audiod_pre_select: initial delay: 121 ms left
-Dec 08 19:23:59 meins 2 audiod_pre_select: initial delay: 95 ms left
-Dec 08 19:23:59 meins 2 audiod_pre_select: initial delay: 69 ms left
-Dec 08 19:23:59 meins 2 audiod_pre_select: initial delay: 43 ms left
-Dec 08 19:23:59 meins 2 audiod_pre_select: initial delay: 17 ms left
-Dec 08 19:23:59 meins 2 open_writers: opening mp3 writers
-Dec 08 19:23:59 meins 2 open_writers: samplerate: 44100
-Dec 08 19:23:59 meins 3 wng_open: opening wng 0x80a3c18 with 1 writer(s)
-Dec 08 19:23:59 meins 2 register_task: registering  (0x80a3c3c)
-Dec 08 19:23:59 meins 2 alsa_open: 2 channel(s), 44100Hz
-Dec 08 19:23:59 meins 2 alsa_open: buffer time: 170658
-Dec 08 19:23:59 meins 2 alsa_open: buffer size: 7526, period_size: 940
-Dec 08 19:24:43 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:24:57 meins 4 alsa_write_post_select: EAGAIN
-Dec 08 19:24:57 meins 4 alsa_write_post_select: EAGAIN
-Dec 08 19:25:33 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:25:43 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:25:51 meins 3 rn_event_handler: http_recv: end of file
-Dec 08 19:25:51 meins 2 unregister_task: unregistering http receiver node (0x806a204)
-Dec 08 19:25:51 meins 2 unregister_task: unregistering client (0x8067878)
-Dec 08 19:25:51 meins 2 kill_all_decoders: unregistering writer node group in slot 0
-Dec 08 19:25:51 meins 2 unregister_task: unregistering writer node group (0x80a3c3c)
-Dec 08 19:25:51 meins 2 kill_all_decoders: unregistering filter chain in slot 0
-Dec 08 19:25:51 meins 2 unregister_task: unregistering filter chain (0x807260c)
-Dec 08 19:25:51 meins 2 try_to_close_slot: closing slot 0 
-Dec 08 19:25:51 meins 3 wng_close: closing wng with 1 writer(s)
-Dec 08 19:25:51 meins 2 alsa_close: closing writer node 0x806a440
-Dec 08 19:25:51 meins 3 close_filters: closing filter chain 0x80725e0
-Dec 08 19:25:51 meins 2 close_filters: closing mp3dec filter
-Dec 08 19:25:51 meins 2 close_filters: closing compress filter
-Dec 08 19:25:51 meins 3 close_receiver: closing mp3 receiver in slot 0 (eof = 1)
-Dec 08 19:25:51 meins 2 clear_slot: clearing slot 0
-Dec 08 19:25:56 meins 2 client_open: loglevel: 5
-Dec 08 19:25:56 meins 2 client_open: config_file: /home/maan/.paraslash/client.conf
-Dec 08 19:25:56 meins 2 client_open: key_file: /home/maan/.paraslash/key.maan
-Dec 08 19:25:56 meins 3 client_open: connecting localhost:2990
-Dec 08 19:25:56 meins 2 register_task: registering client (0x8067878)
-Dec 08 19:25:56 meins 2 client_post_select: --> auth rc4 maan
-Dec 08 19:25:56 meins 2 client_post_select: <-- [challenge]
-Dec 08 19:25:56 meins 2 client_post_select: --> 563263924
-Dec 08 19:25:56 meins 2 client_post_select: decrypting session key
-Dec 08 19:25:56 meins 2 enable_crypt: rc4 encryption activated for fd 8
-Dec 08 19:25:56 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:26:06 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:26:06 meins 2 clear_slot: clearing slot 0
-Dec 08 19:26:06 meins 3 open_receiver: started mp3: http receiver in slot 0
-Dec 08 19:26:06 meins 2 register_task: registering http receiver node (0x806a29c)
-Dec 08 19:26:06 meins 2 http_recv_post_select: sending http request
-Dec 08 19:26:06 meins 2 http_recv_post_select: received ok msg, streaming
-Dec 08 19:26:06 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:26:06 meins 2 open_filters: opening mp3 filters
-Dec 08 19:26:06 meins 3 open_filters: mp3 filter 1/2 (mp3dec) started in slot 0
-Dec 08 19:26:06 meins 3 open_filters: mp3 filter 2/2 (compress) started in slot 0
-Dec 08 19:26:06 meins 2 register_task: registering filter chain (0x80726dc)
-Dec 08 19:26:06 meins 2 audiod_pre_select: initial delay: 173 ms left
-Dec 08 19:26:06 meins 2 audiod_pre_select: initial delay: 147 ms left
-Dec 08 19:26:06 meins 2 audiod_pre_select: initial delay: 121 ms left
-Dec 08 19:26:06 meins 2 audiod_pre_select: initial delay: 95 ms left
-Dec 08 19:26:06 meins 2 audiod_pre_select: initial delay: 69 ms left
-Dec 08 19:26:06 meins 2 audiod_pre_select: initial delay: 43 ms left
-Dec 08 19:26:07 meins 2 audiod_pre_select: initial delay: 17 ms left
-Dec 08 19:26:07 meins 2 open_writers: opening mp3 writers
-Dec 08 19:26:07 meins 2 open_writers: samplerate: 44100
-Dec 08 19:26:07 meins 3 wng_open: opening wng 0x80a3cb8 with 1 writer(s)
-Dec 08 19:26:07 meins 2 register_task: registering  (0x80a3cdc)
-Dec 08 19:26:07 meins 2 alsa_open: 2 channel(s), 44100Hz
-Dec 08 19:26:07 meins 2 alsa_open: buffer time: 170658
-Dec 08 19:26:07 meins 2 alsa_open: buffer size: 7526, period_size: 940
-Dec 08 19:26:51 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:26:58 meins 2 unregister_task: unregistering client (0x8067878)
-Dec 08 19:26:58 meins 2 kill_all_decoders: unregistering writer node group in slot 0
-Dec 08 19:26:58 meins 2 unregister_task: unregistering writer node group (0x80a3cdc)
-Dec 08 19:26:58 meins 2 kill_all_decoders: unregistering filter chain in slot 0
-Dec 08 19:26:58 meins 2 unregister_task: unregistering filter chain (0x80726dc)
-Dec 08 19:26:58 meins 2 kill_all_decoders: unregistering receiver_node in slot 0
-Dec 08 19:26:58 meins 2 unregister_task: unregistering http receiver node (0x806a29c)
-Dec 08 19:26:58 meins 2 try_to_close_slot: closing slot 0 
-Dec 08 19:26:58 meins 3 wng_close: closing wng with 1 writer(s)
-Dec 08 19:26:58 meins 2 alsa_close: closing writer node 0x80a3e08
-Dec 08 19:26:58 meins 3 close_filters: closing filter chain 0x80726b0
-Dec 08 19:26:58 meins 2 close_filters: closing mp3dec filter
-Dec 08 19:26:58 meins 2 close_filters: closing compress filter
-Dec 08 19:26:58 meins 3 close_receiver: closing mp3 receiver in slot 0 (eof = 1)
-Dec 08 19:26:58 meins 2 clear_slot: clearing slot 0
-Dec 08 19:27:04 meins 2 client_open: loglevel: 5
-Dec 08 19:27:04 meins 2 client_open: config_file: /home/maan/.paraslash/client.conf
-Dec 08 19:27:04 meins 2 client_open: key_file: /home/maan/.paraslash/key.maan
-Dec 08 19:27:04 meins 3 client_open: connecting localhost:2990
-Dec 08 19:27:04 meins 5 makesock: can not create TCP socket localhost#2990.
-Dec 08 19:27:04 meins 5 client_open: Connection refused
-Dec 08 19:27:09 meins 2 client_open: loglevel: 5
-Dec 08 19:27:09 meins 2 client_open: config_file: /home/maan/.paraslash/client.conf
-Dec 08 19:27:09 meins 2 client_open: key_file: /home/maan/.paraslash/key.maan
-Dec 08 19:27:09 meins 3 client_open: connecting localhost:2990
-Dec 08 19:27:09 meins 5 makesock: can not create TCP socket localhost#2990.
-Dec 08 19:27:09 meins 5 client_open: Connection refused
-Dec 08 19:27:14 meins 2 client_open: loglevel: 5
-Dec 08 19:27:14 meins 2 client_open: config_file: /home/maan/.paraslash/client.conf
-Dec 08 19:27:14 meins 2 client_open: key_file: /home/maan/.paraslash/key.maan
-Dec 08 19:27:14 meins 3 client_open: connecting localhost:2990
-Dec 08 19:27:14 meins 5 makesock: can not create TCP socket localhost#2990.
-Dec 08 19:27:14 meins 5 client_open: Connection refused
-Dec 08 19:27:19 meins 2 client_open: loglevel: 5
-Dec 08 19:27:19 meins 2 client_open: config_file: /home/maan/.paraslash/client.conf
-Dec 08 19:27:19 meins 2 client_open: key_file: /home/maan/.paraslash/key.maan
-Dec 08 19:27:19 meins 3 client_open: connecting localhost:2990
-Dec 08 19:27:19 meins 5 makesock: can not create TCP socket localhost#2990.
-Dec 08 19:27:19 meins 5 client_open: Connection refused
-Dec 08 19:27:24 meins 2 client_open: loglevel: 5
-Dec 08 19:27:24 meins 2 client_open: config_file: /home/maan/.paraslash/client.conf
-Dec 08 19:27:24 meins 2 client_open: key_file: /home/maan/.paraslash/key.maan
-Dec 08 19:27:24 meins 3 client_open: connecting localhost:2990
-Dec 08 19:27:24 meins 5 makesock: can not create TCP socket localhost#2990.
-Dec 08 19:27:24 meins 5 client_open: Connection refused
-Dec 08 19:27:29 meins 2 client_open: loglevel: 5
-Dec 08 19:27:29 meins 2 client_open: config_file: /home/maan/.paraslash/client.conf
-Dec 08 19:27:29 meins 2 client_open: key_file: /home/maan/.paraslash/key.maan
-Dec 08 19:27:29 meins 3 client_open: connecting localhost:2990
-Dec 08 19:27:29 meins 5 makesock: can not create TCP socket localhost#2990.
-Dec 08 19:27:29 meins 5 client_open: Connection refused
-Dec 08 19:27:34 meins 2 client_open: loglevel: 5
-Dec 08 19:27:34 meins 2 client_open: config_file: /home/maan/.paraslash/client.conf
-Dec 08 19:27:34 meins 2 client_open: key_file: /home/maan/.paraslash/key.maan
-Dec 08 19:27:34 meins 3 client_open: connecting localhost:2990
-Dec 08 19:27:34 meins 2 register_task: registering client (0x8067878)
-Dec 08 19:27:34 meins 2 client_post_select: --> auth rc4 maan
-Dec 08 19:27:34 meins 2 client_post_select: <-- [challenge]
-Dec 08 19:27:34 meins 2 client_post_select: --> 1725057215
-Dec 08 19:27:34 meins 2 client_post_select: decrypting session key
-Dec 08 19:27:34 meins 2 enable_crypt: rc4 encryption activated for fd 8
-Dec 08 19:27:34 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:27:45 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:27:45 meins 2 clear_slot: clearing slot 0
-Dec 08 19:27:45 meins 3 open_receiver: started mp3: http receiver in slot 0
-Dec 08 19:27:45 meins 2 register_task: registering http receiver node (0x806a7b4)
-Dec 08 19:27:45 meins 2 http_recv_post_select: sending http request
-Dec 08 19:27:45 meins 2 http_recv_post_select: received ok msg, streaming
-Dec 08 19:27:46 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:27:46 meins 2 open_filters: opening mp3 filters
-Dec 08 19:27:46 meins 3 open_filters: mp3 filter 1/2 (mp3dec) started in slot 0
-Dec 08 19:27:46 meins 3 open_filters: mp3 filter 2/2 (compress) started in slot 0
-Dec 08 19:27:46 meins 2 register_task: registering filter chain (0x80729f4)
-Dec 08 19:27:46 meins 2 audiod_pre_select: initial delay: 173 ms left
-Dec 08 19:27:46 meins 2 audiod_pre_select: initial delay: 147 ms left
-Dec 08 19:27:46 meins 2 audiod_pre_select: initial delay: 121 ms left
-Dec 08 19:27:46 meins 2 audiod_pre_select: initial delay: 95 ms left
-Dec 08 19:27:46 meins 2 audiod_pre_select: initial delay: 69 ms left
-Dec 08 19:27:46 meins 2 audiod_pre_select: initial delay: 43 ms left
-Dec 08 19:27:46 meins 2 audiod_pre_select: initial delay: 17 ms left
-Dec 08 19:27:46 meins 2 open_writers: opening mp3 writers
-Dec 08 19:27:46 meins 2 open_writers: samplerate: 44100
-Dec 08 19:27:46 meins 3 wng_open: opening wng 0x80a4000 with 1 writer(s)
-Dec 08 19:27:46 meins 2 register_task: registering  (0x80a4024)
-Dec 08 19:27:46 meins 2 alsa_open: 2 channel(s), 44100Hz
-Dec 08 19:27:46 meins 2 alsa_open: buffer time: 170658
-Dec 08 19:27:46 meins 2 alsa_open: buffer size: 7526, period_size: 940
-Dec 08 19:28:30 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:28:58 meins 3 rn_event_handler: http_recv: end of file
-Dec 08 19:28:58 meins 2 unregister_task: unregistering http receiver node (0x806a7b4)
-Dec 08 19:28:58 meins 2 unregister_task: unregistering client (0x8067878)
-Dec 08 19:28:58 meins 2 kill_all_decoders: unregistering writer node group in slot 0
-Dec 08 19:28:58 meins 2 unregister_task: unregistering writer node group (0x80a4024)
-Dec 08 19:28:58 meins 2 kill_all_decoders: unregistering filter chain in slot 0
-Dec 08 19:28:58 meins 2 unregister_task: unregistering filter chain (0x80729f4)
-Dec 08 19:28:58 meins 2 try_to_close_slot: closing slot 0 
-Dec 08 19:28:58 meins 3 wng_close: closing wng with 1 writer(s)
-Dec 08 19:28:58 meins 2 alsa_close: closing writer node 0x80a4150
-Dec 08 19:28:58 meins 3 close_filters: closing filter chain 0x80729c8
-Dec 08 19:28:58 meins 2 close_filters: closing mp3dec filter
-Dec 08 19:28:58 meins 2 close_filters: closing compress filter
-Dec 08 19:28:58 meins 3 close_receiver: closing mp3 receiver in slot 0 (eof = 1)
-Dec 08 19:28:58 meins 2 clear_slot: clearing slot 0
-Dec 08 19:29:03 meins 2 client_open: loglevel: 5
-Dec 08 19:29:03 meins 2 client_open: config_file: /home/maan/.paraslash/client.conf
-Dec 08 19:29:03 meins 2 client_open: key_file: /home/maan/.paraslash/key.maan
-Dec 08 19:29:03 meins 3 client_open: connecting localhost:2990
-Dec 08 19:29:03 meins 2 register_task: registering client (0x8067878)
-Dec 08 19:29:03 meins 2 client_post_select: --> auth rc4 maan
-Dec 08 19:29:03 meins 2 client_post_select: <-- [challenge]
-Dec 08 19:29:03 meins 2 client_post_select: --> 705434988
-Dec 08 19:29:03 meins 2 client_post_select: decrypting session key
-Dec 08 19:29:03 meins 2 enable_crypt: rc4 encryption activated for fd 8
-Dec 08 19:29:03 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:29:13 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:29:13 meins 2 clear_slot: clearing slot 0
-Dec 08 19:29:13 meins 3 open_receiver: started ogg: dccp receiver in slot 0
-Dec 08 19:29:13 meins 2 register_task: registering dccp receiver node (0x806a804)
-Dec 08 19:29:13 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:29:13 meins 2 open_filters: opening ogg filters
-Dec 08 19:29:13 meins 3 open_filters: ogg filter 1/2 (oggdec) started in slot 0
-Dec 08 19:29:13 meins 3 open_filters: ogg filter 2/2 (compress) started in slot 0
-Dec 08 19:29:13 meins 2 register_task: registering filter chain (0x8074a44)
-Dec 08 19:29:14 meins 3 ogg_convert: input buffer: 17167, opening ov callbacks
-Dec 08 19:29:14 meins 3 ogg_convert: 2 channels, 44100 Hz
-Dec 08 19:29:14 meins 2 open_writers: opening ogg writers
-Dec 08 19:29:14 meins 2 open_writers: samplerate: 44100
-Dec 08 19:29:14 meins 3 wng_open: opening wng 0x80c8d20 with 1 writer(s)
-Dec 08 19:29:14 meins 2 register_task: registering  (0x80c8d44)
-Dec 08 19:29:14 meins 2 alsa_open: 2 channel(s), 44100Hz
-Dec 08 19:29:14 meins 2 alsa_open: buffer time: 170658
-Dec 08 19:29:14 meins 2 alsa_open: buffer size: 7526, period_size: 940
-Dec 08 19:29:58 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:30:48 meins 2 compute_time_diff: time diff (cur/avg): -3ms/+1ms
-Dec 08 19:30:58 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+1ms
-Dec 08 19:31:48 meins 2 compute_time_diff: time diff (cur/avg): -2ms/+1ms
-Dec 08 19:31:58 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+1ms
-Dec 08 19:32:48 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+1ms
-Dec 08 19:32:58 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+1ms
-Dec 08 19:33:48 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:33:56 meins 3 rn_event_handler: dccp_recv: end of file
-Dec 08 19:33:56 meins 2 unregister_task: unregistering dccp receiver node (0x806a804)
-Dec 08 19:33:56 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:33:56 meins 3 filter_event_handler: filter chain: eof
-Dec 08 19:33:56 meins 2 unregister_task: unregistering filter chain (0x8074a44)
-Dec 08 19:33:56 meins 2 wng_event_handler: wng: end of file
-Dec 08 19:33:56 meins 2 unregister_task: unregistering writer node group (0x80c8d44)
-Dec 08 19:33:56 meins 2 try_to_close_slot: closing slot 0 
-Dec 08 19:33:56 meins 3 wng_close: closing wng with 1 writer(s)
-Dec 08 19:33:56 meins 2 alsa_close: closing writer node 0x80c8e70
-Dec 08 19:33:56 meins 3 close_filters: closing filter chain 0x8074a18
-Dec 08 19:33:56 meins 2 close_filters: closing oggdec filter
-Dec 08 19:33:56 meins 2 close_filters: closing compress filter
-Dec 08 19:33:56 meins 3 close_receiver: closing ogg receiver in slot 0 (eof = 1)
-Dec 08 19:33:56 meins 2 clear_slot: clearing slot 0
-Dec 08 19:33:58 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:33:58 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:33:58 meins 2 clear_slot: clearing slot 0
-Dec 08 19:33:58 meins 3 open_receiver: started ogg: dccp receiver in slot 0
-Dec 08 19:33:58 meins 2 register_task: registering dccp receiver node (0x80d0dc4)
-Dec 08 19:33:58 meins 2 open_filters: opening ogg filters
-Dec 08 19:33:58 meins 3 open_filters: ogg filter 1/2 (oggdec) started in slot 0
-Dec 08 19:33:58 meins 3 open_filters: ogg filter 2/2 (compress) started in slot 0
-Dec 08 19:33:58 meins 2 register_task: registering filter chain (0x807481c)
-Dec 08 19:33:58 meins 2 compute_time_diff: time diff (cur/avg): -3ms/+1ms
-Dec 08 19:33:58 meins 3 ogg_convert: input buffer: 16947, opening ov callbacks
-Dec 08 19:33:58 meins 3 ogg_convert: 2 channels, 44100 Hz
-Dec 08 19:33:58 meins 2 open_writers: opening ogg writers
-Dec 08 19:33:58 meins 2 open_writers: samplerate: 44100
-Dec 08 19:33:58 meins 3 wng_open: opening wng 0x809d860 with 1 writer(s)
-Dec 08 19:33:58 meins 2 register_task: registering  (0x809d884)
-Dec 08 19:33:58 meins 2 alsa_open: 2 channel(s), 44100Hz
-Dec 08 19:33:58 meins 2 alsa_open: buffer time: 170658
-Dec 08 19:33:58 meins 2 alsa_open: buffer size: 7526, period_size: 940
-Dec 08 19:34:48 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+1ms
-Dec 08 19:34:58 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+1ms
-Dec 08 19:35:48 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+1ms
-Dec 08 19:35:58 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+1ms
-Dec 08 19:36:48 meins 2 compute_time_diff: time diff (cur/avg): -3ms/+1ms
-Dec 08 19:36:54 meins 3 rn_event_handler: dccp_recv: end of file
-Dec 08 19:36:54 meins 2 unregister_task: unregistering dccp receiver node (0x80d0dc4)
-Dec 08 19:36:54 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+1ms
-Dec 08 19:36:54 meins 3 filter_event_handler: filter chain: eof
-Dec 08 19:36:54 meins 2 unregister_task: unregistering filter chain (0x807481c)
-Dec 08 19:36:54 meins 2 wng_event_handler: wng: end of file
-Dec 08 19:36:54 meins 2 unregister_task: unregistering writer node group (0x809d884)
-Dec 08 19:36:54 meins 2 try_to_close_slot: closing slot 0 
-Dec 08 19:36:54 meins 3 wng_close: closing wng with 1 writer(s)
-Dec 08 19:36:54 meins 2 alsa_close: closing writer node 0x809d9b0
-Dec 08 19:36:54 meins 3 close_filters: closing filter chain 0x80747f0
-Dec 08 19:36:54 meins 2 close_filters: closing oggdec filter
-Dec 08 19:36:54 meins 2 close_filters: closing compress filter
-Dec 08 19:36:54 meins 3 close_receiver: closing ogg receiver in slot 0 (eof = 1)
-Dec 08 19:36:54 meins 2 clear_slot: clearing slot 0
-Dec 08 19:36:56 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+1ms
-Dec 08 19:36:56 meins 2 clear_slot: clearing slot 0
-Dec 08 19:36:56 meins 3 open_receiver: started mp3: http receiver in slot 0
-Dec 08 19:36:56 meins 2 register_task: registering http receiver node (0x80d14ec)
-Dec 08 19:36:56 meins 2 http_recv_post_select: sending http request
-Dec 08 19:36:56 meins 2 http_recv_post_select: received ok msg, streaming
-Dec 08 19:36:56 meins 2 open_filters: opening mp3 filters
-Dec 08 19:36:56 meins 3 open_filters: mp3 filter 1/2 (mp3dec) started in slot 0
-Dec 08 19:36:56 meins 3 open_filters: mp3 filter 2/2 (compress) started in slot 0
-Dec 08 19:36:56 meins 2 register_task: registering filter chain (0x80d16ac)
-Dec 08 19:36:56 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+1ms
-Dec 08 19:36:56 meins 2 audiod_pre_select: initial delay: 174 ms left
-Dec 08 19:36:56 meins 2 audiod_pre_select: initial delay: 148 ms left
-Dec 08 19:36:56 meins 2 audiod_pre_select: initial delay: 122 ms left
-Dec 08 19:36:56 meins 2 audiod_pre_select: initial delay: 96 ms left
-Dec 08 19:36:56 meins 2 audiod_pre_select: initial delay: 70 ms left
-Dec 08 19:36:56 meins 2 audiod_pre_select: initial delay: 44 ms left
-Dec 08 19:36:56 meins 2 audiod_pre_select: initial delay: 18 ms left
-Dec 08 19:36:56 meins 2 open_writers: opening mp3 writers
-Dec 08 19:36:56 meins 2 open_writers: samplerate: 44100
-Dec 08 19:36:56 meins 3 wng_open: opening wng 0x80743a0 with 1 writer(s)
-Dec 08 19:36:56 meins 2 register_task: registering  (0x80743c4)
-Dec 08 19:36:56 meins 2 alsa_open: 2 channel(s), 44100Hz
-Dec 08 19:36:56 meins 2 alsa_open: buffer time: 170658
-Dec 08 19:36:56 meins 2 alsa_open: buffer size: 7526, period_size: 940
-Dec 08 19:36:58 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+1ms
-Dec 08 19:37:48 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+1ms
-Dec 08 19:37:58 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:38:48 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:38:58 meins 2 compute_time_diff: time diff (cur/avg): -0ms/+0ms
-Dec 08 19:39:06 meins 7 signal_event_handler: terminating on signal 15
-Dec 08 19:39:06 meins 7 clean_exit: caught deadly signal
-Dec 08 19:39:06 meins 2 log_welcome: welcome to para_audiod git (Sat Dec  8 13:42:52 MET 2007)
-Dec 08 19:39:06 meins 1 log_welcome: using loglevel 1
-Dec 08 19:39:06 meins 2 init_writers: maximal number of writers: 3
-Dec 08 19:39:06 meins 2 check_writer_arg: checking  alsa -d plug:swmix
-Dec 08 19:39:06 meins 2 alsa_parse_config: options: -d plug:swmix, 2
-Dec 08 19:39:06 meins 2 alsa_parse_config: help given: 0
-Dec 08 19:39:06 meins 2 init_writers: mp3 writer #0: alsa
-Dec 08 19:39:06 meins 2 check_writer_arg: checking  alsa -d plug:swmix
-Dec 08 19:39:06 meins 2 alsa_parse_config: options: -d plug:swmix, 2
-Dec 08 19:39:06 meins 2 alsa_parse_config: help given: 0
-Dec 08 19:39:06 meins 2 init_writers: ogg writer #0: alsa
-Dec 08 19:39:06 meins 2 check_writer_arg: checking  alsa -d plug:swmix
-Dec 08 19:39:06 meins 2 alsa_parse_config: options: -d plug:swmix, 2
-Dec 08 19:39:06 meins 2 alsa_parse_config: help given: 0
-Dec 08 19:39:06 meins 2 init_writers: aac writer #0: alsa
-Dec 08 19:39:06 meins 2 init_receivers: initializing http receiver
-Dec 08 19:39:06 meins 2 init_receivers: initializing dccp receiver
-Dec 08 19:39:06 meins 2 init_receivers: initializing ortp receiver
-Dec 08 19:39:06 meins 1 check_receiver_arg: checking http -i 127.0.0.1
-Dec 08 19:39:06 meins 1 parse_receiver_args: options: -i 127.0.0.1
-Dec 08 19:39:06 meins 1 parse_receiver_args: argc = 3, argv[0]: http
-Dec 08 19:39:06 meins 1 check_receiver_arg: checking dccp -i localhost
-Dec 08 19:39:06 meins 1 parse_receiver_args: options: -i localhost
-Dec 08 19:39:06 meins 1 parse_receiver_args: argc = 3, argv[0]: dccp
-Dec 08 19:39:06 meins 1 check_receiver_arg: checking dccp -i localhost
-Dec 08 19:39:06 meins 1 parse_receiver_args: options: -i localhost
-Dec 08 19:39:06 meins 1 parse_receiver_args: argc = 3, argv[0]: dccp
-Dec 08 19:39:06 meins 2 init_filters: maximal number of filters: 6
-Dec 08 19:39:06 meins 2 add_filter: mp3 filter 1: mp3dec
-Dec 08 19:39:06 meins 2 add_filter: mp3 filter 2: compress
-Dec 08 19:39:06 meins 2 add_filter: ogg filter 1: oggdec
-Dec 08 19:39:06 meins 2 add_filter: ogg filter 2: compress
-Dec 08 19:39:06 meins 2 add_filter: aac filter 1: aacdec
-Dec 08 19:39:06 meins 2 add_filter: aac filter 2: compress
-Dec 08 19:39:06 meins 2 clear_slot: clearing slot 0
-Dec 08 19:39:06 meins 2 clear_slot: clearing slot 1
-Dec 08 19:39:06 meins 2 clear_slot: clearing slot 2
-Dec 08 19:39:06 meins 2 clear_slot: clearing slot 3
-Dec 08 19:39:06 meins 2 clear_slot: clearing slot 4
-Dec 08 19:39:06 meins 2 init_grabbing: grab init
-Dec 08 19:39:06 meins 2 setup_signal_handling: signal pipe: fd 4
-Dec 08 19:39:06 meins 1 para_install_sighandler: catching signal 2
-Dec 08 19:39:06 meins 1 para_install_sighandler: catching signal 15
-Dec 08 19:39:06 meins 1 para_install_sighandler: catching signal 1
-Dec 08 19:39:06 meins 3 audiod_get_socket: local socket: /var/paraslash/audiod_socket.meins
-Dec 08 19:39:06 meins 2 daemon_init: daemonizing
-Dec 08 19:39:06 meins 2 init_sched: initializing scheduler
-Dec 08 19:39:06 meins 2 register_task: registering signal task (0x80631bc)
-Dec 08 19:39:06 meins 1 register_task: pre_select: 0x80631c0
-Dec 08 19:39:06 meins 1 register_task: post_select: 0x80631c0
-Dec 08 19:39:06 meins 2 register_task: registering command task (0xbfa7e274)
-Dec 08 19:39:06 meins 1 register_task: pre_select: 0xbfa7e278
-Dec 08 19:39:06 meins 1 register_task: post_select: 0xbfa7e278
-Dec 08 19:39:06 meins 2 register_task: registering status task (0x80632e8)
-Dec 08 19:39:06 meins 1 register_task: pre_select: 0x80632ec
-Dec 08 19:39:06 meins 1 register_task: post_select: 0x80632ec
-Dec 08 19:39:06 meins 2 register_task: registering audiod task (0xbfa7e398)
-Dec 08 19:39:06 meins 1 register_task: pre_select: 0xbfa7e39c
-Dec 08 19:39:06 meins 1 register_task: post_select: 0xbfa7e39c
-Dec 08 19:39:06 meins 2 status_pre_select: clock diff count: 5
-Dec 08 19:39:06 meins 2 client_open: loglevel: 5
-Dec 08 19:39:06 meins 2 client_open: config_file: /home/maan/.paraslash/client.conf
-Dec 08 19:39:06 meins 2 client_open: key_file: /home/maan/.paraslash/key.maan
-Dec 08 19:39:06 meins 3 client_open: connecting localhost:2990
-Dec 08 19:39:06 meins 2 register_task: registering client (0x8067878)
-Dec 08 19:39:06 meins 1 register_task: pre_select: 0x806787c
-Dec 08 19:39:06 meins 1 register_task: post_select: 0x806787c
-Dec 08 19:39:06 meins 2 client_post_select: --> auth rc4 maan
-Dec 08 19:39:06 meins 2 client_post_select: <-- [challenge]
-Dec 08 19:39:06 meins 2 client_post_select: --> 153889019
-Dec 08 19:39:06 meins 1 client_post_select: ++++ server info ++++
-
-Proceed.
-
-++++ end of server info ++++
-Dec 08 19:39:06 meins 2 client_post_select: decrypting session key
-Dec 08 19:39:06 meins 2 enable_crypt: rc4 encryption activated for fd 7
-Dec 08 19:39:06 meins 1 client_post_select: --> 
-stat
-1
-End of Command.
+Dec 29 02:18:32 klar (0) check_receiver_arg: checking udp
+Dec 29 02:18:32 klar (0) check_receiver_arg: checking udp
+Dec 29 02:18:32 klar (0) check_receiver_arg: checking udp
+Dec 29 02:18:32 klar (0) check_receiver_arg: checking udp
+Dec 29 02:18:32 klar (0) check_receiver_arg: checking udp
+Dec 29 02:18:32 klar (0) check_receiver_arg: checking udp
+Dec 29 02:18:32 klar (0) check_receiver_arg: checking udp
+Dec 29 02:18:32 klar (1) parse_receiver_args: receiving wma streams via udp receiver
+Dec 29 02:18:32 klar (1) parse_receiver_args: receiving ogg streams via udp receiver
+Dec 29 02:18:32 klar (1) parse_receiver_args: receiving spx streams via udp receiver
+Dec 29 02:18:32 klar (1) parse_receiver_args: receiving opus streams via udp receiver
+Dec 29 02:18:32 klar (1) parse_receiver_args: receiving aac streams via udp receiver
+Dec 29 02:18:32 klar (1) parse_receiver_args: receiving mp3 streams via udp receiver
+Dec 29 02:18:32 klar (1) parse_receiver_args: receiving flac streams via udp receiver
+Dec 29 02:18:32 klar (1) add_filter: wma filter 0: fecdec
+Dec 29 02:18:32 klar (1) add_filter: ogg filter 0: fecdec
+Dec 29 02:18:32 klar (1) add_filter: spx filter 0: fecdec
+Dec 29 02:18:32 klar (1) add_filter: opus filter 0: fecdec
+Dec 29 02:18:32 klar (1) add_filter: aac filter 0: fecdec
+Dec 29 02:18:32 klar (1) add_filter: mp3 filter 0: fecdec
+Dec 29 02:18:32 klar (1) add_filter: flac filter 0: fecdec
+Dec 29 02:18:32 klar (1) add_filter: mp3 filter 1: mp3dec
+Dec 29 02:18:32 klar (1) add_filter: ogg filter 1: oggdec
+Dec 29 02:18:32 klar (1) add_filter: aac filter 1: aacdec
+Dec 29 02:18:32 klar (1) add_filter: wma filter 1: wmadec
+Dec 29 02:18:32 klar (1) add_filter: spx filter 1: spxdec
+Dec 29 02:18:32 klar (1) add_filter: flac filter 1: flacdec
+Dec 29 02:18:32 klar (1) add_filter: opus filter 1: opusdec
+Dec 29 02:18:32 klar (1) add_filter: wma filter 2: amp
+Dec 29 02:18:32 klar (1) add_filter: ogg filter 2: amp
+Dec 29 02:18:32 klar (1) add_filter: spx filter 2: amp
+Dec 29 02:18:32 klar (1) add_filter: opus filter 2: amp
+Dec 29 02:18:32 klar (1) add_filter: aac filter 2: amp
+Dec 29 02:18:32 klar (1) add_filter: mp3 filter 2: amp
+Dec 29 02:18:32 klar (1) add_filter: flac filter 2: amp
+Dec 29 02:18:32 klar (1) add_filter: wma filter 3: compress
+Dec 29 02:18:32 klar (1) add_filter: ogg filter 3: compress
+Dec 29 02:18:32 klar (1) add_filter: spx filter 3: compress
+Dec 29 02:18:32 klar (1) add_filter: opus filter 3: compress
+Dec 29 02:18:32 klar (1) add_filter: aac filter 3: compress
+Dec 29 02:18:32 klar (1) add_filter: mp3 filter 3: compress
+Dec 29 02:18:32 klar (1) add_filter: flac filter 3: compress
+Dec 29 02:18:32 klar (1) parse_writer_args: wma writer: alsa (default)
+Dec 29 02:18:32 klar (1) parse_writer_args: ogg writer: alsa (default)
+Dec 29 02:18:32 klar (1) parse_writer_args: spx writer: alsa (default)
+Dec 29 02:18:32 klar (1) parse_writer_args: opus writer: alsa (default)
+Dec 29 02:18:32 klar (1) parse_writer_args: aac writer: alsa (default)
+Dec 29 02:18:32 klar (1) parse_writer_args: mp3 writer: alsa (default)
+Dec 29 02:18:32 klar (1) parse_writer_args: flac writer: alsa (default)
+Dec 29 02:18:32 klar (1) log_welcome: welcome to para_audiod git (Sun Dec 29 01:49:51 MET 2013)
+Dec 29 02:18:32 klar (1) clear_slot: clearing slot 0
+Dec 29 02:18:32 klar (1) clear_slot: clearing slot 1
+Dec 29 02:18:32 klar (1) clear_slot: clearing slot 2
+Dec 29 02:18:32 klar (1) clear_slot: clearing slot 3
+Dec 29 02:18:32 klar (1) clear_slot: clearing slot 4
+Dec 29 02:18:32 klar (1) setup_signal_handling: signal pipe: fd 4
+Dec 29 02:18:32 klar (0) para_sigaction: catching signal 2
+Dec 29 02:18:32 klar (0) para_sigaction: catching signal 15
+Dec 29 02:18:32 klar (0) para_sigaction: catching signal 1
+Dec 29 02:18:32 klar (0) para_sigaction: catching signal 13
+Dec 29 02:18:32 klar (1) btr_new_node: added stat as btr root
+Dec 29 02:18:32 klar (2) audiod_get_socket: local socket: /var/paraslash/audiod_socket.klar
+Dec 29 02:18:32 klar (1) register_task: registering signal task (0x807fc2c)
+Dec 29 02:18:32 klar (0) register_task: pre_select: 0x807fc2c
+Dec 29 02:18:32 klar (0) register_task: post_select: 0x807fc30
+Dec 29 02:18:32 klar (1) register_task: registering command task (0xbf84acd0)
+Dec 29 02:18:32 klar (0) register_task: pre_select: 0xbf84acd0
+Dec 29 02:18:32 klar (0) register_task: post_select: 0xbf84acd4
+Dec 29 02:18:32 klar (1) register_task: registering stat (0x807fabc)
+Dec 29 02:18:32 klar (0) register_task: pre_select: 0x807fabc
+Dec 29 02:18:32 klar (0) register_task: post_select: 0x807fac0
+Dec 29 02:18:32 klar (1) client_parse_config: loglevel: warning
+Dec 29 02:18:32 klar (1) client_parse_config: config_file: /home/maan/.paraslash/client.conf
+Dec 29 02:18:32 klar (1) client_parse_config: key_file: /home/maan/.paraslash/key.maan
+Dec 29 02:18:32 klar (2) client_connect: connecting p133:2990
+Dec 29 02:18:32 klar (1) btr_new_node: new root: client recv (was stat)
+Dec 29 02:18:32 klar (1) btr_new_node: added client send as btr root
+Dec 29 02:18:32 klar (1) register_task: registering client (0x80db404)
+Dec 29 02:18:32 klar (0) register_task: pre_select: 0x80db404
+Dec 29 02:18:32 klar (0) register_task: post_select: 0x80db408
+Dec 29 02:18:32 klar (1) parse_features: server feature: sideband
+Dec 29 02:18:32 klar (1) client_post_select: --> auth rsa maan sideband
+Dec 29 02:18:32 klar (1) client_post_select: <-- [challenge] (256 bytes)
+Dec 29 02:18:33 klar (1) client_post_select: --> 3c9229389de0fd26030b79ab4b10719801372d98
+Dec 29 02:18:33 klar (0) send_sb_command: --> stat
+Dec 29 02:18:33 klar (0) dispatch_sbb: band: OUTPUT
+Dec 29 02:18:33 klar (0) dispatch_sbb: band: OUTPUT
+Dec 29 02:18:33 klar (1) clear_slot: clearing slot 0
+Dec 29 02:18:33 klar (1) btr_new_node: added udp as btr root
+Dec 29 02:18:33 klar (1) udp_recv_open: receiving from 224.0.1.38:8000, fd=8
+Dec 29 02:18:33 klar (1) btr_pool_new: udp_recv, 327680 bytes
+Dec 29 02:18:33 klar (2) open_receiver: started ogg: udp receiver in slot 0
+Dec 29 02:18:33 klar (1) register_task: registering udp receiver node (0x80dbfcc)
+Dec 29 02:18:33 klar (0) register_task: pre_select: 0x80dbfcc
+Dec 29 02:18:33 klar (0) register_task: post_select: 0x80dbfd0
+Dec 29 02:18:33 klar (1) open_filters: opening ogg filters
+Dec 29 02:18:33 klar (1) btr_new_node: new leaf node: fecdec (child of udp)
+Dec 29 02:18:33 klar (1) register_task: registering  (0x80dc8c8)
+Dec 29 02:18:33 klar (0) register_task: pre_select: 0x80dc8c8
+Dec 29 02:18:33 klar (0) register_task: post_select: 0x80dc8cc
+Dec 29 02:18:33 klar (2) open_filters: ogg filter 0/4 (fecdec) started in slot 0
+Dec 29 02:18:33 klar (1) btr_new_node: new leaf node: oggdec (child of fecdec)
+Dec 29 02:18:33 klar (1) register_task: registering  (0x80dca04)
+Dec 29 02:18:33 klar (0) register_task: pre_select: 0x80dca04
+Dec 29 02:18:33 klar (0) register_task: post_select: 0x80dca08
+Dec 29 02:18:33 klar (2) open_filters: ogg filter 1/4 (oggdec) started in slot 0
+Dec 29 02:18:33 klar (1) btr_new_node: new leaf node: amp (child of oggdec)
+Dec 29 02:18:33 klar (1) amp_open: amplification: 0 (scaling factor: 1.00)
+Dec 29 02:18:33 klar (1) register_task: registering  (0x80dcb40)
+Dec 29 02:18:33 klar (0) register_task: pre_select: 0x80dcb40
+Dec 29 02:18:33 klar (0) register_task: post_select: 0x80dcb44
+Dec 29 02:18:33 klar (2) open_filters: ogg filter 2/4 (amp) started in slot 0
+Dec 29 02:18:33 klar (1) btr_new_node: new leaf node: compress (child of amp)
+Dec 29 02:18:33 klar (1) register_task: registering  (0x80dcc7c)
+Dec 29 02:18:33 klar (0) register_task: pre_select: 0x80dcc7c
+Dec 29 02:18:33 klar (0) register_task: post_select: 0x80dcc80
+Dec 29 02:18:33 klar (2) open_filters: ogg filter 3/4 (compress) started in slot 0
+Dec 29 02:18:33 klar (1) btr_new_node: new leaf node: alsa writer (child of compress)
+Dec 29 02:18:33 klar (1) register_task: registering alsa writer (0x80dc270)
+Dec 29 02:18:33 klar (0) register_task: pre_select: 0x80dc270
+Dec 29 02:18:33 klar (0) register_task: post_select: 0x80dc274
+Dec 29 02:18:33 klar (2) open_writers: alsa writer started in slot 0
+Dec 29 02:18:33 klar (2)  udp
+Dec 29 02:18:33 klar (2)   fecdec
+Dec 29 02:18:33 klar (2)    oggdec
+Dec 29 02:18:33 klar (2)     amp
+Dec 29 02:18:33 klar (2)      compress
+Dec 29 02:18:33 klar (2)       alsa writer
+Dec 29 02:18:33 klar (2) btr_splice_out_node: splicing out amp
+Dec 29 02:18:33 klar (1) btr_splice_out_node: parent(compress): oggdec
+Dec 29 02:18:33 klar (1) unregister_task: unregistering amp (slot 0) (no amplification necessary)
+Dec 29 02:18:33 klar (0) add_slice: group 374 complete, ignoring slice 26
+Dec 29 02:18:33 klar (0) add_slice: group 375 complete, ignoring slice 26
+Dec 29 02:18:33 klar (2) dispatch_slice: init fec (26, 27)
+Dec 29 02:18:33 klar (1) btr_pool_new: fecdec, 131072 bytes
+Dec 29 02:18:33 klar (0) decode_group: decoding group 375 (26 slices)
+Dec 29 02:18:33 klar (0) decode_group: writing group 375 (4245/8710 decoded data bytes)
+Dec 29 02:18:33 klar (1) decode_group: writing audio file header
+Dec 29 02:18:33 klar (0) decode_group: decoding group 376 (26 slices)
+Dec 29 02:18:33 klar (0) decode_group: writing group 376 (4157/4160 decoded data bytes)
+Dec 29 02:18:33 klar (2) ogg_init: iqs: 12752, min_iqs: 8000, opening ov callbacks
+Dec 29 02:18:33 klar (0) cb_read: vorbis requests 65536 bytes have 12752
+Dec 29 02:18:33 klar (2) ogg_init: 2 channels, 44100 Hz
+Dec 29 02:18:33 klar (0) add_slice: group 376 complete, ignoring slice 26
+Dec 29 02:18:34 klar (0) decode_group: decoding group 377 (26 slices)
+Dec 29 02:18:34 klar (0) decode_group: writing group 377 (4370/4394 decoded data bytes)
+Dec 29 02:18:34 klar (0) add_slice: group 377 complete, ignoring slice 26
+Dec 29 02:18:34 klar (0) decode_group: decoding group 378 (26 slices)
+Dec 29 02:18:34 klar (0) decode_group: writing group 378 (4230/4238 decoded data bytes)
+Dec 29 02:18:34 klar (0) add_slice: group 378 complete, ignoring slice 26
+Dec 29 02:18:34 klar (0) decode_group: decoding group 379 (26 slices)
+Dec 29 02:18:34 klar (0) decode_group: writing group 379 (4193/4212 decoded data bytes)
+Dec 29 02:18:34 klar (0) cb_read: vorbis requests 65536 bytes have 12793
+Dec 29 02:18:34 klar (1) btr_exec_up: executing sample_rate on oggdec
+Dec 29 02:18:34 klar (1) btr_exec_up: sample_rate(oggdec): 44100
+Dec 29 02:18:34 klar (1) btr_exec_up: executing channels on oggdec
+Dec 29 02:18:34 klar (1) btr_exec_up: channels(oggdec): 2
+Dec 29 02:18:34 klar (1) btr_exec_up: executing sample_format on oggdec
+Dec 29 02:18:34 klar (1) btr_exec_up: sample_format(oggdec): 2
+Dec 29 02:18:34 klar (1) alsa_write_post_select: 2 channel(s), 44100Hz
+Dec 29 02:18:34 klar (1) alsa_init: opening default
+Dec 29 02:18:35 klar (1) alsa_init: dumping alsa configuration
+Dec 29 02:18:35 klar (1) alsa_init: Plug PCM: Rate conversion PCM (48000, sformat=S16_LE)
+Dec 29 02:18:35 klar (1) alsa_init: Converter: linear-interpolation
+Dec 29 02:18:35 klar (1) alsa_init: Protocol version: 10002
+Dec 29 02:18:35 klar (1) alsa_init: Its setup is:
+Dec 29 02:18:35 klar (1) alsa_init:   stream       : PLAYBACK
+Dec 29 02:18:35 klar (1) alsa_init:   access       : RW_INTERLEAVED
+Dec 29 02:18:35 klar (1) alsa_init:   format       : S16_LE
+Dec 29 02:18:35 klar (1) alsa_init:   subformat    : STD
+Dec 29 02:18:35 klar (1) alsa_init:   channels     : 2
+Dec 29 02:18:35 klar (1) alsa_init:   rate         : 44100
+Dec 29 02:18:35 klar (1) alsa_init:   exact rate   : 44100 (44100/1)
+Dec 29 02:18:35 klar (1) alsa_init:   msbits       : 16
+Dec 29 02:18:35 klar (1) alsa_init:   buffer_size  : 15052
+Dec 29 02:18:35 klar (1) alsa_init:   period_size  : 940
+Dec 29 02:18:35 klar (1) alsa_init:   period_time  : 21333
+Dec 29 02:18:35 klar (1) alsa_init:   tstamp_mode  : NONE
+Dec 29 02:18:35 klar (1) alsa_init:   period_step  : 1
+Dec 29 02:18:35 klar (1) alsa_init:   avail_min    : 940
+Dec 29 02:18:35 klar (1) alsa_init:   period_event : 0
+Dec 29 02:18:35 klar (1) alsa_init:   start_threshold  : 15052
+Dec 29 02:18:35 klar (1) alsa_init:   stop_threshold   : 15052
+Dec 29 02:18:35 klar (1) alsa_init:   silence_threshold: 0
+Dec 29 02:18:35 klar (1) alsa_init:   silence_size : 0
+Dec 29 02:18:35 klar (1) alsa_init:   boundary     : 986447872
+Dec 29 02:18:35 klar (1) alsa_init: Slave: Direct Stream Mixing PCM
+Dec 29 02:18:35 klar (1) alsa_init: Its setup is:
+Dec 29 02:18:35 klar (1) alsa_init:   stream       : PLAYBACK
+Dec 29 02:18:35 klar (1) alsa_init:   access       : MMAP_INTERLEAVED
+Dec 29 02:18:35 klar (1) alsa_init:   format       : S16_LE
+Dec 29 02:18:35 klar (1) alsa_init:   subformat    : STD
+Dec 29 02:18:35 klar (1) alsa_init:   channels     : 2
+Dec 29 02:18:35 klar (1) alsa_init:   rate         : 48000
+Dec 29 02:18:35 klar (1) alsa_init:   exact rate   : 48000 (48000/1)
+Dec 29 02:18:35 klar (1) alsa_init:   msbits       : 16
+Dec 29 02:18:35 klar (1) alsa_init:   buffer_size  : 16384
+Dec 29 02:18:35 klar (1) alsa_init:   period_size  : 1024
+Dec 29 02:18:35 klar (1) alsa_init:   period_time  : 21333
+Dec 29 02:18:35 klar (1) alsa_init:   tstamp_mode  : NONE
+Dec 29 02:18:35 klar (1) alsa_init:   period_step  : 1
+Dec 29 02:18:35 klar (1) alsa_init:   avail_min    : 1024
+Dec 29 02:18:35 klar (1) alsa_init:   period_event : 0
+Dec 29 02:18:35 klar (1) alsa_init:   start_threshold  : 16384
+Dec 29 02:18:35 klar (1) alsa_init:   stop_threshold   : 16384
+Dec 29 02:18:35 klar (1) alsa_init:   silence_threshold: 0
+Dec 29 02:18:35 klar (1) alsa_init:   silence_size : 0
+Dec 29 02:18:35 klar (1) alsa_init:   boundary     : 1073741824
+Dec 29 02:18:35 klar (1) alsa_init: Hardware PCM card 0 'Ensoniq AudioPCI' device 0 subdevice 0
+Dec 29 02:18:35 klar (1) alsa_init: Its setup is:
+Dec 29 02:18:35 klar (1) alsa_init:   stream       : PLAYBACK
+Dec 29 02:18:35 klar (1) alsa_init:   access       : MMAP_INTERLEAVED
+Dec 29 02:18:35 klar (1) alsa_init:   format       : S16_LE
+Dec 29 02:18:35 klar (1) alsa_init:   subformat    : STD
+Dec 29 02:18:35 klar (1) alsa_init:   channels     : 2
+Dec 29 02:18:35 klar (1) alsa_init:   rate         : 48000
+Dec 29 02:18:35 klar (1) alsa_init:   exact rate   : 48000 (1572864000/32768)
+Dec 29 02:18:35 klar (1) alsa_init:   msbits       : 16
+Dec 29 02:18:35 klar (1) alsa_init:   buffer_size  : 16384
+Dec 29 02:18:35 klar (1) alsa_init:   period_size  : 1024
+Dec 29 02:18:35 klar (1) alsa_init:   period_time  : 21333
+Dec 29 02:18:35 klar (1) alsa_init:   tstamp_mode  : ENABLE
+Dec 29 02:18:35 klar (1) alsa_init:   period_step  : 1
+Dec 29 02:18:35 klar (1) alsa_init:   avail_min    : 1024
+Dec 29 02:18:35 klar (1) alsa_init:   period_event : 0
+Dec 29 02:18:35 klar (1) alsa_init:   start_threshold  : 1
+Dec 29 02:18:35 klar (1) alsa_init:   stop_threshold   : 1073741824
+Dec 29 02:18:35 klar (1) alsa_init:   silence_threshold: 0
+Dec 29 02:18:35 klar (1) alsa_init:   silence_size : 1073741824
+Dec 29 02:18:35 klar (1) alsa_init:   boundary     : 1073741824
+Dec 29 02:18:35 klar (1) alsa_init:   appl_ptr     : 0
+Dec 29 02:18:35 klar (1) alsa_init:   hw_ptr       : 1040
+Dec 29 02:18:35 klar (0) add_slice: group 379 complete, ignoring slice 26
+Dec 29 02:18:35 klar (0) decode_group: decoding group 380 (26 slices)
+Dec 29 02:18:35 klar (0) decode_group: writing group 380 (4158/4160 decoded data bytes)
+Dec 29 02:18:35 klar (0) add_slice: group 380 complete, ignoring slice 26
+Dec 29 02:18:35 klar (0) decode_group: decoding group 381 (26 slices)
+Dec 29 02:18:35 klar (0) decode_group: writing group 381 (4241/4264 decoded data bytes)
+Dec 29 02:18:35 klar (0) add_slice: group 381 complete, ignoring slice 26
+Dec 29 02:18:35 klar (0) cb_read: vorbis requests 65536 bytes have 8399
+Dec 29 02:18:35 klar (0) cb_read: vorbis requests 65536 bytes have 0
+Dec 29 02:18:35 klar (0) decode_group: decoding group 382 (26 slices)
+Dec 29 02:18:35 klar (0) decode_group: writing group 382 (4281/4290 decoded data bytes)
+Dec 29 02:18:35 klar (0) add_slice: group 382 complete, ignoring slice 26
+Dec 29 02:18:35 klar (0) cb_read: vorbis requests 65536 bytes have 4281
+Dec 29 02:18:35 klar (0) cb_read: vorbis requests 65536 bytes have 0
index 2a6c7443d1b1852481eb0a7b92cba4e576c6afd0..9166de768a76adb05f73a5984325184f557c9734 100644 (file)
Binary files a/web/screenshots/gui.png and b/web/screenshots/gui.png differ
index f84ede8161f817ff99d197a646e04b4a5b3d72df..c8287b37361b5bdeec2902f89911dc8bbd5ad763 100644 (file)
-Dec 08 19:28:58 2: (21285) log_welcome: welcome to para_server git (Sat Dec  8 13:42:52 MET 2007)
-Dec 08 19:28:58 1: (21285) log_welcome: using loglevel 1
-Dec 08 19:28:58 1: (21285) populate_user_list: found entry for maan
-Dec 08 19:28:58 1: (21285) populate_user_list: found 4 perm entries
-Dec 08 19:28:58 1: (21285) populate_user_list: found entry for install
-Dec 08 19:28:58 1: (21285) populate_user_list: found 4 perm entries
-Dec 08 19:28:58 1: (21285) populate_user_list: found entry for www
-Dec 08 19:28:58 1: (21285) populate_user_list: found 4 perm entries
-Dec 08 19:28:58 2: (21285) daemon_init: daemonizing
-Dec 08 19:28:58 3: (21286) server_init: initializing audio format handlers
-Dec 08 19:28:58 2: (21286) afh_init: supported audio formats: mp3 ogg aac
-Dec 08 19:28:58 3: (21286) afh_init: initializing mp3 handler
-Dec 08 19:28:58 3: (21286) afh_init: initializing ogg handler
-Dec 08 19:28:58 3: (21286) afh_init: initializing aac handler
-Dec 08 19:28:58 3: (21286) server_init: initializing virtual streaming system
-Dec 08 19:28:58 2: (21286) vss_init: announce timeval: 300ms
-Dec 08 19:28:58 3: (21286) vss_init: initializing http sender
-Dec 08 19:28:58 2: (21286) para_listen: listening on TCP port 8000, fd 4
-Dec 08 19:28:58 1: (21286) http_send_init: http sender init complete
-Dec 08 19:28:58 3: (21286) vss_init: initializing dccp sender
-Dec 08 19:28:58 2: (21286) para_listen: listening on DCCP port 5001, fd 5
-Dec 08 19:28:58 3: (21286) vss_init: initializing ortp sender
-Dec 08 19:28:58 1: (21286) ortp_send_init: ortp sender init complete
-Dec 08 19:28:58 3: (21286) setup_signal_handling: setting up signal handlers
-Dec 08 19:28:58 1: (21286) para_install_sighandler: catching signal 2
-Dec 08 19:28:58 1: (21286) para_install_sighandler: catching signal 15
-Dec 08 19:28:58 1: (21286) para_install_sighandler: catching signal 1
-Dec 08 19:28:58 1: (21286) para_install_sighandler: catching signal 17
-Dec 08 19:28:58 1: (21286) para_install_sighandler: catching signal 10
-Dec 08 19:28:58 3: (21286) server_init: initializing the audio file selector
-Dec 08 19:28:58 2: (21287) get_database_dir: afs_database dir /home/maan/.paraslash/afs_database
-Dec 08 19:28:58 3: (21287) open_afs_tables: opening 7 osl tables in /home/maan/.paraslash/afs_database
-Dec 08 19:28:58 2: (21287) osl_open_table: opening table audio_files
-Dec 08 19:28:58 1: (21287) init_table_structure: creating table structure for 'audio_files' from table description
-Dec 08 19:28:58 1: (21287) init_table_structure: OK. Index entry size: 32
-Dec 08 19:28:58 1: (21287) map_table: mapping table 'audio_files' (index: /home/maan/.paraslash/afs_database/audio_files/index)
-Dec 08 19:28:58 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/audio_files/index: size 218667
-Dec 08 19:28:58 1: (21287) read_table_desc: 5 columns
-Dec 08 19:28:58 1: (21287) compare_table_descriptions: table description of 'audio_files' matches on-disk data, good
-Dec 08 19:28:58 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/audio_files/2346ad27d7568ba9896f1b7da6b5991251debdf2: size 143430
-Dec 08 19:28:58 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/audio_files/3150ecd5e0294534a81ae047ddac559de481d774: size 436636
-Dec 08 19:28:58 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/audio_files/94ea39e309f3f31357ab60b190b6b8c32f21620b: size 225390
-Dec 08 19:28:58 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/audio_files/b063ad096f9d142a388ca2a10d46b56904e26cda: size 1174409
-Dec 08 19:28:58 1: (21287) osl_open_table: num rows: 6830
-Dec 08 19:28:58 2: (21286) init_afs: afs_socket: 8, afs_socket_cookie: 1363241225
-Dec 08 19:28:58 3: (21286) server_init: initializing tcp command socket
-Dec 08 19:28:58 2: (21286) para_listen: listening on TCP port 2990, fd 9
-Dec 08 19:28:58 3: (21286) server_init: server init complete
-Dec 08 19:28:58 1: (21286) chk_barrier: autoplay_delay barrier: 14981ms left
-Dec 08 19:28:58 1: (21286) status_refresh: 0 events, forcing status update
-Dec 08 19:28:58 1: (21286) para_next_signal: next signal: 10
-Dec 08 19:28:58 1: (21286) chk_barrier: autoplay_delay barrier: 14981ms left
-Dec 08 19:28:58 1: (21286) para_next_signal: next signal: 10
-Dec 08 19:28:58 1: (21286) chk_barrier: autoplay_delay barrier: 14981ms left
-Dec 08 19:28:58 2: (21287) aft_open: audio file table contains 6830 files
-Dec 08 19:28:58 2: (21287) osl_open_table: opening table attributes
-Dec 08 19:28:58 1: (21287) init_table_structure: creating table structure for 'attributes' from table description
-Dec 08 19:28:58 1: (21287) init_table_structure: OK. Index entry size: 16
-Dec 08 19:28:58 1: (21287) map_table: mapping table 'attributes' (index: /home/maan/.paraslash/afs_database/attributes/index)
-Dec 08 19:28:58 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/attributes/index: size 396
-Dec 08 19:28:58 1: (21287) read_table_desc: 2 columns
-Dec 08 19:28:58 1: (21287) compare_table_descriptions: table description of 'attributes' matches on-disk data, good
-Dec 08 19:28:58 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/attributes/fd1e48caeff7212c45fc08608b7187feb10a7a2d: size 42
-Dec 08 19:28:58 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/attributes/6ae999552a0d2dca14d62e2bc8b764d377b1dd6c: size 141
-Dec 08 19:28:58 1: (21287) osl_open_table: num rows: 21
-Dec 08 19:28:58 2: (21287) osl_open_table: opening table score
-Dec 08 19:28:58 1: (21287) init_table_structure: creating table structure for 'score' from table description
-Dec 08 19:28:58 1: (21287) init_table_structure: OK. Index entry size: 0
-Dec 08 19:28:58 1: (21287) osl_open_table: num rows: 0
-Dec 08 19:28:58 2: (21287) osl_open_table: opening table moods
-Dec 08 19:28:58 1: (21287) init_table_structure: creating table structure for 'moods' from table description
-Dec 08 19:28:58 1: (21287) init_table_structure: OK. Index entry size: 16
-Dec 08 19:28:58 1: (21287) map_table: mapping table 'moods' (index: /home/maan/.paraslash/afs_database/moods/index)
-Dec 08 19:28:58 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/moods/index: size 235
-Dec 08 19:28:58 1: (21287) read_table_desc: 3 columns
-Dec 08 19:28:58 1: (21287) compare_table_descriptions: table description of 'moods' matches on-disk data, good
-Dec 08 19:28:58 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/moods/87ea5dfc8b8e384d848979496e706390b497e547: size 50
-Dec 08 19:28:58 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/moods/6ae999552a0d2dca14d62e2bc8b764d377b1dd6c: size 67
-Dec 08 19:28:58 1: (21287) osl_open_table: num rows: 10
-Dec 08 19:28:58 2: (21287) osl_open_table: opening table lyrics
-Dec 08 19:28:58 1: (21287) init_table_structure: creating table structure for 'lyrics' from table description
-Dec 08 19:28:58 1: (21287) init_table_structure: OK. Index entry size: 16
-Dec 08 19:28:58 1: (21287) map_table: mapping table 'lyrics' (index: /home/maan/.paraslash/afs_database/lyrics/index)
-Dec 08 19:28:58 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/lyrics/index: size 347
-Dec 08 19:28:58 1: (21287) read_table_desc: 3 columns
-Dec 08 19:28:58 1: (21287) compare_table_descriptions: table description of 'lyrics' matches on-disk data, good
-Dec 08 19:28:58 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/lyrics/87ea5dfc8b8e384d848979496e706390b497e547: size 85
-Dec 08 19:28:58 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/lyrics/6ae999552a0d2dca14d62e2bc8b764d377b1dd6c: size 478
-Dec 08 19:28:58 1: (21287) osl_open_table: num rows: 17
-Dec 08 19:28:58 2: (21287) osl_open_table: opening table images
-Dec 08 19:28:58 1: (21287) init_table_structure: creating table structure for 'images' from table description
-Dec 08 19:28:58 1: (21287) init_table_structure: OK. Index entry size: 16
-Dec 08 19:28:58 1: (21287) map_table: mapping table 'images' (index: /home/maan/.paraslash/afs_database/images/index)
-Dec 08 19:28:58 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/images/index: size 7227
-Dec 08 19:28:58 1: (21287) read_table_desc: 3 columns
-Dec 08 19:28:58 1: (21287) compare_table_descriptions: table description of 'images' matches on-disk data, good
-Dec 08 19:28:58 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/images/87ea5dfc8b8e384d848979496e706390b497e547: size 2235
-Dec 08 19:28:58 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/images/6ae999552a0d2dca14d62e2bc8b764d377b1dd6c: size 12950
-Dec 08 19:28:58 1: (21287) osl_open_table: num rows: 447
-Dec 08 19:28:58 2: (21287) osl_open_table: opening table playlists
-Dec 08 19:28:58 1: (21287) init_table_structure: creating table structure for 'playlists' from table description
-Dec 08 19:28:58 1: (21287) init_table_structure: OK. Index entry size: 16
-Dec 08 19:28:58 1: (21287) map_table: mapping table 'playlists' (index: /home/maan/.paraslash/afs_database/playlists/index)
-Dec 08 19:28:58 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/playlists/index: size 107
-Dec 08 19:28:58 1: (21287) read_table_desc: 3 columns
-Dec 08 19:28:58 1: (21287) compare_table_descriptions: table description of 'playlists' matches on-disk data, good
-Dec 08 19:28:58 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/playlists/87ea5dfc8b8e384d848979496e706390b497e547: size 10
-Dec 08 19:28:58 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/playlists/6ae999552a0d2dca14d62e2bc8b764d377b1dd6c: size 7
-Dec 08 19:28:58 1: (21287) osl_open_table: num rows: 2
-Dec 08 19:28:58 2: (21287) afs_init: server_socket: 9, afs_socket_cookie: 1363241225
-Dec 08 19:28:58 1: (21287) osl_open_disk_object: filename: /home/maan/.paraslash/afs_database/moods/f3f1dd33eb2a8b380b64a830e5fd90eab77d9ff3/9d/b063f3b5e0adfd0d29a03db0a1c207b3740a94
-Dec 08 19:28:58 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/moods/f3f1dd33eb2a8b380b64a830e5fd90eab77d9ff3/9d/b063f3b5e0adfd0d29a03db0a1c207b3740a94: size 31
-Dec 08 19:28:58 1: (21287) parse_mood_line: accept entry added, method: 0x806c0f4
-Dec 08 19:28:58 3: (21287) change_current_mood: computing statistics of admissible files
-Dec 08 19:28:58 2: (21287) log_statistics: last_played mean: 1193159581, last_played sigma: 4161524
-Dec 08 19:28:58 2: (21287) log_statistics: num_played mean: 32, num_played sigma: 21
-Dec 08 19:28:58 2: (21287) change_current_mood: 26 admissible files 
-Dec 08 19:28:58 3: (21287) change_current_mood: loaded mood gulp
-Dec 08 19:28:58 2: (21287) register_signal_task: signal pipe: fd 8
-Dec 08 19:28:58 1: (21287) para_install_sighandler: catching signal 2
-Dec 08 19:28:58 1: (21287) para_install_sighandler: catching signal 15
-Dec 08 19:28:58 1: (21287) para_install_sighandler: catching signal 13
-Dec 08 19:28:58 1: (21287) para_install_sighandler: catching signal 1
-Dec 08 19:28:58 2: (21287) init_sched: initializing scheduler
-Dec 08 19:28:58 2: (21287) register_task: registering signal task (0x806f244)
-Dec 08 19:28:58 1: (21287) register_task: pre_select: 0x806f248
-Dec 08 19:28:58 1: (21287) register_task: post_select: 0x806f248
-Dec 08 19:28:58 2: (21287) setup_command_socket_or_die: listening on socket /var/paraslash/afs_command_socket (fd 1)
-Dec 08 19:28:58 2: (21287) register_task: registering command task (0x806f118)
-Dec 08 19:28:58 1: (21287) register_task: pre_select: 0x806f11c
-Dec 08 19:28:58 1: (21287) register_task: post_select: 0x806f11c
-Dec 08 19:28:59 2: (21286) main: got connection from ::ffff:127.0.0.1#42344, forking
-Dec 08 19:28:59 1: (21356) close_listed_fds: closing fd 9
-Dec 08 19:28:59 1: (21356) close_listed_fds: closing fd 8
-Dec 08 19:28:59 1: (21356) close_listed_fds: closing fd 6
-Dec 08 19:28:59 1: (21356) close_listed_fds: closing fd 5
-Dec 08 19:28:59 1: (21356) close_listed_fds: closing fd 4
-Dec 08 19:28:59 1: (21286) chk_barrier: autoplay_delay barrier: 13507ms left
-Dec 08 19:28:59 1: (21356) handle_connect: received rc4 request for user maan
-Dec 08 19:28:59 1: (21356) handle_connect: sending 64 byte challenge
-Dec 08 19:28:59 2: (21356) handle_connect: good auth for maan (1081806111)
-Dec 08 19:28:59 1: (21356) init_rc4_keys: rc4 keys initialized (84:105)
-Dec 08 19:28:59 2: (21356) enable_crypt: rc4 encryption activated for fd 10
-Dec 08 19:28:59 3: (21356) handle_connect: invalid command
-Dec 08 19:28:59 1: (21286) para_next_signal: next signal: 17
-Dec 08 19:28:59 1: (21286) para_reap_child: child 21356 exited. Exit status: 1
-Dec 08 19:28:59 1: (21286) chk_barrier: autoplay_delay barrier: 13498ms left
-Dec 08 19:29:03 2: (21286) main: got connection from ::ffff:127.0.0.1#42345, forking
-Dec 08 19:29:03 1: (21362) close_listed_fds: closing fd 9
-Dec 08 19:29:03 1: (21362) close_listed_fds: closing fd 8
-Dec 08 19:29:03 1: (21362) close_listed_fds: closing fd 6
-Dec 08 19:29:03 1: (21362) close_listed_fds: closing fd 5
-Dec 08 19:29:03 1: (21362) close_listed_fds: closing fd 4
-Dec 08 19:29:03 1: (21286) chk_barrier: autoplay_delay barrier: 9951ms left
-Dec 08 19:29:03 1: (21362) handle_connect: received rc4 request for user maan
-Dec 08 19:29:03 1: (21362) handle_connect: sending 64 byte challenge
-Dec 08 19:29:03 2: (21362) handle_connect: good auth for maan (705434988)
-Dec 08 19:29:03 1: (21362) init_rc4_keys: rc4 keys initialized (18:65)
-Dec 08 19:29:03 2: (21362) enable_crypt: rc4 encryption activated for fd 10
-Dec 08 19:29:03 1: (21362) check_perms: checking permissions
-Dec 08 19:29:03 3: (21362) handle_connect: calling com_stat() for maan@::ffff:127.0.0.1#42345
-Dec 08 19:29:13 1: (21286) chk_barrier: autoplay_delay barrier: 3ms left
-Dec 08 19:29:13 1: (21286) vss_preselect: ready and playing, but no audio file
-Dec 08 19:29:13 3: (21286) vss_post_select: requesting new fd from afs
-Dec 08 19:29:13 1: (21287) execute_server_command: received: new
-Dec 08 19:29:13 3: (21287) open_next_audio_file: getting next audio file
-Dec 08 19:29:13 1: (21287) osl_open_disk_object: filename: /home/maan/.paraslash/afs_database/audio_files/7e078c9876ccabef154017c770e05195c85b5e4d/55/b5e38d467105bd88133cf5ded70e551e582593
-Dec 08 19:29:13 1: (21287) mmap_full_file: /home/maan/.paraslash/afs_database/audio_files/7e078c9876ccabef154017c770e05195c85b5e4d/55/b5e38d467105bd88133cf5ded70e551e582593: size 4532
-Dec 08 19:29:13 1: (21287) mmap_full_file: /home/mp3/checked/dvd_07/cd_46/The_G.U.L.P.__Scheiss_Krieg.ogg: size 5274482
-Dec 08 19:29:13 1: (21287) mood_update_audio_file: score: 6
-Dec 08 19:29:13 1: (21287) mood_update_audio_file: moving from rank 26 to 35%
-Dec 08 19:29:13 1: (21287) score_update: new score: 0, rank 9/26
-Dec 08 19:29:13 1: (21287) osl_update_object: updating column 1 of score
-Dec 08 19:29:13 1: (21287) score_update: new score: -65, rank 1/26
-Dec 08 19:29:13 1: (21287) osl_update_object: updating column 1 of score
-Dec 08 19:29:13 1: (21287) save_afd: size: 8932
-Dec 08 19:29:13 1: (21287) pass_afd: passing 8 bytes and fd 12
-Dec 08 19:29:13 1: (21286) recv_afs_result: fd: 10, code: 0, shmid: 28442631
-Dec 08 19:29:13 1: (21286) chk_barrier: data send barrier: 300ms left
-Dec 08 19:29:13 1: (21286) status_refresh: 1 events, forcing status update
-Dec 08 19:29:13 1: (21286) chk_barrier: data send barrier: 300ms left
-Dec 08 19:29:13 1: (21286) chk_barrier: data send barrier: 300ms left
-Dec 08 19:29:13 1: (21286) para_next_signal: next signal: 10
-Dec 08 19:29:13 1: (21286) chk_barrier: data send barrier: 300ms left
-Dec 08 19:29:13 3: (21286) dccp_post_select: connection from ::ffff:127.0.0.1#46539
-Dec 08 19:29:13 1: (21286) chk_barrier: data send barrier: 287ms left
-Dec 08 19:29:13 1: (21286) chk_barrier: data send barrier: 287ms left
-Dec 08 19:29:13 1: (21287) para_next_signal: next signal: 10
-Dec 08 19:29:13 1: (21286) status_refresh: 2 events, forcing status update
-Dec 08 19:29:13 1: (21286) para_next_signal: next signal: 10
-Dec 08 19:29:13 1: (21287) para_next_signal: next signal: 10
-Dec 08 19:29:14 1: (21286) cq_enqueue: 4446 bytes queued for 0x8072eb0
+Dec 29 02:12:57 (1) (16077) log_welcome: welcome to para_server git (Sun Dec 29 01:49:51 MET 2013)
+Dec 29 02:12:57 (0) (16077) populate_user_list: found entry for user maan
+Dec 29 02:12:57 (0) (16077) populate_user_list: found 4 perm entries
+Dec 29 02:12:57 (0) (16077) populate_user_list: found entry for user sshmaan
+Dec 29 02:12:57 (1) (16077) get_asymmetric_key: decoding public rsa-ssh key /home/maan/.ssh/id_rsa.pub
+Dec 29 02:12:57 (0) (16077) check_ssh_key_header: type: ssh-rsa, rlen: 7
+Dec 29 02:12:57 (0) (16077) read_bignum: bnsize: 3
+Dec 29 02:12:57 (0) (16077) read_bignum: bnsize: 257
+Dec 29 02:12:57 (0) (16077) populate_user_list: found 4 perm entries
+Dec 29 02:12:57 (0) (16077) populate_user_list: found entry for user install
+Dec 29 02:12:57 (3) (16077) populate_user_list: public key /home/maan/.paraslash/key.pub.install too short (64)
+Dec 29 02:12:57 (0) (16077) populate_user_list: found entry for user www
+Dec 29 02:12:57 (3) (16077) populate_user_list: public key /home/maan/.paraslash/key.pub.www too short (64)
+Dec 29 02:12:57 (0) (16077) populate_user_list: found entry for user maan@albrecht
+Dec 29 02:12:57 (0) (16077) populate_user_list: found 2 perm entries
+Dec 29 02:12:57 (2) (16077) server_init: initializing audio format handlers
+Dec 29 02:12:57 (1) (16077) afh_init: supported audio formats: mp3 wma ogg spx aac flac
+Dec 29 02:12:57 (2) (16077) afh_init: initializing mp3 handler
+Dec 29 02:12:57 (2) (16077) afh_init: initializing ogg handler
+Dec 29 02:12:57 (2) (16077) afh_init: initializing aac handler
+Dec 29 02:12:57 (2) (16077) afh_init: initializing wma handler
+Dec 29 02:12:57 (2) (16077) afh_init: initializing spx handler
+Dec 29 02:12:57 (2) (16077) afh_init: initializing flac handler
+Dec 29 02:12:57 (2) (16077) afh_init: initializing opus handler
+Dec 29 02:12:57 (0) (16077) para_sigaction: catching signal 10
+Dec 29 02:12:57 (0) (16077) para_block_signal: blocking signal 17
+Dec 29 02:12:57 (2) (16077) server_init: initializing the audio file selector
+Dec 29 02:12:57 (1) (16077) init_afs: afs_socket: 4, afs_socket_cookie: 3213854017
+Dec 29 02:12:57 (2) (16077) init_signal_task: setting up signal handling
+Dec 29 02:12:57 (0) (16077) para_sigaction: catching signal 2
+Dec 29 02:12:57 (0) (16077) para_sigaction: catching signal 15
+Dec 29 02:12:57 (0) (16078) para_sigaction: catching signal 13
+Dec 29 02:12:57 (0) (16077) para_sigaction: catching signal 1
+Dec 29 02:12:57 (0) (16077) para_sigaction: catching signal 17
+Dec 29 02:12:57 (0) (16077) para_sigaction: catching signal 13
+Dec 29 02:12:57 (1) (16077) register_task: registering signal task (0x807c3e4)
+Dec 29 02:12:57 (0) (16077) register_task: pre_select: 0x807c3e4
+Dec 29 02:12:57 (0) (16077) register_task: post_select: 0x807c3e8
+Dec 29 02:12:57 (0) (16077) para_unblock_signal: unblocking signal 17
+Dec 29 02:12:57 (2) (16077) server_init: initializing virtual streaming system
+Dec 29 02:12:57 (1) (16078) register_signal_task: signal pipe: fd 4
+Dec 29 02:12:57 (0) (16078) para_sigaction: catching signal 2
+Dec 29 02:12:57 (0) (16078) para_sigaction: catching signal 15
+Dec 29 02:12:57 (1) (16077) init_vss_task: announce timeval: 300ms
+Dec 29 02:12:57 (0) (16078) para_sigaction: catching signal 1
+Dec 29 02:12:57 (2) (16077) init_vss_task: initializing http sender
+Dec 29 02:12:57 (1) (16078) register_task: registering signal task (0x807cec4)
+Dec 29 02:12:57 (0) (16078) register_task: pre_select: 0x807cec4
+Dec 29 02:12:57 (1) (16077) acl_add_entry: adding 192.168.0.0/24 to access list
+Dec 29 02:12:57 (0) (16078) register_task: post_select: 0x807cec8
+Dec 29 02:12:57 (1) (16077) acl_add_entry: adding 127.0.0.1/32 to access list
+Dec 29 02:12:57 (1) (16078) get_database_dir: afs_database dir /home/maan/.paraslash/afs_database-0.4
+Dec 29 02:12:57 (2) (16078) open_afs_tables: opening 7 osl tables in /home/maan/.paraslash/afs_database-0.4
+Dec 29 02:12:57 (1) (16077) para_listen: listening on TCP port 8000, fd 7
+Dec 29 02:12:57 (2) (16077) init_vss_task: initializing dccp sender
+Dec 29 02:12:57 (1) (16077) para_listen: listening on DCCP port 8000, fd 8
+Dec 29 02:12:57 (2) (16077) init_vss_task: initializing udp sender
+Dec 29 02:12:57 (1) (16077) udp_com_add: adding to target list (224.0.1.38:8000)
+Dec 29 02:12:57 (1) (16077) udp_com_add: adding to target list (192.168.0.2:8000)
+Dec 29 02:12:57 (0) (16077) udp_send_init: udp sender init complete
+Dec 29 02:12:57 (1) (16077) register_task: registering vss task (0x807c65c)
+Dec 29 02:12:57 (0) (16077) register_task: pre_select: 0x807c65c
+Dec 29 02:12:57 (0) (16077) register_task: post_select: 0x807c660
+Dec 29 02:12:57 (2) (16077) init_server_command_task: initializing tcp command socket
+Dec 29 02:12:57 (1) (16077) para_listen: listening on TCP port 2990, fd 11
+Dec 29 02:12:57 (1) (16077) register_task: registering server command task (0x807c2c0)
+Dec 29 02:12:57 (0) (16077) register_task: pre_select: 0x807c2c0
+Dec 29 02:12:57 (0) (16077) register_task: post_select: 0x807c2c4
+Dec 29 02:12:57 (2) (16077) server_init: server init complete
+Dec 29 02:12:57 (0) (16077) status_refresh: 0 events, forcing status update
+Dec 29 02:12:57 (1) (16078) aft_open: audio file table contains 9212 files
+Dec 29 02:12:57 (1) (16078) afs_init: server_socket: 5, afs_socket_cookie: 3213854017
+Dec 29 02:12:57 (0) (16078) parse_mood_line: accept entry added, method: 0x806fdac
+Dec 29 02:12:57 (2) (16078) change_current_mood: computing statistics of admissible files
+Dec 29 02:12:57 (1) (16078) log_statistics: last_played mean: 1385279255, last_played sigma: 2805987
+Dec 29 02:12:57 (1) (16078) log_statistics: num_played mean: 48, num_played sigma: 18
+Dec 29 02:12:57 (1) (16078) change_current_mood: 26 admissible files
+Dec 29 02:12:57 (2) (16078) change_current_mood: loaded mood gulp
+Dec 29 02:12:57 (1) (16078) setup_command_socket_or_die: listening on socket /var/paraslash/afs_command_socket-0.4 (fd 7)
+Dec 29 02:12:57 (1) (16078) register_task: registering afs command task (0x807cfec)
+Dec 29 02:12:57 (0) (16078) register_task: pre_select: 0x807cfec
+Dec 29 02:12:57 (0) (16078) register_task: post_select: 0x807cff0
+Dec 29 02:12:57 (1) (16077) command_post_select: got connection from 192.168.0.4:60731, forking
+Dec 29 02:12:57 (0) (16079) close_listed_fds: closing fd 11
+Dec 29 02:12:57 (0) (16079) close_listed_fds: closing fd 10
+Dec 29 02:12:57 (0) (16079) close_listed_fds: closing fd 9
+Dec 29 02:12:57 (0) (16079) close_listed_fds: closing fd 8
+Dec 29 02:12:57 (0) (16079) close_listed_fds: closing fd 7
+Dec 29 02:12:57 (0) (16079) close_listed_fds: closing fd 5
+Dec 29 02:12:57 (0) (16079) close_listed_fds: closing fd 4
+Dec 29 02:12:57 (0) (16079) para_sigaction: catching signal 17
+Dec 29 02:12:57 (0) (16079) para_sigaction: catching signal 2
+Dec 29 02:12:57 (0) (16079) para_sigaction: catching signal 15
+Dec 29 02:12:57 (0) (16079) para_sigaction: catching signal 1
+Dec 29 02:12:57 (0) (16079) parse_auth_request: received auth request for user maan
+Dec 29 02:12:57 (0) (16079) handle_connect: received auth request for user maan
+Dec 29 02:12:57 (0) (16079) handle_connect: sending 64 byte challenge + rc4 keys (256 bytes)
+Dec 29 02:12:57 (0) (16079) handle_connect: received 20 bytes challenge response
+Dec 29 02:12:57 (1) (16079) handle_connect: good auth for maan
+Dec 29 02:12:57 (0) (16079) check_perms: checking permissions
+Dec 29 02:12:57 (2) (16079) handle_connect: calling com_stat() for maan@192.168.0.4:60731
+Dec 29 02:12:57 (0) (16079) para_sigaction: catching signal 10
+Dec 29 02:13:02 (1) (16077) command_post_select: got connection from 192.168.0.1:58527, forking
+Dec 29 02:13:02 (0) (16080) close_listed_fds: closing fd 11
+Dec 29 02:13:02 (0) (16080) close_listed_fds: closing fd 10
+Dec 29 02:13:02 (0) (16080) close_listed_fds: closing fd 9
+Dec 29 02:13:02 (0) (16080) close_listed_fds: closing fd 8
+Dec 29 02:13:02 (0) (16080) close_listed_fds: closing fd 7
+Dec 29 02:13:02 (0) (16080) close_listed_fds: closing fd 5
+Dec 29 02:13:02 (0) (16080) close_listed_fds: closing fd 4
+Dec 29 02:13:02 (0) (16080) para_sigaction: catching signal 17
+Dec 29 02:13:02 (0) (16080) para_sigaction: catching signal 2
+Dec 29 02:13:02 (0) (16080) para_sigaction: catching signal 15
+Dec 29 02:13:02 (0) (16080) para_sigaction: catching signal 1
+Dec 29 02:13:02 (0) (16080) parse_auth_request: received auth request for user maan
+Dec 29 02:13:02 (0) (16080) handle_connect: received auth request for user maan
+Dec 29 02:13:02 (0) (16080) handle_connect: sending 64 byte challenge + rc4 keys (256 bytes)
+Dec 29 02:13:02 (0) (16080) handle_connect: received 20 bytes challenge response
+Dec 29 02:13:02 (1) (16080) handle_connect: good auth for maan
+Dec 29 02:13:02 (0) (16080) check_perms: checking permissions
+Dec 29 02:13:02 (2) (16080) handle_connect: calling com_stat() for maan@192.168.0.1:58527
+Dec 29 02:13:02 (0) (16080) para_sigaction: catching signal 10
+Dec 29 02:13:09 (1) (16077) command_post_select: got connection from 192.168.0.1:58528, forking
+Dec 29 02:13:09 (0) (16089) close_listed_fds: closing fd 11
+Dec 29 02:13:09 (0) (16089) close_listed_fds: closing fd 10
+Dec 29 02:13:09 (0) (16089) close_listed_fds: closing fd 9
+Dec 29 02:13:09 (0) (16089) close_listed_fds: closing fd 8
+Dec 29 02:13:09 (0) (16089) close_listed_fds: closing fd 7
+Dec 29 02:13:09 (0) (16089) close_listed_fds: closing fd 5
+Dec 29 02:13:09 (0) (16089) close_listed_fds: closing fd 4
+Dec 29 02:13:09 (0) (16089) para_sigaction: catching signal 17
+Dec 29 02:13:09 (0) (16089) para_sigaction: catching signal 2
+Dec 29 02:13:09 (0) (16089) para_sigaction: catching signal 15
+Dec 29 02:13:09 (0) (16089) para_sigaction: catching signal 1
+Dec 29 02:13:09 (0) (16089) parse_auth_request: received auth request for user maan
+Dec 29 02:13:09 (0) (16089) handle_connect: received auth request for user maan
+Dec 29 02:13:09 (0) (16089) handle_connect: sending 64 byte challenge + rc4 keys (256 bytes)
+Dec 29 02:13:09 (0) (16089) handle_connect: received 20 bytes challenge response
+Dec 29 02:13:09 (1) (16089) handle_connect: good auth for maan
+Dec 29 02:13:09 (0) (16089) check_perms: checking permissions
+Dec 29 02:13:09 (2) (16089) handle_connect: calling com_play() for maan@192.168.0.1:58528
+Dec 29 02:13:09 (0) (16077) para_next_signal: next signal: 17
+Dec 29 02:13:09 (0) (16077) para_reap_child: child 16089 exited. Exit status: 0
+Dec 29 02:13:09 (0) (16077) vss_pre_select: ready and playing, but no audio file
+Dec 29 02:13:09 (0) (16077) status_refresh: 1 events, forcing status update
+Dec 29 02:13:09 (2) (16077) vss_post_select: requesting new fd from afs
+Dec 29 02:13:09 (2) (16078) open_next_audio_file: getting next audio file
+Dec 29 02:13:09 (2) (16078) open_and_update_audio_file: /home/mp3/checked/dvd_07/cd_45/The_G.U.L.P.__Popstar.ogg
+Dec 29 02:13:09 (1) (16078) shm_get_shmmax: shmmax: 33554432
+Dec 29 02:13:09 (0) (16078) mood_update_audio_file: score: -11
+Dec 29 02:13:09 (0) (16078) mood_update_audio_file: moving from rank 26 to 29%
+Dec 29 02:13:09 (0) (16078) score_update: new score: -13, rank 8/26
+Dec 29 02:13:09 (0) (16078) score_update: new score: -67, rank 1/26
+Dec 29 02:13:09 (0) (16078) pass_afd: passing 8 bytes and fd 8
+Dec 29 02:13:09 (0) (16077) recv_afs_result: fd: 12, code: 0, shmid: 121700353
+Dec 29 02:13:09 (0) (16077) vorbis_get_header_callback: processing ogg packet #0
+Dec 29 02:13:09 (0) (16077) add_ogg_page: header/body/old/new: 28/30/0/58
+Dec 29 02:13:09 (1) (16077) process_packets_2_and_3: ogg page serial: 867600341
+Dec 29 02:13:09 (0) (16077) vorbis_get_header_callback: processing ogg packet #1
+Dec 29 02:13:09 (1) (16077) vorbis_get_header_callback: replacing metadata packet
+Dec 29 02:13:09 (1) (16077) process_packets_2_and_3: ogg page serial: 867600341
+Dec 29 02:13:09 (0) (16077) vorbis_get_header_callback: processing ogg packet #2
+Dec 29 02:13:09 (0) (16077) add_ogg_page: header/body/old/new: 45/4247/58/4350
+Dec 29 02:13:09 (1) (16077) vorbis_get_header: created 4350 byte ogg vorbis header
+Dec 29 02:13:09 (0) (16077) chk_barrier: data send barrier: 203ms left
+Dec 29 02:13:09 (0) (16077) status_refresh: 2 events, forcing status update
+Dec 29 02:13:09 (0) (16079) connect_local_socket: connecting to /var/paraslash/afs_command_socket-0.4
+Dec 29 02:13:09 (0) (16080) connect_local_socket: connecting to /var/paraslash/afs_command_socket-0.4
+Dec 29 02:13:09 (2) (16077) udp_init_session: sending to udp 192.168.0.2:8000
+Dec 29 02:13:09 (1) (16077) udp_init_fec: current MPS = 548 bytes
+Dec 29 02:13:09 (1) (16077) initialize_fec_client: mps: 548, k: 26, n: 28, extra slices: 12
+Dec 29 02:13:09 (0) (16077) set_group_timing: durations (group/chunk/slice): 226/226/8
+Dec 29 02:13:09 (0) (16077) setup_next_fec_group: FEC group 0: 1 chunks (0 - 0), 4350 bytes
+Dec 29 02:13:09 (0) (16077) setup_next_fec_group: slice_bytes: 168, 0 header slices, 26 data slices
+Dec 29 02:13:09 (0) (16077) vss_send: sending 0:0 (168 bytes)
+Dec 29 02:13:09 (2) (16077) udp_init_session: sending to udp 224.0.1.38:8000
+Dec 29 02:13:09 (1) (16077) udp_init_fec: current MPS = 548 bytes
+Dec 29 02:13:09 (1) (16077) initialize_fec_client: mps: 548, k: 26, n: 27, extra slices: 24
+Dec 29 02:13:09 (0) (16077) set_group_timing: durations (group/chunk/slice): 226/226/8
+Dec 29 02:13:09 (0) (16077) setup_next_fec_group: FEC group 0: 1 chunks (0 - 0), 4350 bytes
+Dec 29 02:13:09 (0) (16077) setup_next_fec_group: slice_bytes: 168, 0 header slices, 26 data slices
+Dec 29 02:13:09 (0) (16077) vss_send: sending 0:0 (168 bytes)
+Dec 29 02:13:09 (0) (16077) status_refresh: 3 events, forcing status update
+Dec 29 02:13:09 (0) (16079) connect_local_socket: connecting to /var/paraslash/afs_command_socket-0.4
+Dec 29 02:13:09 (0) (16080) connect_local_socket: connecting to /var/paraslash/afs_command_socket-0.4
+Dec 29 02:13:09 (0) (16077) vss_send: sending 0:1 (168 bytes)
+Dec 29 02:13:09 (0) (16077) vss_send: sending 0:1 (168 bytes)
+Dec 29 02:13:09 (0) (16077) vss_send: sending 0:2 (168 bytes)
+Dec 29 02:13:09 (0) (16077) vss_send: sending 0:2 (168 bytes)
+Dec 29 02:13:09 (0) (16077) vss_send: sending 0:3 (168 bytes)
index 207b0ba8cae25c024172023d58d3691e7c4f5e9b..c429020c4e3455aa56929d5a36e60df315de7e28 100644 (file)
--- a/wma_afh.c
+++ b/wma_afh.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2009-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -132,7 +132,7 @@ static const char album_tag_header[] = { /* WM/AlbumTitle */
 static void read_asf_tags(const char *buf, int buf_size, struct taginfo *ti)
 {
        const char *p, *end = buf + buf_size, *q;
-       uint16_t len1, len2, len3, len4, len5;
+       uint16_t len1, len2, len3, len4;
 
        p = search_pattern(comment_header, sizeof(comment_header),
                buf, buf_size);
@@ -149,7 +149,7 @@ static void read_asf_tags(const char *buf, int buf_size, struct taginfo *ti)
        p += 2;
        len4 = read_u16(p);
        p += 2;
-       len5 = read_u16(p);
+       /* ignore length of the rating information */
        p += 2;
        if (p + len1 >= end)
                goto next;
@@ -158,10 +158,10 @@ static void read_asf_tags(const char *buf, int buf_size, struct taginfo *ti)
        if (p + len2 >= end)
                goto next;
        ti->artist = get_str16(p, len2);
-       p += len2 + len3 + len4;
-       if (p + len5 >= end)
+       p += len2 + len3;
+       if (p + len4 >= end)
                goto next;
-       ti->comment = get_str16(p, len5);
+       ti->comment = get_str16(p, len4);
 next:
        p = search_pattern(extended_content_header, sizeof(extended_content_header),
                buf, buf_size);
index b101d0a6e88e921d814e630113d59a263a657fd1..97cdba0ae5a34953257de5657fc79f62f355500f 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2009-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2009-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 8b751f04592eff0f7d6b3e5fe73ade1938c17382..0071337f38427cc98f341404a6819ee683352ecc 100644 (file)
@@ -149,6 +149,8 @@ struct private_wmadec_data {
 #define VLCBITS 9
 #define VLCMAX DIV_ROUND_UP(22, VLCBITS)
 
+/** \cond sine_winows */
+
 #define SINE_WINDOW(x) static float sine_ ## x[x] __a_aligned(16)
 
 SINE_WINDOW(128);
@@ -161,6 +163,7 @@ SINE_WINDOW(4096);
 static float *sine_windows[6] = {
        sine_128, sine_256, sine_512, sine_1024, sine_2048, sine_4096
 };
+/** \endcond sine_windows */
 
 /* Generate a sine window. */
 static void sine_window_init(float *window, int n)
diff --git a/write.c b/write.c
index 6799db4175282b779c2fd454d11988be31b933d8..4ed5f72e10638eb03149d6a431511d8d7b59539e 100644 (file)
--- a/write.c
+++ b/write.c
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2005-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2005-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
diff --git a/write.h b/write.h
index 829216088c3c2ae16f1be035bd75a490e1989076..0cfcafdade93f8334a9b8236656ba967def148ec 100644 (file)
--- a/write.h
+++ b/write.h
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
index 33ef8be60d0a5fa04e2acd4d21f9b9ad7fc75d2a..e191c49ad2ec2240534b6c420ac6d146ac3efc49 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */
@@ -16,6 +16,7 @@
 #include "buffer_tree.h"
 #include "write.h"
 #include "error.h"
+#include "write_common.h"
 
 /** the array containing the names of all supported writers */
 const char *writer_names[] ={WRITER_NAMES};
index ecad2d18eb2fe37b9e9d39691238b9acefebb3a2..e0351602f2331da0913fa826f9d800663e3b9b92 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2006-2013 Andre Noll <maan@systemlinux.org>
+ * Copyright (C) 2006-2014 Andre Noll <maan@systemlinux.org>
  *
  * Licensed under the GPL v2. For licencing details see COPYING.
  */