btr_remove_node(btrn);
}
-static int oss_open(struct writer_node *wn)
+static void oss_open(struct writer_node *wn)
{
- struct private_oss_write_data *powd;
+ struct private_oss_write_data *powd = para_calloc(sizeof(*powd));
- powd = para_calloc(sizeof(*powd));
- wn->private_data = powd;
powd->fd = -1;
- return 1;
+ wn->private_data = powd;
}
-__malloc static void *oss_parse_config(const char *options)
+__malloc static void *oss_parse_config_or_die(const char *options)
{
- int ret;
struct oss_write_args_info *conf = para_calloc(sizeof(*conf));
- ret = oss_cmdline_parser_string(options, conf, "oss_write");
- if (ret)
- goto err_out;
+ /* exits on errors */
+ oss_cmdline_parser_string(options, conf, "oss_write");
return conf;
-err_out:
- free(conf);
- return NULL;
}
static void oss_free_config(void *conf)
w->close = oss_close;
w->pre_select = oss_pre_select;
w->post_select = oss_post_select;
- w->parse_config = oss_parse_config;
+ w->parse_config_or_die = oss_parse_config_or_die;
w->free_config = oss_free_config;
w->shutdown = NULL;
w->help = (struct ggo_help) {