-
- 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");
- goto out;
- }
- r = &receivers[receiver_num];
- rn.receiver = r;
- ret = r->open(&rn);
- if (ret < 0)
- goto out;
- r_opened = 1;
-
- sot.task.private_data = &sot;
- sot.task.pre_select = stdout_pre_select;
- sot.task.post_select = stdout_post_select;
- sot.task.event_handler = stdout_event_handler;
- sot.task.flags = 0;
- sprintf(sot.task.status, "stdout writer");
- sot.buf = rn.buf;
- sot.loaded = &rn.loaded;
- sot.eof = &rn.eof;
- 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;
- rn.task.flags = 0;
- sprintf(rn.task.status, "receiver node");
- register_task(&rn.task);
-
-
- ret = sched(&s);