diff options
author | Nanang Izzuddin <nanang@teluu.com> | 2015-06-01 03:44:16 +0000 |
---|---|---|
committer | Nanang Izzuddin <nanang@teluu.com> | 2015-06-01 03:44:16 +0000 |
commit | aaa478efe114f6a1d4e12432be9808ac1b7090c2 (patch) | |
tree | cbd911f04d63301d2a57341a409c4f2a79c85c5f /pjmedia/src | |
parent | 5bb6d872c7bd5a258152fcb57b16acaf3012385f (diff) |
Close #1856: Offer only current active crypto on re-INVITE.
git-svn-id: http://svn.pjsip.org/repos/pjproject/trunk@5103 74dad513-b988-da41-8d7b-12977e46ad98
Diffstat (limited to 'pjmedia/src')
-rw-r--r-- | pjmedia/src/pjmedia/transport_srtp.c | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/pjmedia/src/pjmedia/transport_srtp.c b/pjmedia/src/pjmedia/transport_srtp.c index 3b4b2f2c..59d5dd81 100644 --- a/pjmedia/src/pjmedia/transport_srtp.c +++ b/pjmedia/src/pjmedia/transport_srtp.c @@ -1363,8 +1363,17 @@ static pj_status_t transport_encode_sdp(pjmedia_transport *tp, /* Generate crypto attribute if not yet */ if (pjmedia_sdp_media_find_attr(m_loc, &ID_CRYPTO, NULL) == NULL) { + /* Offer only current active crypto if any, otherwise offer all + * crypto-suites in the setting. + */ for (i=0; i<srtp->setting.crypto_count; ++i) { - /* Offer crypto-suites based on setting. */ + if (srtp->tx_policy.name.slen && + pj_stricmp(&srtp->tx_policy.name, + &srtp->setting.crypto[i].name) != 0) + { + continue; + } + buffer_len = MAXLEN; status = generate_crypto_attr_value(srtp->pool, buffer, &buffer_len, &srtp->setting.crypto[i], |