=== modified file 'lib/ssl_gnutls.c'
|
|
|
239 | 239 | } |
240 | 240 | else |
241 | 241 | { |
242 | | |
243 | | conn->func( conn->data, verify_certificate_callback( conn->session ), NULL, cond ); |
| 242 | if( conn->verify && st == GNUTLS_E_CERTIFICATE_ERROR ) |
| 243 | /* This means that gnutls_handshake failed because of the |
| 244 | * certificate verification, so let's pass some more detailed |
| 245 | * information about what went wrong to conn->func by calling |
| 246 | * verify_certificate_callback again. |
| 247 | */ |
| 248 | conn->func( conn->data, verify_certificate_callback( |
| 249 | conn->session ), NULL, cond ); |
| 250 | else |
| 251 | conn->func( conn->data, 0, NULL, cond ); |
244 | 252 | |
245 | 253 | gnutls_deinit( conn->session ); |
246 | 254 | gnutls_certificate_free_credentials( conn->xcred ); |