From 941bc9558fe8800d7c381b27e9183330ac658fe3 Mon Sep 17 00:00:00 2001 From: Joseph Kong Date: Fri, 22 Jan 2016 22:40:01 -0800 Subject: [PATCH] Restore the original --server and --server_name options. --- src/conn.c | 32 +++++++++++++++++++++----------- src/core.c | 3 +++ src/httperf.c | 25 +++++++++++++++++++------ src/httperf.h | 2 +- 4 files changed, 44 insertions(+), 18 deletions(-) diff --git a/src/conn.c b/src/conn.c index a24c1fc..13e39f2 100755 --- a/src/conn.c +++ b/src/conn.c @@ -86,22 +86,32 @@ conn_add_servers(void) void conn_init(Conn *conn) { - int len; - - len = strlen(srvcurrent); - conn->hostname = srvcurrent; - conn->hostname_len = len; - - srvcurrent += len + 1; - if (srvcurrent >= srvend) - srvcurrent = srvbase; + if (param.servers) { + int len = strlen(srvcurrent); + conn->hostname = srvcurrent; + conn->hostname_len = len; + conn->fqdname = conn->hostname; + conn->fqdname_len = conn->hostname_len; + + srvcurrent += len + 1; + if (srvcurrent >= srvend) + srvcurrent = srvbase; + } else if (param.server_name) { + conn->hostname = param.server; + conn->hostname_len = strlen(param.server); + conn->fqdname = param.server_name; + conn->fqdname_len = strlen(param.server_name); + } else { + conn->hostname = param.server; + conn->hostname_len = strlen(param.server); + conn->fqdname = conn->hostname; + conn->fqdname_len = conn->hostname_len; + } conn->port = param.port; conn->sd = -1; conn->myport = -1; conn->line.iov_base = conn->line_buf; - conn->fqdname = conn->hostname; - conn->fqdname_len = conn->hostname_len; #ifdef HAVE_SSL if (param.use_ssl) { diff --git a/src/core.c b/src/core.c index 06b96ec..bb4929e 100755 --- a/src/core.c +++ b/src/core.c @@ -965,6 +965,9 @@ core_init(void) if (param.servers) conn_add_servers(); + else if (param.server) + core_addr_intern(param.server, strlen(param.server), param.port); + if (param.runtime) { arg.l = 0; timer_schedule(core_runtime_timer, arg, param.runtime); diff --git a/src/httperf.c b/src/httperf.c index 7f455d8..60bd351 100755 --- a/src/httperf.c +++ b/src/httperf.c @@ -136,6 +136,8 @@ static struct option longopts[] = { {"retry-on-failure", no_argument, ¶m.retry_on_failure, 1}, {"runtime", required_argument, (int *) ¶m.runtime, 0}, {"send-buffer", required_argument, (int *) ¶m.send_buffer_size, 0}, + {"server", required_argument, (int *) ¶m.server, 0}, + {"server-name", required_argument, (int *) ¶m.server_name, 0}, {"servers", required_argument, (int *) ¶m.servers, 0}, {"uri", required_argument, (int *) ¶m.uri, 0}, {"session-cookies", no_argument, (int *) ¶m.session_cookies, 1}, @@ -175,9 +177,9 @@ usage(void) "\t[--num-calls N] [--num-conns N] [--session-cookies]\n" "\t[--period [d|u|e]T1[,T2]|[v]T1,D1[,T2,D2]...[,Tn,Dn]\n" "\t[--print-reply [header|body]] [--print-request [header|body]]\n" - "\t[--rate X] [--recv-buffer N] [--retry-on-failure] " - "[--send-buffer N]\n" - "\t<--servers file> [--port N] [--uri S] [--myaddr S]\n" + "\t[--rate X] [--recv-buffer N] [--retry-on-failure] [--send-buffer N]\n" + "\t[--server S|--servers file] [--server-name S] [--port N] [--uri S] " + "[--myaddr S]\n" #ifdef HAVE_SSL "\t[--ssl] [--ssl-ciphers L] [--ssl-no-reuse]\n" "\t[--ssl-certificate file] [--ssl-key file]\n" @@ -635,7 +637,11 @@ main(int argc, char **argv) prog_name, optarg); exit(1); } - } else if (flag == ¶m.servers) + } else if (flag == ¶m.server) + param.server = optarg; + else if (flag == ¶m.server_name) + param.server_name = optarg; + else if (flag == ¶m.servers) param.servers = optarg; #ifdef HAVE_SSL else if (flag == ¶m.ssl_cipher_list) @@ -974,13 +980,16 @@ main(int argc, char **argv) } } - if (param.servers == NULL) { + if (param.server != NULL && param.servers != NULL) { fprintf(stderr, - "%s: must specify --servers\n", + "%s: --server S or --servers file\n", prog_name); exit(-1); } + if (param.server == NULL && param.servers == NULL) + param.server = "localhost"; + #ifdef HAVE_SSL if (param.use_ssl) { char buf[1024]; @@ -1131,6 +1140,10 @@ main(int argc, char **argv) if (param.runtime > 0) printf(" --runtime=%g", param.runtime); printf(" --client=%u/%u", param.client.id, param.client.num_clients); + if (param.server) + printf(" --server=%s", param.server); + if (param.server_name) + printf(" --server_name=%s", param.server_name); if (param.servers) printf(" --servers=%s", param.servers); if (param.port) diff --git a/src/httperf.h b/src/httperf.h index 879c934..9d40a8a 100755 --- a/src/httperf.h +++ b/src/httperf.h @@ -156,7 +156,7 @@ typedef struct Cmdline_Params u_int num_reqs; /* # of user requests per session */ Time think_time; /* user think time between requests */ } - wsesspage; /* XXX Currently broken */ + wsesspage; struct { u_int num_sessions; /* # of user-sessions */