- The obscure error messages on mmap() failures have been
replaced by meaningful messages. This affects mainly
para_afh.
+ - para_audioc: Cleanups and memory leak fixes.
+ - Test 0004-server no longer fails if para_server is not
+ being built.
-------------------------------------
0.4.9 (2011-12-06) "hybrid causality"
static char *configfile_exists(void)
{
- static char *config_file;
+ char *config_file;
struct stat statbuf;
+ char *home = para_homedir();
- if (!config_file) {
- char *home = para_homedir();
- config_file = make_message("%s/.paraslash/audioc.conf", home);
- free(home);
- }
+ config_file = make_message("%s/.paraslash/audioc.conf", home);
+ free(home);
if (!stat(config_file, &statbuf))
return config_file;
+ free(config_file);
return NULL;
}
* \param argc Usual argument count.
* \param argv Usual argument vector.
*
- * It creates a temporary local socket in order to communicate with para_audiod.
- * Authentication consists in sending a ucred buffer that contains the user id.
+ * It connects to the "well-known" local socket to communicate with
+ * para_audiod. Authentication is performed by sending a ucred buffer
+ * containing the user id to the local socket.
*
- * Any output received through the local socket is sent to stdout.
+ * Any data received from the socket is written to stdout.
*
* \return EXIT_SUCCESS or EXIT_FAILURE.
*
int main(int argc, char *argv[])
{
int ret = -E_AUDIOC_SYNTAX, fd;
- char *cf, *buf = NULL, *args;
+ char *cf, *buf = NULL, *args = NULL;
size_t bufsize;
if (audioc_cmdline_parser(argc, argv, &conf))
.check_required = 0,
.check_ambiguity = 0
};
- if (audioc_cmdline_parser_config_file(cf, &conf, ¶ms)) {
+ ret = audioc_cmdline_parser_config_file(cf, &conf, ¶ms);
+ free(cf);
+ if (ret) {
fprintf(stderr, "parse error in config file\n");
exit(EXIT_FAILURE);
}
ret = write_all(STDOUT_FILENO, buf, n);
} while (ret >= 0);
out:
+ free(buf);
+ free(args);
if (ret < 0)
PARA_ERROR_LOG("%s\n", para_strerror(-ret));
return ret < 0? EXIT_FAILURE : EXIT_SUCCESS;
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)
+AC_CHECK_LIB([FLAC], [FLAC__stream_decoder_init_file], [], have_flac=no, -logg -lm)
if test "$have_flac" = "yes"; then
AC_DEFINE(HAVE_FLAC, 1, define to 1 if you want to build the flacdec filter)
all_errlist_objs="$all_errlist_objs flacdec_filter flac_afh"
* function calls exit() if insufficient memory is available, while vasprintf()
* returns -1 in this case.
*
- * \return Number of bytes written, not including the terminating '\0'.
+ * \return Number of bytes written, not including the terminating \p NULL
+ * character.
*
* \sa printf(3), vsnprintf(3), va_start(3), vasprintf(3), \ref xasprintf().
*/
files. Also, it's fine to use para_server on a box without sound card.
Next, install the paraslash package on all machines, you'd like this
-software to run on:
+software to run on. If you compile from a released tarball, execute
(./configure && make) > /dev/null
+When compiling from git or from snapshots downloaded via gitweb,
+the above command will not work because the configure script is not
+included in the git repository. In this case the following command
+should be used instead:
+
+ ./autogen.sh
+
+This runs autoconf to generate the configure script, then runs it as
+above. Therefore you'll need autoconf for this to work.
+
There should be no errors but probably some warnings about missing
packages which usually implies that not all audio formats will be
supported. If headers or libs are installed at unusual locations you