diff options
Diffstat (limited to 'doc/examples/ex-client-x509.c')
-rw-r--r-- | doc/examples/ex-client-x509.c | 21 |
1 files changed, 10 insertions, 11 deletions
diff --git a/doc/examples/ex-client-x509.c b/doc/examples/ex-client-x509.c index cbc4afaad7..4a6e19de3b 100644 --- a/doc/examples/ex-client-x509.c +++ b/doc/examples/ex-client-x509.c @@ -104,8 +104,16 @@ int main(void) } while (ret < 0 && gnutls_error_is_fatal(ret) == 0); if (ret < 0) { - fprintf(stderr, "*** Handshake failed\n"); - gnutls_perror(ret); + if (ret == GNUTLS_E_CERTIFICATE_VERIFICATION_ERROR) { + /* check certificate verification status */ + type = gnutls_certificate_type_get(session); + status = gnutls_session_get_verify_cert_status(session); + CHECK(gnutls_certificate_verification_status_print(status, + type, &out, 0)); + printf("cert verify output: %s\n", out.data); + gnutls_free(out.data); + } + fprintf(stderr, "*** Handshake failed: %s\n", gnutls_strerror(ret)); goto end; } else { char *desc; @@ -115,15 +123,6 @@ int main(void) gnutls_free(desc); } - /* check certificate verification status */ - type = gnutls_certificate_type_get(session); - status = gnutls_session_get_verify_cert_status(session); - CHECK(gnutls_certificate_verification_status_print(status, type, - &out, 0)); - - printf("%s", out.data); - gnutls_free(out.data); - /* send data */ CHECK(gnutls_record_send(session, MSG, strlen(MSG))); |