h2load: Add --groups option

This commit is contained in:
Tatsuhiro Tsujikawa 2019-07-24 23:14:33 +09:00
parent 19fb74b03f
commit 9031469735
2 changed files with 17 additions and 1 deletions

View File

@ -77,6 +77,7 @@ bool recorded(const std::chrono::steady_clock::time_point &t) {
Config::Config() Config::Config()
: ciphers(tls::DEFAULT_CIPHER_LIST), : ciphers(tls::DEFAULT_CIPHER_LIST),
groups("P-256:X25519:P-384:P-521"),
data_length(-1), data_length(-1),
addrs(nullptr), addrs(nullptr),
nreqs(1), nreqs(1),
@ -2220,6 +2221,10 @@ Options:
in <URI>. in <URI>.
--rps=<N> Specify request per second for each client. --rps and --rps=<N> Specify request per second for each client. --rps and
--timing-script-file are mutually exclusive. --timing-script-file are mutually exclusive.
--groups=<GROUPS>
Specify the supported groups.
Default: )"
<< config.groups << R"(
-v, --verbose -v, --verbose
Output debug information. Output debug information.
--version Display version information and exit. --version Display version information and exit.
@ -2280,6 +2285,7 @@ int main(int argc, char **argv) {
{"log-file", required_argument, &flag, 10}, {"log-file", required_argument, &flag, 10},
{"connect-to", required_argument, &flag, 11}, {"connect-to", required_argument, &flag, 11},
{"rps", required_argument, &flag, 12}, {"rps", required_argument, &flag, 12},
{"groups", required_argument, &flag, 13},
{nullptr, 0, nullptr, 0}}; {nullptr, 0, nullptr, 0}};
int option_index = 0; int option_index = 0;
auto c = getopt_long(argc, argv, auto c = getopt_long(argc, argv,
@ -2530,6 +2536,10 @@ int main(int argc, char **argv) {
config.rps = v; config.rps = v;
break; break;
} }
case 13:
// --groups
config.groups = optarg;
break;
} }
break; break;
default: default:
@ -2758,7 +2768,11 @@ int main(int argc, char **argv) {
} }
// TODO Use SSL_CTX_set_ciphersuites to set TLSv1.3 cipher list // TODO Use SSL_CTX_set_ciphersuites to set TLSv1.3 cipher list
// TODO Use SSL_CTX_set1_groups_list to set key share
if (SSL_CTX_set1_groups_list(ssl_ctx, config.groups.c_str()) != 1) {
std::cerr << "SSL_CTX_set1_groups_list failed" << std::endl;
exit(EXIT_FAILURE);
}
#ifndef OPENSSL_NO_NEXTPROTONEG #ifndef OPENSSL_NO_NEXTPROTONEG
SSL_CTX_set_next_proto_select_cb(ssl_ctx, client_select_next_proto_cb, SSL_CTX_set_next_proto_select_cb(ssl_ctx, client_select_next_proto_cb,

View File

@ -75,6 +75,8 @@ struct Config {
std::string connect_to_host; std::string connect_to_host;
std::string ifile; std::string ifile;
std::string ciphers; std::string ciphers;
// supported groups (or curves).
std::string groups;
// length of upload data // length of upload data
int64_t data_length; int64_t data_length;
addrinfo *addrs; addrinfo *addrs;