X-Git-Url: http://git.tuebingen.mpg.de/?p=paraslash.git;a=blobdiff_plain;f=recv.c;h=35f6948c94971edf02a71a1a7be72fb4df7f7fc1;hp=cf178d207d2ca400a5613fdb610cd35d7258dbc1;hb=b9f9601828dd1a103ec9315bd430d39b458d2b80;hpb=2a8029478dfc65f0c935d864faf4aea9e3deb27d diff --git a/recv.c b/recv.c index cf178d20..35f6948c 100644 --- a/recv.c +++ b/recv.c @@ -1,5 +1,5 @@ /* - * Copyright (C) 2005-2006 Andre Noll + * Copyright (C) 2005-2007 Andre Noll * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by @@ -15,6 +15,9 @@ * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA. */ + +/** \file recv.c the stand-alone receiver */ + #include "para.h" #include "list.h" @@ -25,27 +28,17 @@ #include "error.h" #include "stdout.h" -struct gengetopt_args_info conf; +struct recv_args_info conf; INIT_RECV_ERRLISTS; -__printf_2_3 void para_log(int ll, const char* fmt,...) -{ - va_list argp; - - /* ignore log message if loglevel is not high enough */ - if (ll < conf.loglevel_arg) - return; - va_start(argp, fmt); - vfprintf(stderr, fmt, argp); - va_end(argp); -} +INIT_STDERR_LOGGING(conf.loglevel_arg); static void *parse_config(int argc, char *argv[], int *receiver_num) { int i; - if (cmdline_parser(argc, argv, &conf)) + if (recv_cmdline_parser(argc, argv, &conf)) return NULL; if (conf.list_receivers_given) { printf("available receivers: "); @@ -58,9 +51,11 @@ static void *parse_config(int argc, char *argv[], int *receiver_num) return check_receiver_arg(conf.receiver_arg, receiver_num); } -void rn_event_handler(struct task *t) +static void rn_event_handler(struct task *t) { + struct receiver_node *rn = t->private_data; PARA_NOTICE_LOG("%s\n", PARA_STRERROR(-t->ret)); + rn->eof = 1; unregister_task(t); } @@ -72,7 +67,6 @@ int main(int argc, char *argv[]) struct stdout_task sot; struct sched s; - init_sched(); s.default_timeout.tv_sec = 1; s.default_timeout.tv_usec = 0; @@ -102,11 +96,9 @@ int main(int argc, char *argv[]) rn.task.pre_select = r->pre_select; rn.task.post_select = r->post_select; rn.task.event_handler = rn_event_handler; - rn.task.flags = 0; sprintf(rn.task.status, "receiver node"); register_task(&rn.task); - ret = sched(&s); out: if (r_opened)