Module: kamailio Branch: 5.7 Commit: cf764b499fbc3f28f7ed080b488e0e8111687cf8 URL: https://github.com/kamailio/kamailio/commit/cf764b499fbc3f28f7ed080b488e0e8111687cf8
Author: S-P Chan <shihping.c...@gmail.com> Committer: S-P Chan <shihping.c...@gmail.com> Date: 2024-03-23T21:09:14+08:00 tls: new option tls_threads_mode = 2 - use pthread_atfork to force all thread-locals to 0x0 after fork() (cherry picked from commit 464299c202f3ba963aed821b777075397e843856) --- Modified: src/modules/tls/tls_mod.c --- Diff: https://github.com/kamailio/kamailio/commit/cf764b499fbc3f28f7ed080b488e0e8111687cf8.diff Patch: https://github.com/kamailio/kamailio/commit/cf764b499fbc3f28f7ed080b488e0e8111687cf8.patch --- diff --git a/src/modules/tls/tls_mod.c b/src/modules/tls/tls_mod.c index c34c9933b1d..51e88bed51f 100644 --- a/src/modules/tls/tls_mod.c +++ b/src/modules/tls/tls_mod.c @@ -337,6 +337,20 @@ static tls_domains_cfg_t* tls_use_modparams(void) } #endif +/* global config tls_threads_mode = 2 + * - force all thread-locals to be 0x0 after fork() + * - with OpenSSL loaded the largest value observed + * is < 10 + * + */ +static void fork_child(void) +{ + for(int k = 0; k < 16; k++) { + if(pthread_getspecific(k) != 0) + pthread_setspecific(k, 0x0); + } +} + static int mod_init(void) { int method; @@ -446,6 +460,9 @@ static int mod_init(void) ksr_module_set_flag(KSRMOD_FLAG_POSTCHILDINIT); } #endif + if(ksr_tls_threads_mode == 2) { + pthread_atfork(NULL, NULL, &fork_child); + } return 0; error: tls_h_mod_destroy_f(); _______________________________________________ Kamailio (SER) - Development Mailing List To unsubscribe send an email to sr-dev-le...@lists.kamailio.org