diff options
Diffstat (limited to '')
| -rw-r--r-- | src/lib/libssl/t1_meth.c | 28 |
1 files changed, 24 insertions, 4 deletions
diff --git a/src/lib/libssl/t1_meth.c b/src/lib/libssl/t1_meth.c index f5d8df634e..fcc243f782 100644 --- a/src/lib/libssl/t1_meth.c +++ b/src/lib/libssl/t1_meth.c | |||
| @@ -69,8 +69,28 @@ static SSL_METHOD *tls1_get_method(int ver) | |||
| 69 | return(NULL); | 69 | return(NULL); |
| 70 | } | 70 | } |
| 71 | 71 | ||
| 72 | IMPLEMENT_tls1_meth_func(TLSv1_method, | 72 | SSL_METHOD *TLSv1_method(void) |
| 73 | ssl3_accept, | 73 | { |
| 74 | ssl3_connect, | 74 | static int init=1; |
| 75 | tls1_get_method) | 75 | static SSL_METHOD TLSv1_data; |
| 76 | |||
| 77 | if (init) | ||
| 78 | { | ||
| 79 | CRYPTO_w_lock(CRYPTO_LOCK_SSL_METHOD); | ||
| 80 | |||
| 81 | if (init) | ||
| 82 | { | ||
| 83 | memcpy((char *)&TLSv1_data,(char *)tlsv1_base_method(), | ||
| 84 | sizeof(SSL_METHOD)); | ||
| 85 | TLSv1_data.ssl_connect=ssl3_connect; | ||
| 86 | TLSv1_data.ssl_accept=ssl3_accept; | ||
| 87 | TLSv1_data.get_ssl_method=tls1_get_method; | ||
| 88 | init=0; | ||
| 89 | } | ||
| 90 | |||
| 91 | CRYPTO_w_unlock(CRYPTO_LOCK_SSL_METHOD); | ||
| 92 | } | ||
| 93 | |||
| 94 | return(&TLSv1_data); | ||
| 95 | } | ||
| 76 | 96 | ||
