}
r = &receivers[receiver_num];
rn.receiver = r;
- rn.btr_root = btr_new_node("receiver", NULL /* no parent */);
+ if (conf.buffer_tree_given)
+ rn.btrn = btr_new_node("receiver", NULL, NULL, NULL);
ret = r->open(&rn);
if (ret < 0)
goto out;
r_opened = 1;
+ if (conf.buffer_tree_given)
+ sot.btrn = btr_new_node("stdout", rn.btrn, NULL, NULL);
+
stdout_set_defaults(&sot);
sot.bufp = &rn.buf;
sot.loaded = &rn.loaded;
ret = schedule(&s);
out:
- if (r_opened) {
- btr_del_node(rn.btr_root);
+ if (r_opened)
r->close(&rn);
+ if (conf.buffer_tree_given) {
+ btr_free_node(rn.btrn);
+ btr_free_node(sot.btrn);
}
+ free(rn.conf);
if (r)
r->shutdown();
if (ret < 0)