rspamd_roll_history_save (struct roll_history *history, const gchar *filename)
{
gint fd;
+ FILE *fp;
ucl_object_t *obj, *elt;
guint i;
struct roll_history_row *row;
return FALSE;
}
+ fp = fdopen (fd, "w");
obj = ucl_object_typed_new (UCL_ARRAY);
for (i = 0; i < history->nrows; i ++) {
ucl_array_append (obj, elt);
}
- emitter_func = ucl_object_emit_fd_funcs (fd);
+ emitter_func = ucl_object_emit_file_funcs (fp);
ucl_object_emit_full (obj, UCL_EMIT_JSON_COMPACT, emitter_func, NULL);
ucl_object_emit_funcs_free (emitter_func);
ucl_object_unref (obj);
- close (fd);
+ fclose (fp);
return TRUE;
}
ucl_object_t *top, *sub;
struct ucl_emitter_functions *efuncs;
gint i, fd;
+ FILE *fp;
gchar fpath[PATH_MAX];
if (cfg->stats_file == NULL) {
return;
}
+ fp = fdopen (fd, "w");
stat = rspamd_main->stat;
top = ucl_object_typed_new (UCL_OBJECT);
ucl_object_fromint (stat->control_connections_count),
"control_connections", 0, false);
- efuncs = ucl_object_emit_fd_funcs (fd);
+ efuncs = ucl_object_emit_file_funcs (fp);
if (!ucl_object_emit_full (top, UCL_EMIT_JSON_COMPACT,
efuncs, NULL)) {
msg_err_config ("cannot write stats to %s: %s",
}
ucl_object_unref (top);
- close (fd);
+ fclose (fp);
ucl_object_emit_funcs_free (efuncs);
}