Commit 4c492af79d123d8c5d82779ed58f84888fe19e58

Authored by Perry Werneck
1 parent f42e13da

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