diff options
author | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-07-08 15:17:19 +0000 |
---|---|---|
committer | russell <russell@f38db490-d61c-443f-a65b-d21fe96a405b> | 2009-07-08 15:17:19 +0000 |
commit | aa0e8f1b3cea3d014c491e9cbf39b4bcd99def1a (patch) | |
tree | 64d823c71b2b948b5a724c62f8c4d49fc1d7640b /main/asterisk.c | |
parent | 703f20aebeec4f9f2cace0a06e4e0bad278807a4 (diff) |
Move OpenSSL initialization to a single place, make library usage thread-safe.
While doing some reading about OpenSSL, I noticed a couple of things that
needed to be improved with our usage of OpenSSL.
1) We had initialization of the library done in multiple modules. This has now
been moved to a core function that gets executed during Asterisk startup.
We already link OpenSSL into the core for TCP/TLS functionality, so this
was the most logical place to do it.
2) OpenSSL is not thread-safe by default. However, making it thread safe is
very easy. We just have to provide a couple of callbacks. One callback
returns a thread ID. The other handles locking. For more information,
start with the "Is OpenSSL thread-safe?" question on the FAQ page of
openssl.org.
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@205120 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'main/asterisk.c')
-rw-r--r-- | main/asterisk.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/main/asterisk.c b/main/asterisk.c index b497a64a5..3e9837641 100644 --- a/main/asterisk.c +++ b/main/asterisk.c @@ -3571,6 +3571,11 @@ int main(int argc, char *argv[]) exit(1); } + if (ast_ssl_init()) { + printf("%s", term_quit()); + exit(1); + } + #ifdef AST_XML_DOCS /* Load XML documentation. */ ast_xmldoc_load_documentation(); |