diff options
author | Martin Willi <martin@strongswan.org> | 2007-04-23 12:59:10 +0000 |
---|---|---|
committer | Martin Willi <martin@strongswan.org> | 2007-04-23 12:59:10 +0000 |
commit | 17712ea86644c1d40b4492a3240534bde7608c06 (patch) | |
tree | b460c55a728c3d189d8ae35fa35d82c03abeae75 /src | |
parent | 63c477244dccc0d9abb0ca60002fb0486c2adf85 (diff) | |
download | strongswan-17712ea86644c1d40b4492a3240534bde7608c06.tar.bz2 strongswan-17712ea86644c1d40b4492a3240534bde7608c06.tar.xz |
fixed CHILD_SA proposal selection when not using DH exchange
Diffstat (limited to 'src')
-rw-r--r-- | src/charon/config/child_cfg.c | 11 |
1 files changed, 3 insertions, 8 deletions
diff --git a/src/charon/config/child_cfg.c b/src/charon/config/child_cfg.c index 440f7710b..e9f0e5249 100644 --- a/src/charon/config/child_cfg.c +++ b/src/charon/config/child_cfg.c @@ -175,26 +175,21 @@ static proposal_t* select_proposal(private_child_cfg_t*this, /* compare all stored proposals with all supplied. Stored ones are preferred. */ while (stored_iter->iterate(stored_iter, (void**)&stored)) { + stored = stored->clone(stored); supplied_iter->reset(supplied_iter); while (supplied_iter->iterate(supplied_iter, (void**)&supplied)) { if (strip_dh) { - /* remove DH groups on a copy */ - stored = stored->clone(stored); strip_dh_from_proposal(stored); - selected = stored->select(stored, supplied); - stored->destroy(stored); - } - else - { - selected = stored->select(stored, supplied); } + selected = stored->select(stored, supplied); if (selected) { break; } } + stored->destroy(stored); if (selected) { break; |