X-Git-Url: https://git.kernel.dk/?a=blobdiff_plain;f=init.c;h=e8fef21edf567e645fef1d95a5cc83c532ba9d7b;hb=07511a632ef219eb578d8c7f12825a275c640bcf;hp=1cf8e5982de50141643ca6333cef98cb1154cc93;hpb=7874f8b74cf9da4c142b0574d0ba67a7c9c6db20;p=fio.git diff --git a/init.c b/init.c index 1cf8e598..e8fef21e 100644 --- a/init.c +++ b/init.c @@ -23,6 +23,8 @@ #include "lib/getopt.h" +#include "fio_version.h" + #if FIO_PATCH > 0 static char fio_version_string[] = __fio_stringify(FIO_MAJOR) "." \ __fio_stringify(FIO_MINOR) "." \ @@ -188,17 +190,12 @@ static struct option l_opts[FIO_NR_OPTIONS] = { }, { .name = (char *) "server", - .has_arg = no_argument, + .has_arg = optional_argument, .val = 'S', }, { .name = (char *) "daemonize", - .has_arg = no_argument, - .val = 'D', - }, - { - .name = (char *) "net-port", .has_arg = required_argument, - .val = 'P', + .val = 'D', }, { .name = (char *) "client", @@ -1123,9 +1120,9 @@ static void usage(const char *name) " (def 1024)\n"); printf("\t--warnings-fatal Fio parser warnings are fatal\n"); printf("\t--max-jobs\tMaximum number of threads/processes to support\n"); - printf("\t--server\tStart a backend fio server\n"); - printf("\t--client=hostname Talk to remove backend fio server at hostname\n"); - printf("\t--net-port=port\tUse specified port for client/server connection\n"); + printf("\t--server=args\tStart a backend fio server\n"); + printf("\t--daemonize=pidfile Background fio server, write pid to file\n"); + printf("\t--client=hostname Talk to remote backend fio server at hostname\n"); printf("\nFio was written by Jens Axboe "); printf("\n Jens Axboe \n"); } @@ -1247,9 +1244,9 @@ static int client_flag_set(char c) return 0; } -int parse_cmd_client(char *client, char *opt) +void parse_cmd_client(void *client, char *opt) { - return fio_client_add_cmd_option(client, opt); + fio_client_add_cmd_option(client, opt); } int parse_cmd_line(int argc, char *argv[]) @@ -1257,8 +1254,8 @@ int parse_cmd_line(int argc, char *argv[]) struct thread_data *td = NULL; int c, ini_idx = 0, lidx, ret = 0, do_exit = 0, exit_val = 0; char *ostr = cmd_optstr; - int daemonize_server = 0; - char *cur_client = NULL; + void *pid_file = NULL; + void *cur_client = NULL; int backend = 0; /* @@ -1271,11 +1268,7 @@ int parse_cmd_line(int argc, char *argv[]) did_arg = 1; if ((c & FIO_CLIENT_FLAG) || client_flag_set(c)) { - if (parse_cmd_client(cur_client, argv[optind - 1])) { - exit_val = 1; - do_exit++; - break; - } + parse_cmd_client(cur_client, argv[optind - 1]); c &= ~FIO_CLIENT_FLAG; } @@ -1410,14 +1403,13 @@ int parse_cmd_line(int argc, char *argv[]) exit_val = 1; break; } + if (optarg) + fio_server_set_arg(optarg); is_backend = 1; backend = 1; break; case 'D': - daemonize_server = 1; - break; - case 'P': - fio_net_port = atoi(optarg); + pid_file = strdup(optarg); break; case 'C': if (is_backend) { @@ -1426,8 +1418,12 @@ int parse_cmd_line(int argc, char *argv[]) exit_val = 1; break; } - fio_client_add(optarg); - cur_client = optarg; + if (fio_client_add(optarg, &cur_client)) { + log_err("fio: failed adding client %s\n", optarg); + do_exit++; + exit_val = 1; + break; + } break; default: do_exit++; @@ -1450,7 +1446,7 @@ int parse_cmd_line(int argc, char *argv[]) } if (is_backend && backend) - return fio_start_server(daemonize_server); + return fio_start_server(pid_file); if (td) { if (!ret)