t->error = 0;
pfwd->check_fd = 0;
- ret = btr_node_status(wn->btrn, wn->min_iqs);
- if (ret >= 0) {
+ ret = btr_node_status(wn->btrn, wn->min_iqs, BTR_NT_LEAF);
+ if (ret > 0) {
para_fd_set(pfwd->fd, &s->wfds, &s->max_fileno);
pfwd->check_fd = 1;
- }
- if (ret != 0) {
+ } else if (ret < 0) {
s->timeout.tv_sec = 0;
s->timeout.tv_usec = 1;
}
size_t bytes;
t->error = 0;
- ret = btr_node_status(btrn, wn->min_iqs);
+ ret = btr_node_status(btrn, wn->min_iqs, BTR_NT_LEAF);
if (ret == 0)
return;
if (ret < 0)
err:
assert(ret < 0);
t->error = ret;
+ btr_remove_node(btrn);
}
__malloc static void *file_write_parse_config(const char *options)
return NULL;
}
+static void file_write_free_config(void *conf)
+{
+ file_cmdline_parser_free(conf);
+}
+
/** the init function of the file writer */
void file_write_init(struct writer *w)
{
w->post_select = file_write_post_select;
w->post_select_btr = file_write_post_select_btr;
w->parse_config = file_write_parse_config;
+ w->free_config = file_write_free_config;
w->close = file_write_close;
w->shutdown = NULL; /* nothing to do */
w->help = (struct ggo_help) {