9 years agoconfigure: Check for gengetopt.
Andre Noll [Sat, 4 Jun 2011 10:09:26 +0000 (12:09 +0200)]
configure: Check for gengetopt.

Print an error message at configure time if gengetopt is not installed.

This patch also modifies the commands that call gengetopt in
ggo/makefile to use the executable which was found by configure.

9 years agomanual: Move gengetopt section.
Andre Noll [Fri, 3 Jun 2011 05:42:11 +0000 (07:42 +0200)]
manual: Move gengetopt section.

As gengetopt is now required also for building the tarball, move
the section on gengetopt from "Tools" to Requirements".

9 years agoDon't ship generated *cmdline.[ch] files in tarball.
Andre Noll [Fri, 3 Jun 2011 04:58:45 +0000 (06:58 +0200)]
Don't ship generated *cmdline.[ch] files in tarball.

These files increase the size of the tarball considerably for no real
gain. Gengetopt is available as a package on all major distributions,
so simply require gengetopt.

9 years agoalsa: Avoid busy loop.
Andre Noll [Sun, 24 Jul 2011 20:18:42 +0000 (22:18 +0200)]
alsa: Avoid busy loop.

It is possible that snd_pcm_writei() returns zero rather than -EAGAIN
in case nothing was written because the alsa buffer was already full.

Currently we try again, and eventually succeed. However, this is
ugly, burns CPU cycles and might even lead to an endless loop for
misconfigured alsa devices. So simply return from alsa_post_select()
if snd_pcm_writei() returned zero.

9 years agoMerge branch 't/clang'
Andre Noll [Thu, 21 Jul 2011 20:40:40 +0000 (22:40 +0200)]
Merge branch 't/clang'

9 years agofecdec: Kill an unused variable.
Andre Noll [Mon, 11 Jul 2011 21:37:52 +0000 (23:37 +0200)]
fecdec: Kill an unused variable.

The variable "p" is set, but the assigned value is never used.

9 years agoaudiod: Use non-blocking writes for stat clients.
Andre Noll [Sun, 12 Jun 2011 11:58:49 +0000 (13:58 +0200)]
audiod: Use non-blocking writes for stat clients.

This allows to kill the call to write_ok() which involves
a select system call.

9 years agonet.c: Use proper socket type for __get_sock_name().
Andre Noll [Fri, 10 Jun 2011 14:03:30 +0000 (16:03 +0200)]
net.c: Use proper socket type for __get_sock_name().

This patch gets rid of

net.c:652:33: warning: incompatible pointer types passing 'int (int, __SOCKADDR_ARG, socklen_t *restrict)', expected 'int (*)(int, struct sockaddr *, socklen_t *)' [-pedantic]
        return __get_sock_name(sockfd, getsockname);

when compiling with clang.

9 years agoAvoid warning when compiling with clang.
Andre Noll [Fri, 10 Jun 2011 13:35:01 +0000 (15:35 +0200)]
Avoid warning when compiling with clang.

Apparently clang does not recognize the

#pragma GCC visibility push(default)

lines in osl.h and complains for each file which includes this
header. Compliling without -Wno-unknown-pragmas fixes this.

9 years agoWork around some clang warnings.
Andre Noll [Thu, 9 Jun 2011 15:52:13 +0000 (17:52 +0200)]
Work around some clang warnings.

This fixes a bunch of warnings of the form

command.c:126:2: warning: expression result unused [-Wunused-value]
WRITE_STATUS_ITEM(&b, SI_MTIME, "%s\n", mtime);

when compiling with clang. This warning is bogus, because the underlying call
to para_printf() can only return failure if the max_size_handler fails, but
this handler is never called here because the size of this para_buffer is

Casting to void makes the warning go away.

9 years agoMakefile: Place -Wno-sign-compare _after_ -Wall.
Andre Noll [Tue, 17 May 2011 11:55:27 +0000 (13:55 +0200)]
Makefile: Place -Wno-sign-compare _after_ -Wall.

Without this, clang still complains about comparisons between
signed and unsigned variables which produces lots of noise.

9 years agoMerge branch 't/alsa_drain_fix'
Andre Noll [Thu, 23 Jun 2011 17:13:40 +0000 (19:13 +0200)]
Merge branch 't/alsa_drain_fix'

9 years agoMerge branch 't/hup_fix'
Andre Noll [Thu, 23 Jun 2011 17:13:40 +0000 (19:13 +0200)]
Merge branch 't/hup_fix'

9 years agoClear score table on mood reload.
Andre Noll [Sun, 5 Jun 2011 17:14:37 +0000 (19:14 +0200)]
Clear score table on mood reload.

Whenever a blob is added, the mood event handler is called
which may reload the current mood in order to react to the
change being made. However, we missed to clear the score table
first. This is necessary to to re-insert all admissible files.
Currently this fails with

afs_event: table moods, event 8: key already exists in rbtree

9 years agoMerge branch 't/audiod_regex'
Andre Noll [Mon, 13 Jun 2011 12:16:17 +0000 (14:16 +0200)]
Merge branch 't/audiod_regex'

9 years agoMerge branch 't/net_cleanups'
Andre Noll [Wed, 8 Jun 2011 17:44:56 +0000 (19:44 +0200)]
Merge branch 't/net_cleanups'

9 years agoalsa: Avoid busy loop at end of file.
Andre Noll [Mon, 6 Jun 2011 06:24:08 +0000 (08:24 +0200)]
alsa: Avoid busy loop at end of file.

During the drain period at the end of input the status of the alsa
buffer tree node is negative, yet we should not request a minimal
scheduler delay until the end of this period.

9 years agoaft: Do not invalidate status items when closing the audio file table.
Andre Noll [Sat, 4 Jun 2011 11:38:02 +0000 (13:38 +0200)]
aft: Do not invalidate status items when closing the audio file table.

Currently aft_close() frees the global variables status_items and
parser_friendly_status_items which are used for the stat comand of
para_server. This function is called on exit and when para_server
receives SIGHUP, the latter may happen while streaming. In this case
clients which connect after the SIGHUP do not see any aft status
items until the audio file changes.

Fix this flaw simply by not freeing the status item buffers until
they are recomputed anyway.

9 years agoaudiod: Document new regular expression syntax.
Andre Noll [Tue, 19 Apr 2011 23:28:10 +0000 (01:28 +0200)]
audiod: Document new regular expression syntax.

This changes the man page and the manual. The
usage of regular expressions for receiver, filter
and writers are explained and some examples are

9 years agoaudiod: Simplify parse_receiver_args().
Andre Noll [Tue, 19 Apr 2011 19:49:42 +0000 (21:49 +0200)]
audiod: Simplify parse_receiver_args().

Call parse_stream_command() rather than duplicating the logic.

9 years agoaudiod: Allow regular expressions in filter config.
Andre Noll [Tue, 19 Apr 2011 19:34:24 +0000 (21:34 +0200)]
audiod: Allow regular expressions in filter config.

9 years agoaudiod: Allow regular expressions in writer config.
Andre Noll [Tue, 19 Apr 2011 18:58:11 +0000 (20:58 +0200)]
audiod: Allow regular expressions in writer config.

9 years agoaudiod: Allow regular expressions in receiver config.
Andre Noll [Tue, 19 Apr 2011 16:18:45 +0000 (18:18 +0200)]
audiod: Allow regular expressions in receiver config.

The audio format substring of the reciever arg can now be a regular
expression rather than only the name of an audio format. This way
one can easily choose the same receiver for all audio formats by
saying e.g.

receiver ".:udp"

This works because the regex "." matches all audio formats.

9 years agoAdd missing alsa_write.ggo to .gitignore.
Andre Noll [Fri, 3 Jun 2011 06:04:11 +0000 (08:04 +0200)]
Add missing alsa_write.ggo to .gitignore.

This file is generated.

9 years agonew codename, reset version to git
Andre Noll [Wed, 1 Jun 2011 14:35:09 +0000 (16:35 +0200)]
new codename, reset version to git

9 years agothe paraslash-0.4.7 release tarball
Andre Noll [Wed, 1 Jun 2011 14:30:30 +0000 (16:30 +0200)]
the paraslash-0.4.7 release tarball

9 years agoparaslash 0.4.7 v0.4.7
Andre Noll [Wed, 1 Jun 2011 14:27:26 +0000 (16:27 +0200)]
paraslash 0.4.7

9 years Add ao_write.ggo to ggos.
Andre Noll [Wed, 1 Jun 2011 14:19:26 +0000 (16:19 +0200)] Add ao_write.ggo to ggos.

Without this, compiling the tarball fails with

make: *** No rule to make target `objects/ao_write.cmdline.o', needed by `para_write'.  Stop.

9 years agoogg_get_file_info(): Fix off-by-one.
Andre Noll [Sun, 29 May 2011 11:53:32 +0000 (13:53 +0200)]
ogg_get_file_info(): Fix off-by-one.

The timing information encoded in the chunk table was not always
sufficient to guarantee no buffer underruns since vorbis frames
are frequently spread over two (or more) ogg pages. This should
fix it.

9 years agoalsa: Simplify pre_select().
Andre Noll [Sat, 28 May 2011 11:32:42 +0000 (13:32 +0200)]
alsa: Simplify pre_select().

No need to open-code sched_request_timeout_ms().

9 years agoDo not include net.h if it is not needed.
Andre Noll [Fri, 22 Apr 2011 22:03:35 +0000 (00:03 +0200)]
Do not include net.h if it is not needed.

9 years agonet.c: Combine host_and_port() and __get_sock_name().
Andre Noll [Fri, 22 Apr 2011 02:21:48 +0000 (04:21 +0200)]
net.c: Combine host_and_port() and __get_sock_name().

host_and_port() is only called by __get_sock_name().
Both functions are short enough, and merging these
two functions has the additional benefit that we can
always return the same static buffer.

Compiling with -Wwrite-strings previously caused a
warning due to returning either a string literal, or
the static buffer. We now always print into that buffer
and return it.

This also improves the error message which is returned
in the static buffer in case of failures: Previously we
returned "(don't know)" if getname() failed and "(unknown)"
if getnameinfo() failed. This turns it into "(unknown)" in
the former case and "(lookup error)" otherwise.

9 years agoConstify flowop functions.
Andre Noll [Fri, 22 Apr 2011 02:07:35 +0000 (04:07 +0200)]
Constify flowop functions.

This trivial patch fixes some "discards qualifiers" gcc
warnings when compiling with -Wwrite-strings.

9 years agoMerge branch 't/decl_after_statement'
Andre Noll [Sun, 22 May 2011 13:22:42 +0000 (15:22 +0200)]
Merge branch 't/decl_after_statement'

9 years agodoxify version.h and git-version.h.
Andre Noll [Sun, 22 May 2011 13:22:14 +0000 (15:22 +0200)]
doxify version.h and git-version.h.

9 years agoMove statements after declarations.
Andre Noll [Fri, 22 Apr 2011 14:41:39 +0000 (16:41 +0200)]
Move statements after declarations.

This gets rid of gcc warnings of the form

warning: ISO C90 forbids mixed declarations and code

when compiled with -Wdeclaration-after-statement.

9 years agodoxygen: Add some missing documentation.
Andre Noll [Fri, 22 Apr 2011 16:03:28 +0000 (18:03 +0200)]
doxygen: Add some missing documentation.

9 years agodoxygen: Exclude *.command_list.[ch].
Andre Noll [Fri, 22 Apr 2011 16:01:56 +0000 (18:01 +0200)]
doxygen: Exclude *.command_list.[ch].

These files are auto-generated and the documentation is not very
helpful, so do not generate doxygen pages for these.

9 years agoMerge branch 't/ssh_keys'
Andre Noll [Sun, 15 May 2011 07:39:51 +0000 (09:39 +0200)]
Merge branch 't/ssh_keys'

9 years agoMerge branch 't/const'
Andre Noll [Sun, 15 May 2011 07:38:04 +0000 (09:38 +0200)]
Merge branch 't/const'

9 years agolibao: Avoid segfault on com_cycle.
Andre Noll [Thu, 3 Feb 2011 16:15:27 +0000 (17:15 +0100)]
libao: Avoid segfault on com_cycle.

Executing the cycle command while the ao writer is active can lead to
a segmentation fault because kill_all_decoders() removes the buffer
tree node of the ao writer but leaves its child node alive.

This patch changes kill_all_decoders() to kill the receiver node only
while leaving all other nodes alone, removing the assumption that
the set of filter nodes and writer nodes are the only nodes in the
buffer tree. This assumption used to be true but became false with
the merge of the ao writer which has two buffer tree nodes.

It is enough to kill only the receiver node as all other nodes will
eventually notice that their parent node no longer exists and exit
shortly thereafter.

9 years agoMerge branch 't/libao'
Andre Noll [Thu, 5 May 2011 13:50:49 +0000 (15:50 +0200)]
Merge branch 't/libao'

9 years agomanual: Fix two typos.
Andre Noll [Tue, 26 Apr 2011 22:53:42 +0000 (00:53 +0200)]
manual: Fix two typos.

9 years agomanual: Change instructions for creating RSA keys.
Andre Noll [Thu, 3 Mar 2011 08:31:20 +0000 (09:31 +0100)]
manual: Change instructions for creating RSA keys.

Decribe how to create an rsa key with ssh-keygen instead of
"openssl genrsa".

9 years agoclient: Also try to load the private rsa-ssh key.
Andre Noll [Thu, 25 Nov 2010 07:56:34 +0000 (08:56 +0100)]
client: Also try to load the private rsa-ssh key.

If no key file was given and the default key file ~/.paraslash/key.<user> does
not exist, try ~/.ssh/id_rsa.

9 years agoAdd support for ssh-rsa keys.
Andre Noll [Thu, 25 Nov 2010 07:33:20 +0000 (08:33 +0100)]
Add support for ssh-rsa keys.

This allows to use standard ssh keys (that is, keys generated with
ssh-keygen) for the challenge/response authentication method of
paraslash. Only RSA keys without password protection are supported
at the moment.

Since we want that both openssl and ssh keys just work, we introduce
the helper function is_ssh_rsa_key(). It looks at the first few bytes
of the key to decide which type of public key we have. For openssl
keys, we just call openssl's EVP_PKEY_get1_RSA() and be done. Private
keys generated by ssh-keygen do not differ from keys generated by
"openssl rsa" and need no special treatment either.

However, public ssh rsa keys are stored differently, as an uuencoded
byte stream. So this patch adds functions that decode a given buffer
via base64 or uudecode. The two rsa public parameters (modulus and
exponent) are then read from the decoded buffer using BN_bin2bn().

9 years agofd: Allow passing NULL to para_munmap().
Andre Noll [Tue, 26 Apr 2011 14:33:44 +0000 (16:33 +0200)]
fd: Allow passing NULL to para_munmap().

This patch makes para_munmap succeed with return value 0 if the passed
"start" pointer is NULL. This allows to simplify the code in the
callers a bit, similar to free(NULL).

9 years agoMark a couple of functions as const.
Andre Noll [Tue, 29 Mar 2011 20:03:54 +0000 (22:03 +0200)]
Mark a couple of functions as const.

Probably does not matter much..

9 years agoMerge branch 't/crypt_cleanups'
Andre Noll [Sat, 23 Apr 2011 13:54:59 +0000 (15:54 +0200)]
Merge branch 't/crypt_cleanups'


9 years agoMake some variables static.
Andre Noll [Thu, 21 Apr 2011 22:05:43 +0000 (00:05 +0200)]
Make some variables static.

Found by sparse.

9 years agoMerge branch 't/autogen'
Andre Noll [Thu, 21 Apr 2011 20:56:56 +0000 (22:56 +0200)]
Merge branch 't/autogen'

9 years agoKILL E_AO_WRITE.
Andre Noll [Thu, 31 Mar 2011 09:27:49 +0000 (11:27 +0200)]

We have E_WRITE_COMMON_EOF, and use of this code is preferred because
para_write treats it as a non-fatal error and exits successfully if
the writer task removed its btr node due to E_WRITER_COMMON_EOF while
it exits non-zero in case of other errors.

9 years agoImplement support for libao via the new ao writer.
Andre Noll [Sat, 5 Mar 2011 11:36:34 +0000 (12:36 +0100)]
Implement support for libao via the new ao writer.

This adds support for another writer to paraslash. The new ao writer
allows to play an audio stream via one of libao's output plugins.

Two new configure options are provided and the documentation is
updated accordingly.

9 years agomanual: Mention that also DCCP streams are FEC-encoded.
Andre Noll [Tue, 19 Apr 2011 23:30:05 +0000 (01:30 +0200)]
manual: Mention that also DCCP streams are FEC-encoded.

9 years agoFix typo in audiod man page.
Andre Noll [Tue, 19 Apr 2011 23:29:11 +0000 (01:29 +0200)]
Fix typo in audiod man page.

9 years agoNEWS update.
Andre Noll [Sun, 10 Apr 2011 18:07:33 +0000 (20:07 +0200)]
NEWS update.

9 years agoMerge branch 't/gvf'
Andre Noll [Fri, 8 Apr 2011 09:12:46 +0000 (11:12 +0200)]
Merge branch 't/gvf'

9 years Detect number of processors and run parallel make.
Andre Noll [Tue, 15 Feb 2011 07:28:43 +0000 (08:28 +0100)] Detect number of processors and run parallel make.

On multi-core machines a parallel make is often much faster than a
sequential make. This patch teaches to detect the number
of processing units available on the build system. It first tries to
execute the nproc utility (part of the coreutils package) and falls
back to /proc/cpuinfo if nproc was unavailable.

If both methods don't work, which is usually the case on non-Linux
systems where coreutils are not installed and /proc/cpuinfo does not
exist, we use the safe default of n=1.

9 years agoNEWS update.
Andre Noll [Sun, 3 Apr 2011 15:34:29 +0000 (17:34 +0200)]
NEWS update.

9 years agoMerge branch 't/configure_improvements'
Andre Noll [Sun, 3 Apr 2011 15:27:32 +0000 (17:27 +0200)]
Merge branch 't/configure_improvements'

9 years agonew codename, reset version to git
Andre Noll [Thu, 31 Mar 2011 11:32:01 +0000 (13:32 +0200)]
new codename, reset version to git

9 years agothe paraslash-0.4.6 release tarball
Andre Noll [Thu, 31 Mar 2011 11:28:48 +0000 (13:28 +0200)]
the paraslash-0.4.6 release tarball

9 years agoparaslash 0.4.6 v0.4.6
Andre Noll [Thu, 31 Mar 2011 11:25:31 +0000 (13:25 +0200)]
paraslash 0.4.6

9 years agoRemove two unused error codes.
Andre Noll [Thu, 31 Mar 2011 09:36:49 +0000 (11:36 +0200)]
Remove two unused error codes.

9 years agoMerge remote-tracking branch 'fml/master'
Andre Noll [Tue, 29 Mar 2011 22:27:57 +0000 (00:27 +0200)]
Merge remote-tracking branch 'fml/master'

9 years agoFix grab client resume.
Andre Noll [Tue, 29 Mar 2011 22:10:29 +0000 (00:10 +0200)]
Fix grab client resume.

An active grab client is moved to the inactive list if para_server
stops playing and the grab client is not operating in one-shot mode. In
this state, despite its buffer tree node pointer being NULL, the task
associated with the grab client remains active. This causes para_server
to abort due to the assertion btrn != NULL in btr_node_status().

Fix this bug by always unregistering the task, one-shot mode or not,
and re-registering it later, at the same time the new buffer tree
node for the grab client is allocated.

9 years Get rid of a bashism.
Andre Noll [Tue, 29 Mar 2011 14:17:51 +0000 (16:17 +0200)] Get rid of a bashism.

This avoids some rather bizarre error messages if /bin/sh is dash.

9 years agoGet rid of some duplicate const qualifiers.
Andre Noll [Mon, 28 Mar 2011 22:04:54 +0000 (00:04 +0200)]
Get rid of some duplicate const qualifiers.

Fix fixes duplicate `const' warnings on gcc-3.3.3.

9 years agoDon't compile files generated by gengetopt with -Wall.
Andre Noll [Mon, 28 Mar 2011 22:00:23 +0000 (00:00 +0200)]
Don't compile files generated by gengetopt with -Wall.

gcc-4.6.0 spits out lots of warningns of the form

cmdline/recv.cmdline.c:439:9: warning: variable 'stop_char' set but not used [-Wunused-but-set-variable]

Silence these warnings by moving -Wall to the set of debug flags
which are not used for compiling *.cmdline.c files.

For some versions of gcc, including gcc-3.3.3 which is still supported,
the -Wformat-security and -Wmissing-format-attribute options depend on
-Wformat, which is turned on by -Wall, so we have to move these options
also to the DEBUG_CPPFLAGS.

9 years agoDocument RC4_ALIGN.
Andre Noll [Mon, 14 Mar 2011 16:25:14 +0000 (17:25 +0100)]
Document RC4_ALIGN.

It's not obvious what is going on there, so add explain why we are doing
this ugly dance.

9 years agoconfigure: Use AC_ARG_WITH also for openssl options.
Andre Noll [Tue, 1 Mar 2011 22:12:46 +0000 (23:12 +0100)]
configure: Use AC_ARG_WITH also for openssl options.

Currently the check for openssl is performed by CHECK_SSL() in This function searches the given directory for the
openssl-header but does not check the existence and usability of
the openssl libraries. The argument of --enable-ssldir, if given,
is tried first, and each member of a hard-coded list of directories
is searched next.

This patch replaces CHECK_SSL() by checks similar to those for
other headers and libraries. In particular, we now also check
for the openssl libraries, and the configure options are now
called --with-openssl-headers and --with-openssl-libs rather than

9 years agoUse SSL_CPPFLAGS only for compiling crypt.c
Andre Noll [Mon, 28 Feb 2011 23:44:05 +0000 (00:44 +0100)]
Use SSL_CPPFLAGS only for compiling crypt.c

The previous cleanups moved everything which depends on openssl to
crypt.c. This is now the only file which includes openssl headers,
so there is no need to compile all objects with the ssl cpp flags.
In fact this could break things for setups on which the include dir
for openss contains other unwanted header files.

9 years agoRemove some unnecessary includes.
Andre Noll [Mon, 28 Feb 2011 23:40:37 +0000 (00:40 +0100)]
Remove some unnecessary includes.

This gets rid of quite some inclusions of <dirent.h> which are not needed
as most .c files do not deal with directories at all.

afs.c doe not mmap anything and needs nothing from sys/time.h so remove
these includes as well.

9 years agoMove sha1.[ch] to crypt.[ch] and make crypto API independent of sha1.
Andre Noll [Mon, 28 Feb 2011 23:28:27 +0000 (00:28 +0100)]
Move sha1.[ch] to crypt.[ch] and make crypto API independent of sha1.

This patch moves all public functions related to sha1 to crypt.c. This
allows to remove sha1.c, sha1.h and hash.h. It also removes the
HASH_TYPE define and avoids the word "sha1" in the public API and
its callers. The former sha1_hash() is now called hash_function().

9 years agoRemove rc4.h.
Andre Noll [Mon, 28 Feb 2011 22:53:43 +0000 (23:53 +0100)]
Remove rc4.h.

It's kind of silly to have an extra file which contains only a singe
preprocessor define. Move that define to crypt.h and kill rc4.h.

9 years agorename RC4_KEY_LEN to SESSION_KEY_LEN.
Andre Noll [Mon, 28 Feb 2011 22:49:06 +0000 (23:49 +0100)]

The users of the crypto API should not need to care about which stream
cipher is in use. This trivial patch only renames the name of the
constant value and updates the documentation.

9 years agoRename struct rc4_context and stream cipher send/receive functions.
Andre Noll [Mon, 28 Feb 2011 22:43:21 +0000 (23:43 +0100)]
Rename struct rc4_context and stream cipher send/receive functions.

This only changes the name structures and functions. Unfortunately,
the patch is rather large since it requires to fixup all callers
of the affected functions. However, each change is either a simple
rename or a trivial documentation adjustment.

9 years agoRemove autogenerated doxygen comments for commands.
Andre Noll [Sat, 12 Mar 2011 22:58:33 +0000 (23:58 +0100)]
Remove autogenerated doxygen comments for commands.

The generated comments become invalid once rc4.h is removed, which
happens in a subsequent patch.

9 years agoReplace direct use of RC4 by stream cipher abstraction.
Andre Noll [Mon, 28 Feb 2011 21:54:08 +0000 (22:54 +0100)]
Replace direct use of RC4 by stream cipher abstraction.

This introduces the new struct stream_cipher in crypt.h as well as
two functions stream_cipher_new() and stream_cipher_free() which
initialize a new stream cipher structure and deallocate such a
structure, respectively.

The users of RC4 are changed to call the new abstract functions,
so they become independent from openssl. Consequently the affected
files need no include openssl/rc4.h any more.

9 years agoReplace RSA by an abstract asymmetric key structure.
Andre Noll [Mon, 28 Feb 2011 21:07:44 +0000 (22:07 +0100)]
Replace RSA by an abstract asymmetric key structure.

This declares the new structure asymmetric_key in crypt.h but does not
define it. Instead, it is defined in crypt.c so that only the functions
in this file can access the members of the structure directly.

Functions which previously took an (openssl-specific) RSA pointer
are changed to receive a pointer to struct asymmetric_key instead,
removing the requirement to include an openssl header file before
crypt.h can be included.

9 years agonet.c: Remove unnecessary crypto includes.
Andre Noll [Mon, 28 Feb 2011 19:26:42 +0000 (20:26 +0100)]
net.c: Remove unnecessary crypto includes.

The functions in this file are ignorant of the crypto layer.

9 years agoNEWS update.
Andre Noll [Sat, 26 Mar 2011 12:54:32 +0000 (13:54 +0100)]
NEWS update.

9 years agoMerge branch 't/sched_improvements'
Andre Noll [Sat, 26 Mar 2011 12:50:34 +0000 (13:50 +0100)]
Merge branch 't/sched_improvements'

9 years agoMerge remote-tracking branch 'fml/master'
Andre Noll [Fri, 25 Mar 2011 08:52:41 +0000 (09:52 +0100)]
Merge remote-tracking branch 'fml/master'

9 years agoMerge remote branch 'boock/master'
Andre Noll [Thu, 24 Mar 2011 12:20:13 +0000 (13:20 +0100)]
Merge remote branch 'boock/master'

9 years agoudp_send: Silence gcc warning.
Andre Noll [Thu, 24 Mar 2011 12:05:49 +0000 (13:05 +0100)]
udp_send: Silence gcc warning.

Ubuntu Lucid's gcc-4.3.3 emits the following warning about not checking
the return value of write() even if the result is casted to void.

udp_send.c: In function ‘udp_close_target’:
udp_send.c:65: warning: ignoring return value of ‘write’, declared with attribute warn_unused_result

The usual approach to store the return value in a dummy variable is
not optimal because the upcoming gcc-4.6 will warn that the variable
is set but otherwise unused.

Likely there are more places in the paraslash code which have the same
problem, so this patch introduce the do_nothing macro in para.h which,
creatively enough, does nothing. The new macro is employed like

if (write(...))

This gets rid of the warning on Lucid and does not give new warning
on gcc-4.6.

9 years agoNEWS update.
Andre Noll [Sun, 20 Mar 2011 11:30:13 +0000 (12:30 +0100)]
NEWS update.

9 years agoMerge branch 't/testsuite'
Andre Noll [Sun, 20 Mar 2011 11:20:29 +0000 (12:20 +0100)]
Merge branch 't/testsuite'

9 years agostdin.h: Add missing doxygen comment for stdin_task->btrp.
Andre Noll [Fri, 18 Mar 2011 08:09:05 +0000 (09:09 +0100)]
stdin.h: Add missing doxygen comment for stdin_task->btrp.

9 years agoopen_and_update_audio_file(): Always print file name on errors.
Andre Noll [Fri, 18 Mar 2011 08:08:07 +0000 (09:08 +0100)]
open_and_update_audio_file(): Always print file name on errors.

Otherwise, if running with logleve warning or error, we only see
the error message but not which file could not be opened.

9 years agoSilence two Doxygen warnings.
Andre Noll [Wed, 16 Mar 2011 20:30:26 +0000 (21:30 +0100)]
Silence two Doxygen warnings.

Doxygen does not like comments in <brackets>. Use upper case instead.
This gets rid of annoying warnings of the form

/home/work/maan/scm/paraslash/audiod_command_list.h:13: warning: Unsupported xml/html tag <parent> found
/home/work/maan/scm/paraslash/audiod_command_list.h:13: warning: Unsupported xml/html tag <name> found

9 years agoMerge remote-tracking branch 'fml/master'
Andre Noll [Wed, 16 Mar 2011 19:28:29 +0000 (20:28 +0100)]
Merge remote-tracking branch 'fml/master'

9 years agoaudiod: Remove unused num_filters().
Andre Noll [Wed, 16 Mar 2011 19:26:27 +0000 (20:26 +0100)]
audiod: Remove unused num_filters().

This function has no callers. Also, get_audio_format_num() is
only called from functions in audiod.c, so make this function

9 years agofade: Quiesce two gcc warnings.
Andre Noll [Wed, 16 Mar 2011 16:56:43 +0000 (17:56 +0100)]
fade: Quiesce two gcc warnings.

Ubuntu Lucid's gcc 4.4.3 does not like it if not each possible value
of an enumeration is handled in the body of a switch statement.

Since gengetopt for some reason always creates an additional xxx_NULL
value in options of type enum, this more or less means we have to
introduce default: cases to avoid warnings of the form

fade.c:113: warning: enumeration value ‘mixer_channel__NULL’ not handled in switch
fade.c:346: warning: enumeration value ‘mode__NULL’ not handled in switch

Fortunately, these are the only two warnings, so add default: cases
to make gcc happy.

9 years agosched: Only call post_select() if task is not in error state.
Andre Noll [Tue, 15 Mar 2011 21:05:24 +0000 (22:05 +0100)]
sched: Only call post_select() if task is not in error state.

Fixes a bug introduced in 86611501 which caused para_audiod to segfault
if the connection to para_server terminated unexpectedly.

para_audiod relies (in kill_btrn()) on a task's ->post_select method
never being called if t->error is negative.

9 years agoserver: Include git version in output of com_si().
Andre Noll [Tue, 15 Mar 2011 20:07:42 +0000 (21:07 +0100)]
server: Include git version in output of com_si().

It is often useful to be able to find out which version of para_server
is currently running.

9 years agopara_write: Return proper error code.
Andre Noll [Sun, 20 Feb 2011 18:41:09 +0000 (19:41 +0100)]
para_write: Return proper error code.

Currently the exit code of para_write is always the value returned
by schedule().  This is zero unless the call to select() fails,
usually does not happen, so errors resulting from the writers do not
cause para_write to exit with a non-zero exit code.

In particular, para_write exits successfully if the underlying
writer(s) nodes could not open their sound device or unregistered
their task due to other errors.

Fix this by investigating each writer node's t->error value after
schedule() has returned. If this value does not correspond to an end
of file condition, the strerror text of this error code is written
to stderr, and para_write exits non-zero.

9 years agoaudiod: Kill com_kill().
Andre Noll [Sun, 20 Feb 2011 18:06:34 +0000 (19:06 +0100)]
audiod: Kill com_kill().

This never worked well because a task which has been killed by
kill_task() has no chance to clean up. Also a stale buffer tree node
remains if the task had an associated buffer tree node.

9 years agoUse curses_cppflags only for building gui.o.
Andre Noll [Mon, 28 Feb 2011 10:00:58 +0000 (11:00 +0100)]
Use curses_cppflags only for building gui.o.

It's only required there, and having the -I options for the curses
headers everywhere could be problematic for building other objects.

9 years agogui: Replace NCURSES_SIZE_T by ordinary size_t.
Andre Noll [Fri, 25 Feb 2011 16:19:08 +0000 (17:19 +0100)]
gui: Replace NCURSES_SIZE_T by ordinary size_t.

With the old type, gui.c does not compile on curses implementations
other than ncurses.