Commit 40c509b9f0501dfc6c517a04e4546dce4918e0ec

Authored by Perry Werneck
1 parent ecc33412

Updating windows crl downloader.

src/lib3270/ssl/linux/getcrl.c
@@ -242,13 +242,13 @@ int lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) @@ -242,13 +242,13 @@ int lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message)
242 message->error = hSession->ssl.error = 0; 242 message->error = hSession->ssl.error = 0;
243 message->title = N_( "Security error" ); 243 message->title = N_( "Security error" );
244 message->text = N_( "Can't open CRL File" ); 244 message->text = N_( "Can't open CRL File" );
245 - message->description = strerror(errno);  
246 - lib3270_write_log(hSession,"ssl","Can't open %s: %s",consturl,message->description); 245 + message->description = strerror(err);
  246 + trace_ssl(hSession,"Can't open %s: %s\n",consturl,message->description);
247 return err; 247 return err;
248 248
249 } 249 }
250 250
251 - lib3270_write_log(hSession,"ssl","Loading CRL from %s",consturl+7); 251 + trace_ssl(hSession,"Loading CRL from %s\n",consturl+7);
252 d2i_X509_CRL_fp(hCRL, &hSession->ssl.crl.cert); 252 d2i_X509_CRL_fp(hCRL, &hSession->ssl.crl.cert);
253 253
254 } 254 }
src/lib3270/ssl/windows/getcrl.c
@@ -181,9 +181,8 @@ static int internal_curl_trace_callback(CURL *handle unused, curl_infotype type, @@ -181,9 +181,8 @@ static int internal_curl_trace_callback(CURL *handle unused, curl_infotype type,
181 #endif // HAVE_LIBCURL 181 #endif // HAVE_LIBCURL
182 182
183 183
184 -X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) 184 +int lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message)
185 { 185 {
186 - X509_CRL * crl = NULL;  
187 const char * consturl = lib3270_get_crl_url(hSession); 186 const char * consturl = lib3270_get_crl_url(hSession);
188 187
189 if(!(consturl && *consturl)) 188 if(!(consturl && *consturl))
@@ -192,7 +191,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) @@ -192,7 +191,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message)
192 message->title = N_( "Security error" ); 191 message->title = N_( "Security error" );
193 message->text = N_( "Can't open CRL File" ); 192 message->text = N_( "Can't open CRL File" );
194 message->description = N_("The URL for the CRL is undefined or empty"); 193 message->description = N_("The URL for the CRL is undefined or empty");
195 - return NULL; 194 + return errno = ENOENT;
196 } 195 }
197 196
198 trace_ssl(hSession, "crl=%s\n",consturl); 197 trace_ssl(hSession, "crl=%s\n",consturl);
@@ -204,17 +203,19 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) @@ -204,17 +203,19 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message)
204 if(!hCRL) 203 if(!hCRL)
205 { 204 {
206 // Can't open CRL File. 205 // Can't open CRL File.
  206 + int err = errno;
  207 +
207 message->error = hSession->ssl.error = 0; 208 message->error = hSession->ssl.error = 0;
208 message->title = N_( "Security error" ); 209 message->title = N_( "Security error" );
209 message->text = N_( "Can't open CRL File" ); 210 message->text = N_( "Can't open CRL File" );
210 - message->description = strerror(errno);  
211 - lib3270_write_log(hSession,"ssl","Can't open %s: %s",consturl,message->description);  
212 - return NULL; 211 + message->description = strerror(err);
  212 + trace_ssl(hSession,"Can't open %s: %s\n",consturl,message->description);
  213 + return err;
213 214
214 } 215 }
215 216
216 - lib3270_write_log(hSession,"ssl","Loading CRL from %s",consturl+7);  
217 - d2i_X509_CRL_fp(hCRL, &crl); 217 + trace_ssl(hSession,"Loading CRL from %s\n",consturl+7);
  218 + d2i_X509_CRL_fp(hCRL, &hSession->ssl.crl.cert);
218 219
219 } 220 }
220 else 221 else
@@ -237,7 +238,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) @@ -237,7 +238,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message)
237 message->title = N_( "Security error" ); 238 message->title = N_( "Security error" );
238 message->text = N_( "Can't initialize curl" ); 239 message->text = N_( "Can't initialize curl" );
239 lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->text); 240 lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->text);
240 - return NULL; 241 + return -1;
241 } 242 }
242 243
243 CURLcode res; 244 CURLcode res;
@@ -278,7 +279,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) @@ -278,7 +279,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message)
278 } 279 }
279 280
280 lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->description); 281 lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->description);
281 - return NULL; 282 + return -1;
282 } 283 }
283 284
284 debug("Tamanho da resposta: %u", (unsigned int) crl_data->length); 285 debug("Tamanho da resposta: %u", (unsigned int) crl_data->length);
@@ -293,21 +294,8 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) @@ -293,21 +294,8 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message)
293 message->text = N_( "Error loading CRL" ); 294 message->text = N_( "Error loading CRL" );
294 message->description = curl_easy_strerror(res); 295 message->description = curl_easy_strerror(res);
295 lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->description); 296 lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->description);
296 - return NULL;  
297 - }  
298 -  
299 - /*  
300 - if(lib3270_get_toggle(data->hSession,LIB3270_TOGGLE_SSL_TRACE))  
301 - {  
302 - lib3270_autoptr(msg) = lib3270_vsprintf("CRL Data received with content-type \"%s\"", (ct ? ct : "undefined"));  
303 - lib3270_trace_data(  
304 - data->hSession,  
305 - msg,  
306 - (const char *) crl_data->contents,  
307 - crl_data->length  
308 - ); 297 + return -1;
309 } 298 }
310 - */  
311 299
312 if(ct) 300 if(ct)
313 { 301 {
@@ -318,13 +306,13 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) @@ -318,13 +306,13 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message)
318 if(strcasecmp(ct,"application/pkix-crl") == 0) 306 if(strcasecmp(ct,"application/pkix-crl") == 0)
319 { 307 {
320 // CRL File, convert it 308 // CRL File, convert it
321 - if(!d2i_X509_CRL(&crl, &data, crl_data->length)) 309 + if(!d2i_X509_CRL(&hSession->ssl.crl.cert, &data, crl_data->length))
322 { 310 {
323 message->error = hSession->ssl.error = ERR_get_error(); 311 message->error = hSession->ssl.error = ERR_get_error();
324 message->title = N_( "Security error" ); 312 message->title = N_( "Security error" );
325 message->text = N_( "Got an invalid CRL from server" ); 313 message->text = N_( "Got an invalid CRL from server" );
326 lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->text); 314 lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->text);
327 - return NULL; 315 + return -1;
328 } 316 }
329 } 317 }
330 else 318 else
@@ -333,7 +321,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) @@ -333,7 +321,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message)
333 message->title = N_( "Security error" ); 321 message->title = N_( "Security error" );
334 message->text = N_( "Got an invalid CRL from server" ); 322 message->text = N_( "Got an invalid CRL from server" );
335 lib3270_write_log(hSession,"ssl","%s: content-type unexpected: \"%s\"",consturl, ct); 323 lib3270_write_log(hSession,"ssl","%s: content-type unexpected: \"%s\"",consturl, ct);
336 - return NULL; 324 + return -1;
337 } 325 }
338 } 326 }
339 else if(strncasecmp(consturl,"ldap://",7) == 0) 327 else if(strncasecmp(consturl,"ldap://",7) == 0)
@@ -345,7 +333,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) @@ -345,7 +333,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message)
345 message->error = hSession->ssl.error = 0; 333 message->error = hSession->ssl.error = 0;
346 message->title = N_( "Security error" ); 334 message->title = N_( "Security error" );
347 message->text = N_( "No attribute in LDAP search URL" ); 335 message->text = N_( "No attribute in LDAP search URL" );
348 - return NULL; 336 + return errno = ENOENT;
349 } 337 }
350 338
351 attr++; 339 attr++;
@@ -370,7 +358,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) @@ -370,7 +358,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message)
370 message->error = hSession->ssl.error = 0; 358 message->error = hSession->ssl.error = 0;
371 message->title = N_( "Security error" ); 359 message->title = N_( "Security error" );
372 message->text = N_( "Can't find attribute in LDAP response" ); 360 message->text = N_( "Can't find attribute in LDAP response" );
373 - return NULL; 361 + return errno = ENOENT;
374 } 362 }
375 363
376 ptr += strlen(key); 364 ptr += strlen(key);
@@ -390,7 +378,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) @@ -390,7 +378,7 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message)
390 message->error = hSession->ssl.error = 0; 378 message->error = hSession->ssl.error = 0;
391 message->title = N_( "Security error" ); 379 message->title = N_( "Security error" );
392 message->text = N_( "Can't find attribute end in LDAP response" ); 380 message->text = N_( "Can't find attribute end in LDAP response" );
393 - return NULL; 381 + return errno = ENOENT;
394 } 382 }
395 383
396 length = ix; 384 length = ix;
@@ -405,12 +393,13 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) @@ -405,12 +393,13 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message)
405 ); 393 );
406 } 394 }
407 395
408 - if(!d2i_X509_CRL(&crl, (const unsigned char **) &ptr, length)) 396 + if(!d2i_X509_CRL(&hSession->ssl.crl.cert, (const unsigned char **) &ptr, length))
409 { 397 {
410 message->error = hSession->ssl.error = ERR_get_error(); 398 message->error = hSession->ssl.error = ERR_get_error();
411 message->title = N_( "Security error" ); 399 message->title = N_( "Security error" );
412 message->text = N_( "Can't get CRL from LDAP Search" ); 400 message->text = N_( "Can't get CRL from LDAP Search" );
413 lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->text); 401 lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->text);
  402 + return -1;
414 } 403 }
415 404
416 } 405 }
@@ -422,12 +411,12 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message) @@ -422,12 +411,12 @@ X509_CRL * lib3270_get_X509_CRL(H3270 *hSession, SSL_ERROR_MESSAGE * message)
422 message->text = N_( "Unexpected or invalid CRL URL" ); 411 message->text = N_( "Unexpected or invalid CRL URL" );
423 message->description = N_("The URL scheme is unknown"); 412 message->description = N_("The URL scheme is unknown");
424 lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->description); 413 lib3270_write_log(hSession,"ssl","%s: %s",consturl, message->description);
425 - return NULL; 414 + return errno= EINVAL;
426 #endif // HAVE_LIBCURL 415 #endif // HAVE_LIBCURL
427 416
428 } 417 }
429 418
430 - return crl; 419 + return hSession->ssl.crl.cert == NULL ? -1 : 0;
431 420
432 } 421 }
433 422