aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Grothoff <christian@grothoff.org>2013-09-23 12:09:46 +0000
committerChristian Grothoff <christian@grothoff.org>2013-09-23 12:09:46 +0000
commitc8ddb867ee13ea0cbe2f43c63f3aa1062565630c (patch)
tree65a205a36b7b0a479d967547ca3ed63591d453ac
parent902291420f08bee4813edcc2cf096072ddbf444c (diff)
downloadlibmicrohttpd-c8ddb867ee13ea0cbe2f43c63f3aa1062565630c.tar.gz
libmicrohttpd-c8ddb867ee13ea0cbe2f43c63f3aa1062565630c.zip
fully initialze modern gcrypt in MHD_init, only use thread initialization with legacy libgcrypt, update tests accordingly
-rw-r--r--src/microhttpd/daemon.c7
-rw-r--r--src/testcurl/https/test_empty_response.c4
-rw-r--r--src/testcurl/https/test_https_get.c7
-rw-r--r--src/testcurl/https/test_https_get_parallel.c2
-rw-r--r--src/testcurl/https/test_https_get_parallel_threads.c7
-rw-r--r--src/testcurl/https/test_https_get_select.c4
-rw-r--r--src/testcurl/https/test_https_multi_daemon.c4
-rw-r--r--src/testcurl/https/test_https_session_info.c4
-rw-r--r--src/testcurl/https/test_https_time_out.c2
-rw-r--r--src/testcurl/https/test_tls_authentication.c4
-rw-r--r--src/testcurl/https/test_tls_extensions.c6
-rw-r--r--src/testcurl/https/test_tls_options.c4
-rw-r--r--src/testcurl/test_digestauth.c2
-rw-r--r--src/testcurl/test_digestauth_with_arguments.c4
-rw-r--r--src/testcurl/test_postform.c4
15 files changed, 9 insertions, 56 deletions
diff --git a/src/microhttpd/daemon.c b/src/microhttpd/daemon.c
index 4fe80f23..0829eebc 100644
--- a/src/microhttpd/daemon.c
+++ b/src/microhttpd/daemon.c
@@ -3841,8 +3841,10 @@ MHD_get_version (void)
3841#endif // __GNUC__ 3841#endif // __GNUC__
3842 3842
3843#if HTTPS_SUPPORT 3843#if HTTPS_SUPPORT
3844#if GCRYPT_VERSION_NUMBER < 0x010600
3844GCRY_THREAD_OPTION_PTHREAD_IMPL; 3845GCRY_THREAD_OPTION_PTHREAD_IMPL;
3845#endif 3846#endif
3847#endif
3846 3848
3847 3849
3848/** 3850/**
@@ -3856,9 +3858,12 @@ MHD_init ()
3856 3858
3857#ifdef WINDOWS 3859#ifdef WINDOWS
3858 plibc_init ("GNU", "libmicrohttpd"); 3860 plibc_init ("GNU", "libmicrohttpd");
3859#endif 3861#endif#
3860#if HTTPS_SUPPORT 3862#if HTTPS_SUPPORT
3863#if GCRYPT_VERSION_NUMBER < 0x010600
3861 gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread); 3864 gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
3865#endif
3866 gcry_check_version (NULL);
3862 gnutls_global_init (); 3867 gnutls_global_init ();
3863#endif 3868#endif
3864} 3869}
diff --git a/src/testcurl/https/test_empty_response.c b/src/testcurl/https/test_empty_response.c
index abc2b30a..570febdd 100644
--- a/src/testcurl/https/test_empty_response.c
+++ b/src/testcurl/https/test_empty_response.c
@@ -183,16 +183,12 @@ testInternalSelectGet ()
183 return 0; 183 return 0;
184} 184}
185 185
186GCRY_THREAD_OPTION_PTHREAD_IMPL;
187 186
188int 187int
189main (int argc, char *const *argv) 188main (int argc, char *const *argv)
190{ 189{
191 unsigned int errorCount = 0; 190 unsigned int errorCount = 0;
192 191
193 gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
194 if (!gcry_check_version (GCRYPT_VERSION))
195 abort ();
196 if (0 != curl_global_init (CURL_GLOBAL_ALL)) 192 if (0 != curl_global_init (CURL_GLOBAL_ALL))
197 { 193 {
198 fprintf (stderr, "Error: %s\n", strerror (errno)); 194 fprintf (stderr, "Error: %s\n", strerror (errno));
diff --git a/src/testcurl/https/test_https_get.c b/src/testcurl/https/test_https_get.c
index 29e6d0eb..c44eb9ea 100644
--- a/src/testcurl/https/test_https_get.c
+++ b/src/testcurl/https/test_https_get.c
@@ -95,9 +95,6 @@ test_secure_get (FILE * test_fd,
95} 95}
96 96
97 97
98GCRY_THREAD_OPTION_PTHREAD_IMPL;
99
100
101int 98int
102main (int argc, char *const *argv) 99main (int argc, char *const *argv)
103{ 100{
@@ -106,11 +103,7 @@ main (int argc, char *const *argv)
106 const char *aes256_sha_sslv3 = "AES256-SHA"; 103 const char *aes256_sha_sslv3 = "AES256-SHA";
107 const char *des_cbc3_sha_tlsv1 = "DES-CBC3-SHA"; 104 const char *des_cbc3_sha_tlsv1 = "DES-CBC3-SHA";
108 105
109
110 if (!gcry_check_version (GCRYPT_VERSION))
111 abort ();
112 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0); 106 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0);
113 gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
114#ifdef GCRYCTL_INITIALIZATION_FINISHED 107#ifdef GCRYCTL_INITIALIZATION_FINISHED
115 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); 108 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
116#endif 109#endif
diff --git a/src/testcurl/https/test_https_get_parallel.c b/src/testcurl/https/test_https_get_parallel.c
index 33cf5e42..9ac330f0 100644
--- a/src/testcurl/https/test_https_get_parallel.c
+++ b/src/testcurl/https/test_https_get_parallel.c
@@ -121,7 +121,6 @@ test_parallel_clients (void * cls, const char *cipher_suite,
121 return 0; 121 return 0;
122} 122}
123 123
124GCRY_THREAD_OPTION_PTHREAD_IMPL;
125 124
126int 125int
127main (int argc, char *const *argv) 126main (int argc, char *const *argv)
@@ -132,7 +131,6 @@ main (int argc, char *const *argv)
132 /* initialize random seed used by curl clients */ 131 /* initialize random seed used by curl clients */
133 unsigned int iseed = (unsigned int) time (NULL); 132 unsigned int iseed = (unsigned int) time (NULL);
134 srand (iseed); 133 srand (iseed);
135 gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
136 if (0 != curl_global_init (CURL_GLOBAL_ALL)) 134 if (0 != curl_global_init (CURL_GLOBAL_ALL))
137 { 135 {
138 fprintf (stderr, "Error: %s\n", strerror (errno)); 136 fprintf (stderr, "Error: %s\n", strerror (errno));
diff --git a/src/testcurl/https/test_https_get_parallel_threads.c b/src/testcurl/https/test_https_get_parallel_threads.c
index dea6e754..84ce0a18 100644
--- a/src/testcurl/https/test_https_get_parallel_threads.c
+++ b/src/testcurl/https/test_https_get_parallel_threads.c
@@ -123,10 +123,6 @@ test_parallel_clients (void *cls, const char *cipher_suite,
123} 123}
124 124
125 125
126
127GCRY_THREAD_OPTION_PTHREAD_IMPL;
128
129
130int 126int
131main (int argc, char *const *argv) 127main (int argc, char *const *argv)
132{ 128{
@@ -136,9 +132,6 @@ main (int argc, char *const *argv)
136 /* initialize random seed used by curl clients */ 132 /* initialize random seed used by curl clients */
137 unsigned int iseed = (unsigned int) time (NULL); 133 unsigned int iseed = (unsigned int) time (NULL);
138 134
139
140 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0);
141 gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
142#ifdef GCRYCTL_INITIALIZATION_FINISHED 135#ifdef GCRYCTL_INITIALIZATION_FINISHED
143 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); 136 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
144#endif 137#endif
diff --git a/src/testcurl/https/test_https_get_select.c b/src/testcurl/https/test_https_get_select.c
index 70a16425..ad3142d6 100644
--- a/src/testcurl/https/test_https_get_select.c
+++ b/src/testcurl/https/test_https_get_select.c
@@ -206,16 +206,12 @@ testExternalGet (int flags)
206 return 0; 206 return 0;
207} 207}
208 208
209GCRY_THREAD_OPTION_PTHREAD_IMPL;
210 209
211int 210int
212main (int argc, char *const *argv) 211main (int argc, char *const *argv)
213{ 212{
214 unsigned int errorCount = 0; 213 unsigned int errorCount = 0;
215 214
216 gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
217 if (!gcry_check_version (GCRYPT_VERSION))
218 abort ();
219 if (0 != curl_global_init (CURL_GLOBAL_ALL)) 215 if (0 != curl_global_init (CURL_GLOBAL_ALL))
220 { 216 {
221 fprintf (stderr, "Error: %s\n", strerror (errno)); 217 fprintf (stderr, "Error: %s\n", strerror (errno));
diff --git a/src/testcurl/https/test_https_multi_daemon.c b/src/testcurl/https/test_https_multi_daemon.c
index 30b76713..e25513d1 100644
--- a/src/testcurl/https/test_https_multi_daemon.c
+++ b/src/testcurl/https/test_https_multi_daemon.c
@@ -91,9 +91,6 @@ test_concurent_daemon_pair (void *cls,
91} 91}
92 92
93 93
94GCRY_THREAD_OPTION_PTHREAD_IMPL;
95
96
97int 94int
98main (int argc, char *const *argv) 95main (int argc, char *const *argv)
99{ 96{
@@ -101,7 +98,6 @@ main (int argc, char *const *argv)
101 FILE *cert; 98 FILE *cert;
102 99
103 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0); 100 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0);
104 gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
105#ifdef GCRYCTL_INITIALIZATION_FINISHED 101#ifdef GCRYCTL_INITIALIZATION_FINISHED
106 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); 102 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
107#endif 103#endif
diff --git a/src/testcurl/https/test_https_session_info.c b/src/testcurl/https/test_https_session_info.c
index aac3dcea..cc590227 100644
--- a/src/testcurl/https/test_https_session_info.c
+++ b/src/testcurl/https/test_https_session_info.c
@@ -151,16 +151,12 @@ test_query_session ()
151} 151}
152 152
153 153
154GCRY_THREAD_OPTION_PTHREAD_IMPL;
155
156
157int 154int
158main (int argc, char *const *argv) 155main (int argc, char *const *argv)
159{ 156{
160 unsigned int errorCount = 0; 157 unsigned int errorCount = 0;
161 158
162 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0); 159 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0);
163 gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
164#ifdef GCRYCTL_INITIALIZATION_FINISHED 160#ifdef GCRYCTL_INITIALIZATION_FINISHED
165 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); 161 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
166#endif 162#endif
diff --git a/src/testcurl/https/test_https_time_out.c b/src/testcurl/https/test_https_time_out.c
index 112f5390..369bb861 100644
--- a/src/testcurl/https/test_https_time_out.c
+++ b/src/testcurl/https/test_https_time_out.c
@@ -90,7 +90,6 @@ test_tls_session_time_out (gnutls_session_t session)
90 return 0; 90 return 0;
91} 91}
92 92
93GCRY_THREAD_OPTION_PTHREAD_IMPL;
94 93
95int 94int
96main (int argc, char *const *argv) 95main (int argc, char *const *argv)
@@ -104,7 +103,6 @@ main (int argc, char *const *argv)
104 103
105 104
106 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0); 105 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0);
107 gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
108#ifdef GCRYCTL_INITIALIZATION_FINISHED 106#ifdef GCRYCTL_INITIALIZATION_FINISHED
109 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); 107 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
110#endif 108#endif
diff --git a/src/testcurl/https/test_tls_authentication.c b/src/testcurl/https/test_tls_authentication.c
index 42a33b4c..17942cf6 100644
--- a/src/testcurl/https/test_tls_authentication.c
+++ b/src/testcurl/https/test_tls_authentication.c
@@ -69,16 +69,12 @@ test_secure_get (void * cls, char *cipher_suite, int proto_version)
69} 69}
70 70
71 71
72GCRY_THREAD_OPTION_PTHREAD_IMPL;
73
74
75int 72int
76main (int argc, char *const *argv) 73main (int argc, char *const *argv)
77{ 74{
78 unsigned int errorCount = 0; 75 unsigned int errorCount = 0;
79 76
80 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0); 77 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0);
81 gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
82#ifdef GCRYCTL_INITIALIZATION_FINISHED 78#ifdef GCRYCTL_INITIALIZATION_FINISHED
83 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); 79 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
84#endif 80#endif
diff --git a/src/testcurl/https/test_tls_extensions.c b/src/testcurl/https/test_tls_extensions.c
index 2859fd9e..6ad3b97a 100644
--- a/src/testcurl/https/test_tls_extensions.c
+++ b/src/testcurl/https/test_tls_extensions.c
@@ -193,7 +193,6 @@ cleanup:
193 return ret; 193 return ret;
194} 194}
195 195
196GCRY_THREAD_OPTION_PTHREAD_IMPL
197 196
198int 197int
199main (int argc, char *const *argv) 198main (int argc, char *const *argv)
@@ -206,13 +205,12 @@ main (int argc, char *const *argv)
206 gnutls_datum_t cert; 205 gnutls_datum_t cert;
207 gnutls_certificate_credentials_t xcred; 206 gnutls_certificate_credentials_t xcred;
208 207
209 int ext_arr[] = { GNUTLS_EXTENSION_SERVER_NAME, 208 const int ext_arr[] = {
209 GNUTLS_EXTENSION_SERVER_NAME,
210 -1 210 -1
211 }; 211 };
212 212
213
214 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0); 213 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0);
215 gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
216#ifdef GCRYCTL_INITIALIZATION_FINISHED 214#ifdef GCRYCTL_INITIALIZATION_FINISHED
217 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); 215 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
218#endif 216#endif
diff --git a/src/testcurl/https/test_tls_options.c b/src/testcurl/https/test_tls_options.c
index e7c85cea..17896b65 100644
--- a/src/testcurl/https/test_tls_options.c
+++ b/src/testcurl/https/test_tls_options.c
@@ -75,7 +75,6 @@ test_unmatching_ssl_version (void * cls, const char *cipher_suite,
75 return 0; 75 return 0;
76} 76}
77 77
78GCRY_THREAD_OPTION_PTHREAD_IMPL;
79 78
80/* setup a temporary transfer test file */ 79/* setup a temporary transfer test file */
81int 80int
@@ -83,12 +82,11 @@ main (int argc, char *const *argv)
83{ 82{
84 unsigned int errorCount = 0; 83 unsigned int errorCount = 0;
85 const char *ssl_version; 84 const char *ssl_version;
86
87 int daemon_flags = 85 int daemon_flags =
88 MHD_USE_THREAD_PER_CONNECTION | MHD_USE_SSL | MHD_USE_DEBUG; 86 MHD_USE_THREAD_PER_CONNECTION | MHD_USE_SSL | MHD_USE_DEBUG;
87
89 gcry_control (GCRYCTL_DISABLE_SECMEM, 0); 88 gcry_control (GCRYCTL_DISABLE_SECMEM, 0);
90 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0); 89 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0);
91 gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
92#ifdef GCRYCTL_INITIALIZATION_FINISHED 90#ifdef GCRYCTL_INITIALIZATION_FINISHED
93 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); 91 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
94#endif 92#endif
diff --git a/src/testcurl/test_digestauth.c b/src/testcurl/test_digestauth.c
index d6c145f1..4838fc37 100644
--- a/src/testcurl/test_digestauth.c
+++ b/src/testcurl/test_digestauth.c
@@ -222,7 +222,6 @@ testDigestAuth ()
222 return 0; 222 return 0;
223} 223}
224 224
225GCRY_THREAD_OPTION_PTHREAD_IMPL;
226 225
227 226
228int 227int
@@ -231,7 +230,6 @@ main (int argc, char *const *argv)
231 unsigned int errorCount = 0; 230 unsigned int errorCount = 0;
232 231
233 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0); 232 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0);
234 gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
235#ifdef GCRYCTL_INITIALIZATION_FINISHED 233#ifdef GCRYCTL_INITIALIZATION_FINISHED
236 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); 234 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
237#endif 235#endif
diff --git a/src/testcurl/test_digestauth_with_arguments.c b/src/testcurl/test_digestauth_with_arguments.c
index 08761fad..fb99fb7a 100644
--- a/src/testcurl/test_digestauth_with_arguments.c
+++ b/src/testcurl/test_digestauth_with_arguments.c
@@ -222,16 +222,12 @@ testDigestAuth ()
222} 222}
223 223
224 224
225GCRY_THREAD_OPTION_PTHREAD_IMPL;
226
227
228int 225int
229main (int argc, char *const *argv) 226main (int argc, char *const *argv)
230{ 227{
231 unsigned int errorCount = 0; 228 unsigned int errorCount = 0;
232 229
233 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0); 230 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0);
234 gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
235#ifdef GCRYCTL_INITIALIZATION_FINISHED 231#ifdef GCRYCTL_INITIALIZATION_FINISHED
236 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); 232 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
237#endif 233#endif
diff --git a/src/testcurl/test_postform.c b/src/testcurl/test_postform.c
index 61e3fdf6..da9eac33 100644
--- a/src/testcurl/test_postform.c
+++ b/src/testcurl/test_postform.c
@@ -463,16 +463,12 @@ testExternalPost ()
463} 463}
464 464
465 465
466GCRY_THREAD_OPTION_PTHREAD_IMPL;
467
468
469int 466int
470main (int argc, char *const *argv) 467main (int argc, char *const *argv)
471{ 468{
472 unsigned int errorCount = 0; 469 unsigned int errorCount = 0;
473 470
474 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0); 471 gcry_control (GCRYCTL_ENABLE_QUICK_RANDOM, 0);
475 gcry_control (GCRYCTL_SET_THREAD_CBS, &gcry_threads_pthread);
476#ifdef GCRYCTL_INITIALIZATION_FINISHED 472#ifdef GCRYCTL_INITIALIZATION_FINISHED
477 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0); 473 gcry_control (GCRYCTL_INITIALIZATION_FINISHED, 0);
478#endif 474#endif