X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=compress.c;h=22dcfd333c145a4a77e49ba3826c43b61828241b;hp=c30c998a33eb3354968f6801fe4890aea43e3b19;hb=b779fcfc62bca2e728348c70bab3c50df3fe63b8;hpb=6d213d3638eafeab4785e64decc7f4826a964c32 diff --git a/compress.c b/compress.c index c30c998a..22dcfd33 100644 --- a/compress.c +++ b/compress.c @@ -16,6 +16,7 @@ #include "sched.h" #include "filter.h" #include "string.h" +#include "error.h" /** The size of the output data buffer. */ #define COMPRESS_CHUNK_SIZE 40960 @@ -83,13 +84,21 @@ static void close_compress(struct filter_node *fn) free(fn->buf); } -static void *compress_parse_config(int argc, char **argv) +/** TODO: Add sanity checks */ +static int compress_parse_config(int argc, char **argv, void **config) { - struct compress_filter_args_info *ret = para_calloc(sizeof(struct compress_filter_args_info)); - if (!compress_cmdline_parser(argc, argv, ret)) - return ret; - free(ret); - return NULL; + int ret; + struct compress_filter_args_info *compress_conf + = para_calloc(sizeof(*compress_conf)); + + ret = -E_COMPRESS_SYNTAX; + if (compress_cmdline_parser(argc, argv, compress_conf)) + goto err; + *config = compress_conf; + return 1; +err: + free(compress_conf); + return ret; } static void open_compress(struct filter_node *fn)