X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=compress.c;h=d6f7520d6376dab4ccc9a4a580aab40d90f68c03;hp=c30c998a33eb3354968f6801fe4890aea43e3b19;hb=89a0e510df07bc7210ca9e73381763fdd183df75;hpb=2b8ac364a9ad11f67bfc1cdd01c113bde30baaf7 diff --git a/compress.c b/compress.c index c30c998a..d6f7520d 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) @@ -109,7 +118,7 @@ static void open_compress(struct filter_node *fn) * * \param f Pointer to the struct to initialize. */ -void compress_init(struct filter *f) +void compress_filter_init(struct filter *f) { f->open = open_compress; f->close = close_compress;