From: Martin Willi Date: Tue, 5 Jun 2012 13:27:34 +0000 (+0200) Subject: Use traffic selectors passed to quick mode constructor as initiator X-Git-Tag: 5.0.0~186 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d61f2906d4543de716d26634bc3a5d75ecf2aa34;p=thirdparty%2Fstrongswan.git Use traffic selectors passed to quick mode constructor as initiator --- diff --git a/src/libcharon/sa/ikev1/tasks/quick_mode.c b/src/libcharon/sa/ikev1/tasks/quick_mode.c index 4eefe6f6e5..663f2c0632 100644 --- a/src/libcharon/sa/ikev1/tasks/quick_mode.c +++ b/src/libcharon/sa/ikev1/tasks/quick_mode.c @@ -717,8 +717,14 @@ METHOD(task_t, build_i, status_t, } add_ke(this, message); } - this->tsi = select_ts(this, TRUE, NULL); - this->tsr = select_ts(this, FALSE, NULL); + if (!this->tsi) + { + this->tsi = select_ts(this, TRUE, NULL); + } + if (!this->tsr) + { + this->tsr = select_ts(this, FALSE, NULL); + } tsi = linked_list_create(); tsr = linked_list_create(); tsi->insert_last(tsi, this->tsi); @@ -1186,6 +1192,8 @@ quick_mode_t *quick_mode_create(ike_sa_t *ike_sa, child_cfg_t *config, .config = config, .keymat = (keymat_v1_t*)ike_sa->get_keymat(ike_sa), .state = QM_INIT, + .tsi = tsi ? tsi->clone(tsi) : NULL, + .tsr = tsr ? tsr->clone(tsr) : NULL, ); if (config)