Module: kamailio Branch: 5.7 Commit: 9a87d12d6e9e68cd8c0ff7ac5755e899cf81b703 URL: https://github.com/kamailio/kamailio/commit/9a87d12d6e9e68cd8c0ff7ac5755e899cf81b703
Author: S-P Chan <shihping.c...@gmail.com> Committer: S-P Chan <shihping.c...@gmail.com> Date: 2024-02-04T08:12:48+08:00 outbound: init libssl in a thread - use core/rthreads.h - Xenial(OpenSSL < 1.1.1) fixes From: - 94f6df509bf77c19c745749716a9e075ec17f3c7 - 8bdd9ca4b3c3d4f9f2f201b0a9e0ad9a61eee41d --- Modified: src/modules/outbound/outbound_mod.c --- Diff: https://github.com/kamailio/kamailio/commit/9a87d12d6e9e68cd8c0ff7ac5755e899cf81b703.diff Patch: https://github.com/kamailio/kamailio/commit/9a87d12d6e9e68cd8c0ff7ac5755e899cf81b703.patch --- diff --git a/src/modules/outbound/outbound_mod.c b/src/modules/outbound/outbound_mod.c index e2e3a86a73b..e5ed1712607 100644 --- a/src/modules/outbound/outbound_mod.c +++ b/src/modules/outbound/outbound_mod.c @@ -40,6 +40,10 @@ #include "../../core/parser/parse_uri.h" #include "../../core/parser/parse_supported.h" +#define KSR_RTHREAD_SKIP_P +#define KSR_RTHREAD_NEED_V +#include "../../core/rthreads.h" + #include "api.h" #include "config.h" @@ -75,26 +79,25 @@ struct module_exports exports = { destroy /* destroy function */ }; -static void *mod_init_openssl(void *arg) { - if(flow_token_secret.s) { - assert(ob_key.len == SHA_DIGEST_LENGTH); - LM_DBG("flow_token_secret mod param set. use persistent ob_key"); +static void mod_init_openssl(void) +{ + if(flow_token_secret.s) { + assert(ob_key.len == SHA_DIGEST_LENGTH); + LM_DBG("flow_token_secret mod param set. use persistent ob_key"); #if OPENSSL_VERSION_NUMBER < 0x030000000L - SHA1((const unsigned char *)flow_token_secret.s, flow_token_secret.len, - (unsigned char *)ob_key.s); + SHA1((const unsigned char *)flow_token_secret.s, flow_token_secret.len, + (unsigned char *)ob_key.s); #else - EVP_Q_digest(NULL, "SHA1", NULL, flow_token_secret.s, - flow_token_secret.len, (unsigned char *)ob_key.s, NULL); + EVP_Q_digest(NULL, "SHA1", NULL, flow_token_secret.s, + flow_token_secret.len, (unsigned char *)ob_key.s, NULL); #endif - } else { - if(RAND_bytes((unsigned char *)ob_key.s, ob_key.len) == 0) { - LM_ERR("unable to get %d cryptographically strong pseudo-" - "random bytes\n", - ob_key.len); - } - } - - return NULL; + } else { + if(RAND_bytes((unsigned char *)ob_key.s, ob_key.len) == 0) { + LM_ERR("unable to get %d cryptographically strong pseudo-" + "random bytes\n", + ob_key.len); + } + } } static int mod_init(void) @@ -116,12 +119,9 @@ static int mod_init(void) ob_key.len = OB_KEY_LEN; #if OPENSSL_VERSION_NUMBER < 0x010101000L - mod_init_openssl(NULL); + mod_init_openssl(); #else - pthread_t tid; - void *retval; - pthread_create(&tid, NULL, mod_init_openssl, NULL); - pthread_join(tid, &retval); + run_threadV(mod_init_openssl); #endif if(cfg_declare("outbound", outbound_cfg_def, &default_outbound_cfg, _______________________________________________ Kamailio (SER) - Development Mailing List To unsubscribe send an email to sr-dev-le...@lists.kamailio.org