X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=recv.c;h=bc727de0cb65a102c8f1861d75d31c713b748a19;hp=4458021c636b7163b97f92afe781206db96fed46;hb=b01605d7062e4d1f005d5aaaaed158d8efe06d79;hpb=9c00a79ed817c854ed10ee6bd1b908df8dc13a2f diff --git a/recv.c b/recv.c index 4458021c..bc727de0 100644 --- a/recv.c +++ b/recv.c @@ -52,17 +52,6 @@ __noreturn static void print_help_and_die(void) exit(0); } -static void *parse_config(int argc, char *argv[], int *receiver_num) -{ - if (recv_cmdline_parser(argc, argv, &conf)) - return NULL; - HANDLE_VERSION_FLAG("recv", conf); - if (conf.help_given || conf.detailed_help_given) - print_help_and_die(); - loglevel = get_loglevel_by_name(conf.loglevel_arg); - return check_receiver_arg(conf.receiver_arg, receiver_num); -} - /** * The main function of para_recv. * @@ -82,16 +71,18 @@ int main(int argc, char *argv[]) struct stdout_task sot; static struct sched s; - s.default_timeout.tv_sec = 1; - s.default_timeout.tv_usec = 0; + recv_cmdline_parser(argc, argv, &conf); + loglevel = get_loglevel_by_name(conf.loglevel_arg); + HANDLE_VERSION_FLAG("recv", conf); + recv_init(); + if (conf.help_given || conf.detailed_help_given) + print_help_and_die(); - memset(&sot, 0, sizeof(struct stdout_task)); memset(&rn, 0, sizeof(struct receiver_node)); - recv_init(); - ret = -E_RECV_SYNTAX; - rn.conf = parse_config(argc, argv, &receiver_num); + rn.conf = check_receiver_arg(conf.receiver_arg, &receiver_num); if (!rn.conf) { - PARA_EMERG_LOG("parse failed\n"); + PARA_EMERG_LOG("invalid receiver specifier\n"); + ret = -E_RECV_SYNTAX; goto out; } r = &receivers[receiver_num]; @@ -103,22 +94,19 @@ int main(int argc, char *argv[]) goto out; r_opened = 1; + memset(&sot, 0, sizeof(struct stdout_task)); sot.btrn = btr_new_node(&(struct btr_node_description) EMBRACE(.parent = rn.btrn, .name = "stdout")); stdout_set_defaults(&sot); register_task(&s, &sot.task); rn.task.pre_select = r->pre_select; - if (r->new_post_select) { - rn.task.new_post_select = r->new_post_select; - rn.task.post_select = NULL; - } else { - rn.task.new_post_select = NULL; - rn.task.post_select = r->post_select;; - } + rn.task.post_select = r->post_select; sprintf(rn.task.status, "%s", r->name); register_task(&s, &rn.task); + s.default_timeout.tv_sec = 1; + s.default_timeout.tv_usec = 0; ret = schedule(&s); out: if (r_opened)