Browse Source

[Minor] Switch to buffered IO

tags/2.7
Vsevolod Stakhov 3 years ago
parent
commit
7604819ab9
2 changed files with 8 additions and 4 deletions
  1. 4
    2
      src/libserver/roll_history.c
  2. 4
    2
      src/libserver/worker_util.c

+ 4
- 2
src/libserver/roll_history.c View 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;
}

+ 4
- 2
src/libserver/worker_util.c View 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);
}


Loading…
Cancel
Save