diff options
author | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2020-10-19 12:36:30 +0100 |
---|---|---|
committer | Vsevolod Stakhov <vsevolod@highsecure.ru> | 2020-10-19 12:36:30 +0100 |
commit | 7604819ab9e65d0177ab35888c49ec791b98b649 (patch) | |
tree | bfb56e3398f38dfa78d1e3a8e4398d81002239ef | |
parent | 5a9e00e56e3bacefbfa52d9e099e195069fd50fb (diff) | |
download | rspamd-7604819ab9e65d0177ab35888c49ec791b98b649.tar.gz rspamd-7604819ab9e65d0177ab35888c49ec791b98b649.zip |
[Minor] Switch to buffered IO
-rw-r--r-- | src/libserver/roll_history.c | 6 | ||||
-rw-r--r-- | src/libserver/worker_util.c | 6 |
2 files changed, 8 insertions, 4 deletions
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); } |