#include <netinet/in.h>
#include <arpa/inet.h>
#include <netdb.h>
+#include <signal.h>
#include "fio.h"
#include "server.h"
static void remove_client(struct fio_client *client)
{
- dprint(FD_NET, "removed client <%s>\n", client->hostname);
+ dprint(FD_NET, "client: removed <%s>\n", client->hostname);
flist_del(&client->list);
nr_clients--;
static void __fio_client_add_cmd_option(struct fio_client *client,
const char *opt)
{
- client->argc++;
+ int index;
+
+ index = client->argc++;
client->argv = realloc(client->argv, sizeof(char *) * client->argc);
- client->argv[client->argc - 1] = strdup(opt);
+ client->argv[index] = strdup(opt);
+ dprint(FD_NET, "client: add cmd %d: %s\n", index, opt);
}
void fio_client_add_cmd_option(const char *hostname, const char *opt)
{
struct fio_client *client;
- dprint(FD_NET, "added client <%s>\n", hostname);
+ dprint(FD_NET, "client: added <%s>\n", hostname);
client = malloc(sizeof(*client));
memset(client, 0, sizeof(*client));
{
int fd;
- dprint(FD_NET, "connect to host %s\n", client->hostname);
+ dprint(FD_NET, "client: connect to host %s\n", client->hostname);
memset(&client->addr, 0, sizeof(client->addr));
client->addr.sin_family = AF_INET;
struct flist_head *entry;
struct fio_client *client;
+ dprint(FD_NET, "client: terminate clients\n");
+
flist_for_each(entry, &client_list) {
client = flist_entry(entry, struct fio_client, list);
static void sig_int(int sig)
{
+ dprint(FD_NET, "client: got sign %d\n", sig);
fio_clients_terminate();
}
static void probe_client(struct fio_client *client)
{
+ dprint(FD_NET, "client: send probe\n");
+
fio_net_send_simple_cmd(client->fd, FIO_NET_CMD_PROBE, 0);
handle_client(client, 1);
}
struct cmd_line_pdu *pdu;
int i, ret;
+ dprint(FD_NET, "client: send cmdline %d\n", client->argc);
+
pdu = malloc(sizeof(*pdu));
for (i = 0; i < client->argc; i++)
strcpy((char *) pdu->argv[i], client->argv[i]);
struct flist_head *entry, *tmp;
int ret;
+ dprint(FD_NET, "client: connect all\n");
+
client_signal_handler();
flist_for_each_safe(entry, tmp, &client_list) {
struct fio_net_cmd *cmd;
int done = 0;
+ dprint(FD_NET, "client: handle %s\n", client->hostname);
+
while ((cmd = fio_net_recv_cmd(client->fd, 1)) != NULL) {
dprint(FD_NET, "%s: got cmd op %d\n", client->hostname,
cmd->opcode);