summaryrefslogtreecommitdiff
path: root/src/lib/libtls/tls.c
diff options
context:
space:
mode:
authorbeck <>2018-03-08 16:12:00 +0000
committerbeck <>2018-03-08 16:12:00 +0000
commit52e498cc6e72760b900f1eda649a36103523e200 (patch)
tree129a58367970ca215057c3451ac147df6c70055a /src/lib/libtls/tls.c
parent9778eb4189459056db4eb41f2366a9f43289f0ff (diff)
downloadopenbsd-52e498cc6e72760b900f1eda649a36103523e200.tar.gz
openbsd-52e498cc6e72760b900f1eda649a36103523e200.tar.bz2
openbsd-52e498cc6e72760b900f1eda649a36103523e200.zip
un-revert tls_init pthread_once change, now that stub is added so that builds work
Diffstat (limited to 'src/lib/libtls/tls.c')
-rw-r--r--src/lib/libtls/tls.c32
1 files changed, 20 insertions, 12 deletions
diff --git a/src/lib/libtls/tls.c b/src/lib/libtls/tls.c
index c0430d7cd1..e7a485bcec 100644
--- a/src/lib/libtls/tls.c
+++ b/src/lib/libtls/tls.c
@@ -1,4 +1,4 @@
1/* $OpenBSD: tls.c,v 1.77 2018/03/07 19:07:13 deraadt Exp $ */ 1/* $OpenBSD: tls.c,v 1.78 2018/03/08 16:12:00 beck Exp $ */
2/* 2/*
3 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org> 3 * Copyright (c) 2014 Joel Sing <jsing@openbsd.org>
4 * 4 *
@@ -19,6 +19,7 @@
19 19
20#include <errno.h> 20#include <errno.h>
21#include <limits.h> 21#include <limits.h>
22#include <pthread.h>
22#include <stdlib.h> 23#include <stdlib.h>
23#include <unistd.h> 24#include <unistd.h>
24 25
@@ -35,28 +36,35 @@
35 36
36static struct tls_config *tls_config_default; 37static struct tls_config *tls_config_default;
37 38
38int 39static int tls_init_rv = -1;
39tls_init(void)
40{
41 static int tls_initialised = 0;
42
43 if (tls_initialised)
44 return (0);
45 40
41static void
42tls_do_init(void)
43{
46 SSL_load_error_strings(); 44 SSL_load_error_strings();
47 SSL_library_init(); 45 SSL_library_init();
48 46
49 if (BIO_sock_init() != 1) 47 if (BIO_sock_init() != 1)
50 return (-1); 48 return;
51 49
52 if ((tls_config_default = tls_config_new()) == NULL) 50 if ((tls_config_default = tls_config_new()) == NULL)
53 return (-1); 51 return;
54 52
55 tls_config_default->refcount++; 53 tls_config_default->refcount++;
56 54
57 tls_initialised = 1; 55 tls_init_rv = 0;
56 return;
57}
58 58
59 return (0); 59int
60tls_init(void)
61{
62 static pthread_once_t once = PTHREAD_ONCE_INIT;
63
64 if (pthread_once(&once, tls_do_init) != 0)
65 return -1;
66
67 return tls_init_rv;
60} 68}
61 69
62const char * 70const char *