From: Martin Willi Date: Mon, 18 Apr 2011 13:43:59 +0000 (+0200) Subject: Add NO_EXT_SEQ_NUMBER to proposal only if it has not been specified in string X-Git-Tag: 4.5.2~76 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=390b38b8c98151df7326185d83cd95b56e95a068;p=thirdparty%2Fstrongswan.git Add NO_EXT_SEQ_NUMBER to proposal only if it has not been specified in string --- diff --git a/src/libcharon/config/proposal.c b/src/libcharon/config/proposal.c index 956edac21a..2251b82dd7 100644 --- a/src/libcharon/config/proposal.c +++ b/src/libcharon/config/proposal.c @@ -544,6 +544,16 @@ static void check_proposal(private_proposal_t *this) free(alg); } } + + if (this->protocol == PROTO_AH || this->protocol == PROTO_ESP) + { + e = this->esns->create_enumerator(this->esns); + if (!e->enumerate(e, &alg)) + { /* ESN not specified, assume not supported */ + add_algorithm(this, EXTENDED_SEQUENCE_NUMBERS, NO_EXT_SEQ_NUMBERS, 0); + } + e->destroy(e); + } } /** @@ -913,9 +923,5 @@ proposal_t *proposal_create_from_string(protocol_id_t protocol, const char *algs check_proposal(this); - if (protocol == PROTO_AH || protocol == PROTO_ESP) - { - add_algorithm(this, EXTENDED_SEQUENCE_NUMBERS, NO_EXT_SEQ_NUMBERS, 0); - } return &this->public; }