client/backend: fix incomplete output_format checks
[fio.git] / client.c
index 110a01bd99564280245cd59ca7ff27759bf3e936..db472c4cb0b4cb1d87368358b8bb34d65f78d94c 100644 (file)
--- a/client.c
+++ b/client.c
@@ -117,7 +117,7 @@ static int read_data(int fd, void *data, size_t size)
 
 static void fio_client_json_init(void)
 {
-       if (output_format != FIO_OUTPUT_JSON)
+       if (!(output_format & FIO_OUTPUT_JSON))
                return;
        root = json_create_object();
        json_object_add_value_string(root, "fio version", fio_version_string);
@@ -129,9 +129,9 @@ static void fio_client_json_init(void)
 
 static void fio_client_json_fini(void)
 {
-       if (output_format != FIO_OUTPUT_JSON)
+       if (!(output_format & FIO_OUTPUT_JSON))
                return;
-       json_print_object(root);
+       json_print_object(root, NULL);
        log_info("\n");
        json_free_object(root);
        root = NULL;
@@ -534,11 +534,6 @@ static void sig_int(int sig)
        fio_clients_terminate();
 }
 
-static void sig_show_status(int sig)
-{
-       show_running_run_stats();
-}
-
 static void client_signal_handler(void)
 {
        struct sigaction act;
@@ -941,7 +936,7 @@ static void handle_ts(struct fio_client *client, struct fio_net_cmd *cmd)
        struct cmd_ts_pdu *p = (struct cmd_ts_pdu *) cmd->payload;
        struct json_object *tsobj;
 
-       tsobj = show_thread_status(&p->ts, &p->rs);
+       tsobj = show_thread_status(&p->ts, &p->rs, NULL);
        client->did_stat = 1;
        if (tsobj) {
                json_object_add_client_info(tsobj, client);
@@ -961,7 +956,7 @@ static void handle_ts(struct fio_client *client, struct fio_net_cmd *cmd)
 
        if (++sum_stat_nr == sum_stat_clients) {
                strcpy(client_ts.name, "All clients");
-               tsobj = show_thread_status(&client_ts, &client_gs);
+               tsobj = show_thread_status(&client_ts, &client_gs, NULL);
                if (tsobj) {
                        json_object_add_client_info(tsobj, client);
                        json_array_add_value_object(clients_array, tsobj);
@@ -973,7 +968,7 @@ static void handle_gs(struct fio_client *client, struct fio_net_cmd *cmd)
 {
        struct group_run_stats *gs = (struct group_run_stats *) cmd->payload;
 
-       show_group_stats(gs);
+       show_group_stats(gs, NULL);
 }
 
 static void handle_text(struct fio_client *client, struct fio_net_cmd *cmd)
@@ -1034,13 +1029,16 @@ static void handle_du(struct fio_client *client, struct fio_net_cmd *cmd)
                log_info("\nDisk stats (read/write):\n");
        }
 
-       if (output_format == FIO_OUTPUT_JSON) {
+       if (output_format & FIO_OUTPUT_JSON) {
                struct json_object *duobj;
                json_array_add_disk_util(&du->dus, &du->agg, du_array);
                duobj = json_array_last_value_object(du_array);
                json_object_add_client_info(duobj, client);
-       } else
-               print_disk_util(&du->dus, &du->agg, output_format == FIO_OUTPUT_TERSE);
+       }
+       if (output_format & FIO_OUTPUT_TERSE)
+               print_disk_util(&du->dus, &du->agg, 1, NULL);
+       if (output_format & FIO_OUTPUT_NORMAL)
+               print_disk_util(&du->dus, &du->agg, 0, NULL);
 }
 
 static void convert_jobs_eta(struct jobs_eta *je)
@@ -1497,9 +1495,15 @@ int fio_handle_client(struct fio_client *client)
                break;
        case FIO_NET_CMD_VTRIGGER: {
                struct all_io_list *pdu = (struct all_io_list *) cmd->payload;
-               char buf[64];
+               char buf[128];
+               int off = 0;
+
+               if (aux_path) {
+                       strcpy(buf, aux_path);
+                       off = strlen(buf);
+               }
 
-               __verify_save_state(pdu, server_name(client, buf, sizeof(buf)));
+               __verify_save_state(pdu, server_name(client, &buf[off], sizeof(buf) - off));
                exec_trigger(trigger_cmd);
                break;
                }