diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/libcharon/plugins/load_tester/load_tester.c | 10 | ||||
-rw-r--r-- | src/libcharon/plugins/load_tester/load_tester_control.c | 8 |
2 files changed, 11 insertions, 7 deletions
diff --git a/src/libcharon/plugins/load_tester/load_tester.c b/src/libcharon/plugins/load_tester/load_tester.c index fc41df76a..f7361e606 100644 --- a/src/libcharon/plugins/load_tester/load_tester.c +++ b/src/libcharon/plugins/load_tester/load_tester.c @@ -61,7 +61,7 @@ static FILE* make_connection() /** * Initiate load-tests */ -static int initiate(unsigned int count) +static int initiate(unsigned int count, unsigned int delay) { FILE *stream; char c; @@ -72,7 +72,7 @@ static int initiate(unsigned int count) return 1; } - fprintf(stream, "%u\n", count); + fprintf(stream, "%u %u\n", count, delay); while (1) { @@ -94,11 +94,11 @@ static int initiate(unsigned int count) int main(int argc, char *argv[]) { - if (argc == 3 && strcmp(argv[1], "initiate") == 0) + if (argc >= 3 && strcmp(argv[1], "initiate") == 0) { - return initiate(atoi(argv[2])); + return initiate(atoi(argv[2]), argc > 3 ? atoi(argv[3]) : 0); } fprintf(stderr, "Usage:\n"); - fprintf(stderr, " %s initiate <count>\n", argv[0]); + fprintf(stderr, " %s initiate <count> [<delay in ms>]\n", argv[0]); return 1; } diff --git a/src/libcharon/plugins/load_tester/load_tester_control.c b/src/libcharon/plugins/load_tester/load_tester_control.c index db2a31368..0c21c23ca 100644 --- a/src/libcharon/plugins/load_tester/load_tester_control.c +++ b/src/libcharon/plugins/load_tester/load_tester_control.c @@ -223,7 +223,7 @@ static job_requeue_t initiate(FILE *stream) enumerator_t *enumerator; peer_cfg_t *peer_cfg; child_cfg_t *child_cfg; - u_int i, count, failed = 0; + u_int i, count, failed = 0, delay = 0; char buf[16] = ""; fflush(stream); @@ -231,7 +231,7 @@ static job_requeue_t initiate(FILE *stream) { return JOB_REQUEUE_NONE; } - if (sscanf(buf, "%u", &count) != 1) + if (sscanf(buf, "%u %u", &count, &delay) < 1) { return JOB_REQUEUE_NONE; } @@ -285,6 +285,10 @@ static job_requeue_t initiate(FILE *stream) fprintf(stream, "!"); break; } + if (delay) + { + usleep(delay * 1000); + } fflush(stream); } |