return check_receiver_arg(conf.receiver_arg, receiver_num);
}
-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->error = t->ret;
- unregister_task(t);
-}
-
/**
* the main function of para_recv
*
struct receiver *r = NULL;
struct receiver_node rn;
struct stdout_task sot;
- struct sched s;
+ static struct sched s;
s.default_timeout.tv_sec = 1;
s.default_timeout.tv_usec = 0;
+ memset(&sot, 0, sizeof(struct stdout_task));
memset(&rn, 0, sizeof(struct receiver_node));
for (ret = 0; receivers[ret].name; ret++)
receivers[ret].init(&receivers[ret]);
ret = -E_RECV_SYNTAX;
rn.conf = parse_config(argc, argv, &receiver_num);
if (!rn.conf) {
- PARA_EMERG_LOG("%s", "parse failed\n");
+ PARA_EMERG_LOG("parse failed\n");
goto out;
}
r = &receivers[receiver_num];
stdout_set_defaults(&sot);
sot.buf = rn.buf;
sot.loaded = &rn.loaded;
- sot.input_error = &rn.error;
+ sot.input_error = &rn.task.error;
register_task(&sot.task);
- rn.task.private_data = &rn;
rn.task.pre_select = r->pre_select;
rn.task.post_select = r->post_select;
- rn.task.event_handler = rn_event_handler;
sprintf(rn.task.status, "receiver node");
register_task(&rn.task);