Commit 4c492af79d123d8c5d82779ed58f84888fe19e58
1 parent
f42e13da
Exists in
master
and in
3 other branches
Fixing thread issue on custom certificate loading.
Showing
1 changed file
with
13 additions
and
43 deletions
Show diff stats
src/ssl/windows/init.c
@@ -107,37 +107,23 @@ int ssl_ctx_init(H3270 *hSession, SSL_ERROR_MESSAGE * message) | @@ -107,37 +107,23 @@ int ssl_ctx_init(H3270 *hSession, SSL_ERROR_MESSAGE * message) | ||
107 | 107 | ||
108 | if(hFind == INVALID_HANDLE_VALUE) | 108 | if(hFind == INVALID_HANDLE_VALUE) |
109 | { | 109 | { |
110 | - lib3270_autoptr(char) message = lib3270_strdup_printf( _( "Can't read SSL certificates from \"%s\"" ), certpath); | ||
111 | - | ||
112 | - lib3270_popup_dialog( | ||
113 | - hSession, | ||
114 | - LIB3270_NOTIFY_ERROR, | ||
115 | - N_( "Security error" ), | ||
116 | - message, | ||
117 | - _("The windows error code was %d"), (int) GetLastError() | ||
118 | - ); | 110 | + message->title = N_( "Security error" ); |
111 | + message->text = N_( "Cant open custom certificate directory." ); | ||
119 | 112 | ||
113 | + trace_ssl(hSession, _( "Can't open \"%s\" (The Windows error code was %ld)" ), certpath, (long) GetLastError()); | ||
120 | } | 114 | } |
121 | else | 115 | else |
122 | { | 116 | { |
123 | do | 117 | do |
124 | { | 118 | { |
125 | - char * filename = lib3270_build_data_filename("certs",ffd.cFileName,NULL); | 119 | + char * filename = lib3270_build_data_filename("certs", ffd.cFileName, NULL); |
126 | 120 | ||
127 | debug("Loading \"%s\"",filename); | 121 | debug("Loading \"%s\"",filename); |
128 | 122 | ||
129 | FILE *fp = fopen(filename,"r"); | 123 | FILE *fp = fopen(filename,"r"); |
130 | if(!fp) { | 124 | if(!fp) { |
131 | 125 | ||
132 | - lib3270_autoptr(char) message = lib3270_strdup_printf( _( "Can't open \"%s\"" ), filename); | ||
133 | - | ||
134 | - lib3270_popup_dialog( | ||
135 | - hSession, | ||
136 | - LIB3270_NOTIFY_ERROR, | ||
137 | - N_( "Security error" ), | ||
138 | - message, | ||
139 | - "%s", strerror(errno) | ||
140 | - ); | 126 | + trace_ssl(hSession, _( "Can't open \"%s\": %s" ), filename, strerror(errno)); |
141 | 127 | ||
142 | } | 128 | } |
143 | else | 129 | else |
@@ -146,36 +132,22 @@ int ssl_ctx_init(H3270 *hSession, SSL_ERROR_MESSAGE * message) | @@ -146,36 +132,22 @@ int ssl_ctx_init(H3270 *hSession, SSL_ERROR_MESSAGE * message) | ||
146 | 132 | ||
147 | if(!cert) | 133 | if(!cert) |
148 | { | 134 | { |
149 | - int ssl_error = ERR_get_error(); | ||
150 | - | ||
151 | - lib3270_autoptr(char) message = lib3270_strdup_printf( _( "Can't read \"%s\"" ), filename); | ||
152 | - | ||
153 | - lib3270_popup_dialog( | ||
154 | - hSession, | ||
155 | - LIB3270_NOTIFY_ERROR, | ||
156 | - N_( "Security error" ), | ||
157 | - message, | ||
158 | - "%s", ERR_lib_error_string(ssl_error) | ||
159 | - ); | 135 | + message->error = hSession->ssl.error = ERR_get_error(); |
136 | + message->title = N_( "Security error" ); | ||
137 | + message->text = N_( "Cant read custom certificate file." ); | ||
160 | 138 | ||
139 | + trace_ssl(hSession, _( "Can't read \"%s\": %s" ), filename, ERR_lib_error_string(hSession->ssl.error)); | ||
161 | } | 140 | } |
162 | else | 141 | else |
163 | { | 142 | { |
164 | - trace_ssl(hSession,"Loading %s\n",filename); | ||
165 | 143 | ||
166 | if(X509_STORE_add_cert(store, cert) != 1) | 144 | if(X509_STORE_add_cert(store, cert) != 1) |
167 | { | 145 | { |
168 | - int ssl_error = ERR_get_error(); | ||
169 | - | ||
170 | - lib3270_autoptr(char) message = lib3270_strdup_printf( _( "Can't load \"%s\"" ), filename); | 146 | + message->error = hSession->ssl.error = ERR_get_error(); |
147 | + message->title = N_( "Security error" ); | ||
148 | + message->text = N_( "Cant load custom certificate file." ); | ||
171 | 149 | ||
172 | - lib3270_popup_dialog( | ||
173 | - hSession, | ||
174 | - LIB3270_NOTIFY_ERROR, | ||
175 | - N_( "Security error" ), | ||
176 | - message, | ||
177 | - "%s", ERR_lib_error_string(ssl_error) | ||
178 | - ); | 150 | + trace_ssl(hSession, _( "Can't load \"%s\": %s" ), filename, ERR_lib_error_string(hSession->ssl.error)); |
179 | } | 151 | } |
180 | 152 | ||
181 | X509_free(cert); | 153 | X509_free(cert); |
@@ -191,8 +163,6 @@ int ssl_ctx_init(H3270 *hSession, SSL_ERROR_MESSAGE * message) | @@ -191,8 +163,6 @@ int ssl_ctx_init(H3270 *hSession, SSL_ERROR_MESSAGE * message) | ||
191 | 163 | ||
192 | } | 164 | } |
193 | 165 | ||
194 | - // lib3270_build_lib3270_strdup_printf("%s\\certs",appdir); | ||
195 | - | ||
196 | ssl_3270_ex_index = SSL_get_ex_new_index(0,NULL,NULL,NULL,NULL); | 166 | ssl_3270_ex_index = SSL_get_ex_new_index(0,NULL,NULL,NULL,NULL); |
197 | 167 | ||
198 | #ifdef SSL_ENABLE_CRL_CHECK | 168 | #ifdef SSL_ENABLE_CRL_CHECK |