log: remember to free output buffer when done
[fio.git] / client.c
index a868e3afec8a339e84cc3f9c4120758b51c3bff3..b2fef2ad467baeb68ec43dcfad7439998d4a5b5d 100644 (file)
--- a/client.c
+++ b/client.c
@@ -1144,13 +1144,17 @@ static void handle_text(struct fio_client *client, struct fio_net_cmd *cmd)
        const char *buf = (const char *) pdu->buf;
        const char *name;
        int fio_unused ret;
+       struct buf_output out;
+
+       buf_output_init(&out);
 
        name = client->name ? client->name : client->hostname;
 
        if (!client->skip_newline && !(output_format & FIO_OUTPUT_TERSE))
-               fprintf(f_out, "<%s> ", name);
-       ret = fwrite(buf, pdu->buf_len, 1, f_out);
-       fflush(f_out);
+               __log_buf(&out, "<%s> ", name);
+       __log_buf(&out, "%s", buf);
+       log_info_buf(out.buf, out.buflen);
+       buf_output_free(&out);
        client->skip_newline = strchr(buf, '\n') == NULL;
 }
 
@@ -1539,7 +1543,7 @@ static struct cmd_iolog_pdu *convert_iolog_gz(struct fio_net_cmd *cmd,
 #ifdef CONFIG_ZLIB
        struct cmd_iolog_pdu *ret;
        z_stream stream;
-       uint32_t nr_samples;
+       uint64_t nr_samples;
        size_t total;
        char *p;