From f3f93cade91448ac5dd66a028714e29479790fff Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Wed, 21 Oct 2020 16:24:07 +0200 Subject: [PATCH] load-tester: Also request a virtual IPv6 address Fixes #3595. --- conf/plugins/load-tester.opt | 2 +- .../plugins/load_tester/load_tester_config.c | 19 ++++++++----------- 2 files changed, 9 insertions(+), 12 deletions(-) diff --git a/conf/plugins/load-tester.opt b/conf/plugins/load-tester.opt index 812f13d4a..9dd8ed091 100644 --- a/conf/plugins/load-tester.opt +++ b/conf/plugins/load-tester.opt @@ -119,7 +119,7 @@ charon.plugins.load-tester.responder_tsr = initiator_tsr Traffic selector on responder side, as narrowed by responder. charon.plugins.load-tester.request_virtual_ip = no - Request an INTERNAL_IPV4_ADDR from the server. + Request an INTERNAL_IPV4_ADDR and INTERNAL_IPV6_ADDR from the server. charon.plugins.load-tester.shutdown_when_complete = no Shutdown the daemon after all IKE_SAs have been established. diff --git a/src/libcharon/plugins/load_tester/load_tester_config.c b/src/libcharon/plugins/load_tester/load_tester_config.c index b0b6f146e..62d03c9eb 100644 --- a/src/libcharon/plugins/load_tester/load_tester_config.c +++ b/src/libcharon/plugins/load_tester/load_tester_config.c @@ -42,9 +42,9 @@ struct private_load_tester_config_t { peer_cfg_t *peer_cfg; /** - * virtual IP, if any + * request virtual IPs */ - host_t *vip; + bool vips; /** * Initiator address @@ -753,9 +753,10 @@ static peer_cfg_t* generate_config(private_load_tester_config_t *this, uint num) ike_cfg->add_proposal(ike_cfg, this->proposal->clone(this->proposal, 0)); peer_cfg = peer_cfg_create("load-test", ike_cfg, &peer); - if (this->vip) + if (this->vips) { - peer_cfg->add_virtual_ip(peer_cfg, this->vip->clone(this->vip)); + peer_cfg->add_virtual_ip(peer_cfg, host_create_any(AF_INET)); + peer_cfg->add_virtual_ip(peer_cfg, host_create_any(AF_INET6)); } if (this->pool) { @@ -789,7 +790,7 @@ static peer_cfg_t* generate_config(private_load_tester_config_t *this, uint num) if (num) { /* initiator */ - if (this->vip) + if (this->vips) { add_ts(this, NULL, child_cfg, TRUE, TRUE); } @@ -914,7 +915,6 @@ METHOD(load_tester_config_t, destroy, void, this->peer_cfg->destroy(this->peer_cfg); DESTROY_IF(this->proposal); DESTROY_IF(this->esp); - DESTROY_IF(this->vip); free(this); } @@ -942,11 +942,8 @@ load_tester_config_t *load_tester_config_create() .unique_port = UNIQUE_PORT_START, ); - if (lib->settings->get_bool(lib->settings, - "%s.plugins.load-tester.request_virtual_ip", FALSE, lib->ns)) - { - this->vip = host_create_from_string("0.0.0.0", 0); - } + this->vips = lib->settings->get_bool(lib->settings, + "%s.plugins.load-tester.request_virtual_ip", FALSE, lib->ns); this->pool = lib->settings->get_str(lib->settings, "%s.plugins.load-tester.pool", NULL, lib->ns); this->initiator = lib->settings->get_str(lib->settings,