X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=recv.c;h=f8b5847cc436c164765b8f783894f4a3b3faee23;hp=e46fa1a3f50008faffb5c1f66038e53d54b48c44;hb=75feacbafa2a1fe258f85963205b8c28a976badc;hpb=74c88020bd325865fe26ed25ea8ad0ace0924136 diff --git a/recv.c b/recv.c index e46fa1a3..f8b5847c 100644 --- a/recv.c +++ b/recv.c @@ -43,8 +43,7 @@ __noreturn static void print_help_and_die(void) const char **p = d? recv_args_info_detailed_help : recv_args_info_help; - printf_or_die("%s\n\n", RECV_CMDLINE_PARSER_PACKAGE "-" - RECV_CMDLINE_PARSER_VERSION); + printf_or_die("%s\n\n", VERSION_SINGLE_LINE("recv")); printf_or_die("%s\n\n", recv_args_info_usage); for (; *p; p++) printf_or_die("%s\n", *p); @@ -52,17 +51,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 +70,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,16 +93,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; - rn.task.new_post_select = r->new_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)