diff options
author | Russell Bryant <russell@russellbryant.com> | 2009-07-08 15:17:19 +0000 |
---|---|---|
committer | Russell Bryant <russell@russellbryant.com> | 2009-07-08 15:17:19 +0000 |
commit | 0e8c6302240c78d6b86284aaeab25693c1c6d444 (patch) | |
tree | 64d823c71b2b948b5a724c62f8c4d49fc1d7640b /main/asterisk.c | |
parent | acc8bbbaf53e0c6e1ef45e4b6195f8c67621da8a (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: https://origsvn.digium.com/svn/asterisk/trunk@205120 65c4cc65-6c06-0410-ace0-fbb531ad65f3
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(); |