diff options
Diffstat (limited to 'src/charon/config/connections/connection.c')
-rw-r--r-- | src/charon/config/connections/connection.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/charon/config/connections/connection.c b/src/charon/config/connections/connection.c index 9a90f765a..a938d8b64 100644 --- a/src/charon/config/connections/connection.c +++ b/src/charon/config/connections/connection.c @@ -200,20 +200,20 @@ static diffie_hellman_group_t get_dh_group(private_connection_t *this) iterator_t *iterator; proposal_t *proposal; algorithm_t *algo; + diffie_hellman_group_t dh_group = MODP_NONE; iterator = this->proposals->create_iterator(this->proposals, TRUE); while (iterator->has_next(iterator)) { iterator->current(iterator, (void**)&proposal); - proposal->get_algorithm(proposal, DIFFIE_HELLMAN_GROUP, &algo); - if (algo) + if (proposal->get_algorithm(proposal, DIFFIE_HELLMAN_GROUP, &algo)) { - iterator->destroy(iterator); - return algo->algorithm; + dh_group = algo->algorithm; + break; } } iterator->destroy(iterator); - return MODP_NONE; + return dh_group; } /** |