Merge pull request #2013 from surendratiwari3/no_evapi_client_send_failed
[sip-router] / src / modules / tls / utils / openssl_mutex_shared / README.md
1 # OpenSSL Shared Mutex #
2
3 This is a shared library required as a short term workaround for using Kamailio
4 with OpenSSL (libssl) v1.1. It has to be pre-loaded before starting Kamailio.
5
6 In v1.1, libssl does not allow setting custom locking functions, using internally
7 pthread mutexes and rwlocks, but they are not initialized with process shared
8 option (PTHREAD_PROCESS_SHARED), which can result in blocking Kamailio worker
9 processes.
10
11 ## Installation ##
12
13 By default, it is installed when the tls module is installed.
14
15 It can be installed manually, in this folder execute:
16
17 ```
18 make
19 make install
20 ```
21
22 It is installed at the same place where Kamailio deploys the directory with
23 modules.
24
25 For example, when installing from sources on a 64b system, the location is:
26
27 ```
28 /usr/local/lib64/kamailio/openssl_mutex_shared/openssl_mutex_shared.so
29 ```
30
31 For Debian packing, the location is like:
32
33 ```
34 /usr/lib/x86_64-linux-gnu/kamailio/openssl_mutex_shared/openssl_mutex_shared.so
35 ```
36
37 Note: there is no dependency on Kamailio source code, this shared object can
38 be compiled and used ouside of Kamailio source tree. It uses only Kamailio's
39 Makefile system to install in the same directory like the other shared objects
40 installed by Kamailio.
41
42 ## Usage ##
43
44 Use LD_PRELOAD to tell the linker to preload this shared object before starting
45 Kamailio.
46
47 Example, when Kamailio was installed from sources:
48
49 ```
50 LD_PRELOAD=/usr/local/lib64/kamailio/openssl_mutex_shared/openssl_mutex_shared.so \
51   /usr/local/sbin/kamailio -f /usr/local/etc/kamailio/kamailio.cfg
52 ```
53
54 If using systemd, add to service file:
55
56 ```
57 Environment='LD_PRELOAD=/usr/local/lib64/kamailio/openssl_mutex_shared/openssl_mutex_shared.so'
58 ```