X-Git-Url: http://git.tuebingen.mpg.de/?a=blobdiff_plain;ds=sidebyside;f=filter.c;h=68c97b45671f64edae5e1b2ef94ed4ddc59fa81e;hb=bcd7e2c158de891fc1aea06c5783760ab94749e8;hp=1ca416484e2f9bf9c9aaad649fd1d72fa9c88309;hpb=471684761a2039bbc89aa1e3c33c62de6bef86cf;p=paraslash.git diff --git a/filter.c b/filter.c index 1ca41648..68c97b45 100644 --- a/filter.c +++ b/filter.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2007 Andre Noll + * Copyright (C) 2005-2008 Andre Noll * * Licensed under the GPL v2. For licencing details see COPYING. */ @@ -39,12 +39,6 @@ static struct filter_args_info conf; INIT_STDERR_LOGGING(conf.loglevel_arg); -static void filter_event_handler(struct task *t) -{ - PARA_NOTICE_LOG("%s\n", PARA_STRERROR(-t->ret)); - unregister_task(t); -} - static void open_filters(void) { struct filter_node *fn; @@ -66,12 +60,10 @@ static int init_filter_chain(void) fc->inbuf = sit->buf; fc->in_loaded = &sit->loaded; - fc->input_eof = &sit->eof; - fc->eof = 0; - fc->output_eof = &sot->eof; - fc->task.private_data = fc; + fc->input_error = &sit->task.error; + fc->task.error = 0; + fc->output_error = &sot->task.error; fc->task.pre_select = filter_pre_select; - fc->task.event_handler = filter_event_handler; sprintf(fc->task.status, "filter chain"); for (i = 0; i < conf.filter_given; i++) { @@ -109,7 +101,13 @@ static int parse_config(int argc, char *argv[]) free(home); } if (!stat(cf, &statbuf)) { - if (filter_cmdline_parser_configfile(cf, &conf, 0, 0, 0)) + struct filter_cmdline_parser_params params = { + .override = 0, + .initialize = 0, + .check_required = 0, + .check_ambiguity = 0 + }; + if (filter_cmdline_parser_config_file(cf, &conf, ¶ms)) return -E_FILTER_SYNTAX; } if (!conf.list_filters_given) @@ -154,18 +152,18 @@ int main(int argc, char *argv[]) stdout_set_defaults(sot); sot->buf = fc->outbuf; sot->loaded = fc->out_loaded; - sot->input_eof = &fc->eof; + sot->input_error = &fc->task.error; register_task(&sit->task); register_task(&fc->task); register_task(&sot->task); s.default_timeout.tv_sec = 1; s.default_timeout.tv_usec = 0; - ret = sched(&s); + ret = schedule(&s); out: free(sit->buf); close_filters(fc); if (ret < 0) - PARA_EMERG_LOG("%s\n", PARA_STRERROR(-ret)); + PARA_EMERG_LOG("%s\n", para_strerror(-ret)); return ret < 0? EXIT_FAILURE : EXIT_SUCCESS; }