diff options
author | Sean Bright <sean.bright@gmail.com> | 2018-05-02 08:43:35 -0400 |
---|---|---|
committer | Sean Bright <sean.bright@gmail.com> | 2018-05-02 07:06:07 -0600 |
commit | 239074c75977043cc4f7150c8ebba94cde6de66a (patch) | |
tree | c0c2afa8247a6b37eb21893ff096d0bfb2098705 /res/res_pjsip | |
parent | f633af89c1d69734589dac2cb16f6de46301c9d6 (diff) |
pjsip: Increase maximum number of usable ciphers & other cleanups
* Increase maximum number of ciphers from 100 to 256 (or whatever
PJ_SSL_SOCK_MAX_CIPHERS is #define'd to)
* Simplify logic in cipher_name_to_id()
* Make signed/unsigned comparison consistent
Re: https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=897412
Reported by: Ondřej Holas
Change-Id: Iea620f03915a1b873e79743154255c3148a514e7
Diffstat (limited to 'res/res_pjsip')
-rw-r--r-- | res/res_pjsip/config_transport.c | 21 |
1 files changed, 8 insertions, 13 deletions
diff --git a/res/res_pjsip/config_transport.c b/res/res_pjsip/config_transport.c index dd7c7049d..20324ed9a 100644 --- a/res/res_pjsip/config_transport.c +++ b/res/res_pjsip/config_transport.c @@ -977,27 +977,22 @@ static int tls_method_to_str(const void *obj, const intptr_t *args, char **buf) /*! \brief Helper function which turns a cipher name into an identifier */ static pj_ssl_cipher cipher_name_to_id(const char *name) { - pj_ssl_cipher ciphers[100]; - pj_ssl_cipher id = 0; + pj_ssl_cipher ciphers[PJ_SSL_SOCK_MAX_CIPHERS]; unsigned int cipher_num = PJ_ARRAY_SIZE(ciphers); - int pos; - const char *pos_name; + unsigned int pos; if (pj_ssl_cipher_get_availables(ciphers, &cipher_num)) { return 0; } for (pos = 0; pos < cipher_num; ++pos) { - pos_name = pj_ssl_cipher_name(ciphers[pos]); - if (!pos_name || strcmp(pos_name, name)) { - continue; + const char *pos_name = pj_ssl_cipher_name(ciphers[pos]); + if (pos_name && !strcmp(pos_name, name)) { + return ciphers[pos]; } - - id = ciphers[pos]; - break; } - return id; + return 0; } /*! @@ -1072,7 +1067,7 @@ static int transport_tls_cipher_handler(const struct aco_option *opt, struct ast static void cipher_to_str(char **buf, const pj_ssl_cipher *ciphers, unsigned int cipher_num) { struct ast_str *str; - int idx; + unsigned int idx; str = ast_str_create(128); if (!str) { @@ -1106,7 +1101,7 @@ static int transport_tls_cipher_to_str(const void *obj, const intptr_t *args, ch static char *handle_pjsip_list_ciphers(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a) { - pj_ssl_cipher ciphers[100]; + pj_ssl_cipher ciphers[PJ_SSL_SOCK_MAX_CIPHERS]; unsigned int cipher_num = PJ_ARRAY_SIZE(ciphers); char *buf; |