From: Vsevolod Stakhov Date: Mon, 19 Oct 2020 11:36:30 +0000 (+0100) Subject: [Minor] Switch to buffered IO X-Git-Tag: 2.7~221 X-Git-Url: https://source.dussan.org/?a=commitdiff_plain;h=7604819ab9e65d0177ab35888c49ec791b98b649;p=rspamd.git [Minor] Switch to buffered IO --- diff --git a/src/libserver/roll_history.c b/src/libserver/roll_history.c index 8f50de693..a8c1c42a9 100644 --- a/src/libserver/roll_history.c +++ b/src/libserver/roll_history.c @@ -367,6 +367,7 @@ gboolean 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; @@ -383,6 +384,7 @@ rspamd_roll_history_save (struct roll_history *history, const gchar *filename) return FALSE; } + fp = fdopen (fd, "w"); obj = ucl_object_typed_new (UCL_ARRAY); for (i = 0; i < history->nrows; i ++) { @@ -418,12 +420,12 @@ rspamd_roll_history_save (struct roll_history *history, const gchar *filename) 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; } diff --git a/src/libserver/worker_util.c b/src/libserver/worker_util.c index 5ebae998c..71bbe4860 100644 --- a/src/libserver/worker_util.c +++ b/src/libserver/worker_util.c @@ -1916,6 +1916,7 @@ rspamd_controller_store_saved_stats (struct rspamd_main *rspamd_main, ucl_object_t *top, *sub; struct ucl_emitter_functions *efuncs; gint i, fd; + FILE *fp; gchar fpath[PATH_MAX]; if (cfg->stats_file == NULL) { @@ -1931,6 +1932,7 @@ rspamd_controller_store_saved_stats (struct rspamd_main *rspamd_main, return; } + fp = fdopen (fd, "w"); stat = rspamd_main->stat; top = ucl_object_typed_new (UCL_OBJECT); @@ -1956,7 +1958,7 @@ rspamd_controller_store_saved_stats (struct rspamd_main *rspamd_main, 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", @@ -1972,7 +1974,7 @@ rspamd_controller_store_saved_stats (struct rspamd_main *rspamd_main, } ucl_object_unref (top); - close (fd); + fclose (fp); ucl_object_emit_funcs_free (efuncs); }