summaryrefslogtreecommitdiff
path: root/main/asterisk.c
diff options
context:
space:
mode:
authorRussell Bryant <russell@russellbryant.com>2009-07-08 15:17:19 +0000
committerRussell Bryant <russell@russellbryant.com>2009-07-08 15:17:19 +0000
commit0e8c6302240c78d6b86284aaeab25693c1c6d444 (patch)
tree64d823c71b2b948b5a724c62f8c4d49fc1d7640b /main/asterisk.c
parentacc8bbbaf53e0c6e1ef45e4b6195f8c67621da8a (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.c5
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();