server: properly reset stat_number in fio_reset_state()
[fio.git] / server.c
index 9af278aabdd2dc500e6c464d98ae6709ce5e04ef..f8c36357a2dbfcce3577d94c8f94466cb979538d 100644 (file)
--- a/server.c
+++ b/server.c
@@ -22,8 +22,6 @@
 #include "crc/crc16.h"
 #include "lib/ieee754.h"
 
-#include "fio_version.h"
-
 int fio_net_port = 8765;
 
 int exit_backend = 0;
@@ -124,7 +122,7 @@ static int verify_convert_cmd(struct fio_net_cmd *cmd)
        cmd->cmd_crc16 = le16_to_cpu(cmd->cmd_crc16);
        cmd->pdu_crc16 = le16_to_cpu(cmd->pdu_crc16);
 
-       crc = crc16(cmd, FIO_NET_CMD_CRC_SZ);
+       crc = fio_crc16(cmd, FIO_NET_CMD_CRC_SZ);
        if (crc != cmd->cmd_crc16) {
                log_err("fio: server bad crc on command (got %x, wanted %x)\n",
                                cmd->cmd_crc16, crc);
@@ -202,7 +200,7 @@ struct fio_net_cmd *fio_net_recv_cmd(int sk)
                        break;
 
                /* Verify payload crc */
-               crc = crc16(pdu, cmd.pdu_len);
+               crc = fio_crc16(pdu, cmd.pdu_len);
                if (crc != cmd.pdu_crc16) {
                        log_err("fio: server bad crc on payload ");
                        log_err("(got %x, wanted %x)\n", cmd.pdu_crc16, crc);
@@ -238,11 +236,11 @@ void fio_net_cmd_crc(struct fio_net_cmd *cmd)
 {
        uint32_t pdu_len;
 
-       cmd->cmd_crc16 = __cpu_to_le16(crc16(cmd, FIO_NET_CMD_CRC_SZ));
+       cmd->cmd_crc16 = __cpu_to_le16(fio_crc16(cmd, FIO_NET_CMD_CRC_SZ));
 
        pdu_len = le32_to_cpu(cmd->pdu_len);
        if (pdu_len)
-               cmd->pdu_crc16 = __cpu_to_le16(crc16(cmd->payload, pdu_len));
+               cmd->pdu_crc16 = __cpu_to_le16(fio_crc16(cmd->payload, pdu_len));
 }
 
 int fio_net_send_cmd(int fd, uint16_t opcode, const void *buf, off_t size,
@@ -344,6 +342,7 @@ static int handle_job_cmd(struct fio_net_cmd *cmd)
        }
 
        spdu.jobs = cpu_to_le32(thread_number);
+       spdu.stat_outputs = cpu_to_le32(stat_number);
        fio_net_send_cmd(server_fd, FIO_NET_CMD_START, &spdu, sizeof(spdu), 0);
 
        ret = fio_backend();
@@ -407,9 +406,7 @@ static int handle_probe_cmd(struct fio_net_cmd *cmd)
 #ifdef FIO_BIG_ENDIAN
        probe.bigendian = 1;
 #endif
-       probe.fio_major = FIO_MAJOR;
-       probe.fio_minor = FIO_MINOR;
-       probe.fio_patch = FIO_PATCH;
+       strncpy((char *) probe.fio_version, fio_version_string, sizeof(probe.fio_version));
 
        probe.os        = FIO_OS;
        probe.arch      = FIO_ARCH;
@@ -453,8 +450,9 @@ static int handle_send_eta_cmd(struct fio_net_cmd *cmd)
                je->iops[i]     = cpu_to_le32(je->iops[i]);
        }
 
-       je->elapsed_sec         = cpu_to_le32(je->nr_running);
+       je->elapsed_sec         = cpu_to_le64(je->elapsed_sec);
        je->eta_sec             = cpu_to_le64(je->eta_sec);
+       je->is_pow2             = cpu_to_le32(je->is_pow2);
 
        fio_net_send_cmd(server_fd, FIO_NET_CMD_ETA, je, size, cmd->tag);
        free(je);
@@ -1187,6 +1185,11 @@ int fio_start_server(char *pidfile)
        pid_t pid;
        int ret;
 
+#if defined(WIN32)
+       WSADATA wsd;
+       WSAStartup(MAKEWORD(2,2), &wsd);
+#endif
+
        if (!pidfile)
                return fio_server();