diff options
Diffstat (limited to 'plugins')
-rw-r--r-- | plugins/sslutils.c | 16 |
1 files changed, 9 insertions, 7 deletions
diff --git a/plugins/sslutils.c b/plugins/sslutils.c index 84a1c8f..8d2e93c 100644 --- a/plugins/sslutils.c +++ b/plugins/sslutils.c | |||
@@ -38,15 +38,17 @@ | |||
38 | #ifdef HAVE_SSL | 38 | #ifdef HAVE_SSL |
39 | static SSL_CTX *c=NULL; | 39 | static SSL_CTX *c=NULL; |
40 | static SSL *s=NULL; | 40 | static SSL *s=NULL; |
41 | static int initialized=0; | ||
41 | 42 | ||
42 | int np_net_ssl_init (int sd){ | 43 | int np_net_ssl_init (int sd){ |
43 | SSL_METHOD *m=NULL; | 44 | if (!initialized) { |
44 | /* Initialize SSL context */ | 45 | /* Initialize SSL context */ |
45 | SSLeay_add_ssl_algorithms (); | 46 | SSLeay_add_ssl_algorithms (); |
46 | m = SSLv23_client_method (); | 47 | SSL_load_error_strings (); |
47 | SSL_load_error_strings (); | 48 | OpenSSL_add_all_algorithms (); |
48 | OpenSSL_add_all_algorithms(); | 49 | initialized = 1; |
49 | if ((c = SSL_CTX_new (m)) == NULL) { | 50 | } |
51 | if ((c = SSL_CTX_new (SSLv23_client_method ())) == NULL) { | ||
50 | printf ("%s\n", _("CRITICAL - Cannot create SSL context.")); | 52 | printf ("%s\n", _("CRITICAL - Cannot create SSL context.")); |
51 | return STATE_CRITICAL; | 53 | return STATE_CRITICAL; |
52 | } | 54 | } |