h2load: Improve checking for timing script imput, prevent false positive in certain situations
This commit is contained in:
parent
d70eb14ce0
commit
3002674bac
|
@ -1164,9 +1164,14 @@ void read_script_from_file(std::istream &infile,
|
||||||
char *end;
|
char *end;
|
||||||
auto v = std::strtod(start, &end);
|
auto v = std::strtod(start, &end);
|
||||||
|
|
||||||
if (end == start || errno != 0) {
|
errno = 0;
|
||||||
|
if (v < 0.0 || !std::isfinite(v) || end == start || errno != 0) {
|
||||||
|
auto error = errno;
|
||||||
std::cerr << "Time value error at line " << line_count << ". \n\t"
|
std::cerr << "Time value error at line " << line_count << ". \n\t"
|
||||||
<< script_line.substr(0, pos) << std::endl;
|
<< "value = " << script_line.substr(0, pos) << std::endl;
|
||||||
|
if (error != 0) {
|
||||||
|
std::cerr << "\t" << strerror(error) << std::endl;
|
||||||
|
}
|
||||||
exit(EXIT_FAILURE);
|
exit(EXIT_FAILURE);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1295,15 +1300,15 @@ Options:
|
||||||
Path of a file containing one or more lines separated by
|
Path of a file containing one or more lines separated by
|
||||||
EOLs. Each script line is composed of two tab-separated
|
EOLs. Each script line is composed of two tab-separated
|
||||||
fields. The first field represents the time offset from
|
fields. The first field represents the time offset from
|
||||||
the start of execution, expressed as milliseconds with
|
the start of execution, expressed as a positive value of
|
||||||
microsecond resolution. The second field represents the
|
milliseconds with microsecond resolution. The second
|
||||||
URI. This option will disable URIs getting from
|
field represents the URI. This option will disable URIs
|
||||||
command-line. If '-' is given as <PATH>, script lines
|
getting from command-line. If '-' is given as <PATH>,
|
||||||
will be read from stdin. Script lines are used in order
|
script lines will be read from stdin. Script lines are
|
||||||
for each client. If -n is given, it must be less than
|
used in order for each client. If -n is given, it must be
|
||||||
or equal to the number of script lines, larger values are
|
less than or equal to the number of script lines, larger
|
||||||
clamped to the number of script lines. If -n is
|
values are clamped to the number of script lines. If -n
|
||||||
not given, the number of requests will default to the
|
is not given, the number of requests will default to the
|
||||||
number of script lines. The scheme, host and port defined
|
number of script lines. The scheme, host and port defined
|
||||||
in the first URI are used solely. Values contained in
|
in the first URI are used solely. Values contained in
|
||||||
other URIs, if present, are ignored. Definition of a
|
other URIs, if present, are ignored. Definition of a
|
||||||
|
|
Loading…
Reference in New Issue