int ipv6;
ipv6 = type == Fio_client_ipv6;
- if (fio_server_parse_host(hostname, &ipv6,
+ if (fio_server_parse_host(hostname, ipv6,
&client->addr.sin_addr,
&client->addr6.sin6_addr))
goto err;
memset(addr, 0, sizeof(*addr));
addr->sun_family = AF_UNIX;
- strcpy(addr->sun_path, client->hostname);
+ strncpy(addr->sun_path, client->hostname, sizeof(addr->sun_path) - 1);
fd = socket(AF_UNIX, SOCK_STREAM, 0);
if (fd < 0) {
int i;
for (i = 0; i < 2; i++) {
- dus->ios[i] = le32_to_cpu(dus->ios[i]);
- dus->merges[i] = le32_to_cpu(dus->merges[i]);
- dus->sectors[i] = le64_to_cpu(dus->sectors[i]);
- dus->ticks[i] = le32_to_cpu(dus->ticks[i]);
+ dus->s.ios[i] = le32_to_cpu(dus->s.ios[i]);
+ dus->s.merges[i] = le32_to_cpu(dus->s.merges[i]);
+ dus->s.sectors[i] = le64_to_cpu(dus->s.sectors[i]);
+ dus->s.ticks[i] = le32_to_cpu(dus->s.ticks[i]);
}
- dus->io_ticks = le32_to_cpu(dus->io_ticks);
- dus->time_in_queue = le32_to_cpu(dus->time_in_queue);
- dus->msec = le64_to_cpu(dus->msec);
+ dus->s.io_ticks = le32_to_cpu(dus->s.io_ticks);
+ dus->s.time_in_queue = le32_to_cpu(dus->s.time_in_queue);
+ dus->s.msec = le64_to_cpu(dus->s.msec);
}
static void handle_du(struct fio_client *client, struct fio_net_cmd *cmd)
dst->eta_sec = je->eta_sec;
dst->nr_threads += je->nr_threads;
- /* we need to handle je->run_str too ... */
+
+ /*
+ * This wont be correct for multiple strings, but at least it
+ * works for the basic cases.
+ */
+ strcpy((char *) dst->run_str, (char *) je->run_str);
}
void fio_client_dec_jobs_eta(struct client_eta *eta, client_eta_op eta_fn)
dprint(FD_NET, "client: request eta (%d)\n", nr_clients);
- eta = malloc(sizeof(*eta));
- memset(&eta->eta, 0, sizeof(eta->eta));
+ eta = calloc(1, sizeof(*eta) + __THREAD_RUNSTR_SZ(REAL_MAX_JOBS));
eta->pending = nr_clients;
flist_for_each(entry, &client_list) {