]> source.dussan.org Git - rspamd.git/commitdiff
[Minor] Switch to buffered IO
authorVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 19 Oct 2020 11:36:30 +0000 (12:36 +0100)
committerVsevolod Stakhov <vsevolod@highsecure.ru>
Mon, 19 Oct 2020 11:36:30 +0000 (12:36 +0100)
src/libserver/roll_history.c
src/libserver/worker_util.c

index 8f50de693f6d01e15d94843cd23d8d01c97deb6c..a8c1c42a9bc16fec3813578f9321e0805afe958e 100644 (file)
@@ -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;
 }
index 5ebae998c09b64840fcf78a6b893ff2cda77bb50..71bbe48601296db8c1227786e40bacb65cb993ee 100644 (file)
@@ -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);
 }