From: Nikos Mavrogiannopoulos Date: Sun, 10 Feb 2013 10:52:21 +0000 (+0100) Subject: In client side the verify callback is always being called. X-Git-Tag: gnutls_3_1_8~5 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=6229a47d612bfcf556494c7c968b1745d5903eae;p=thirdparty%2Fgnutls.git In client side the verify callback is always being called. --- diff --git a/lib/gnutls_handshake.c b/lib/gnutls_handshake.c index 5bc7d70815..ddd80272d7 100644 --- a/lib/gnutls_handshake.c +++ b/lib/gnutls_handshake.c @@ -2498,7 +2498,8 @@ static int run_verify_callback(gnutls_session_t session, unsigned int side) return 0; if (cred != NULL && cred->verify_callback != NULL && - session->internals.send_cert_req != GNUTLS_CERT_IGNORE) + (session->security_parameters.entity == GNUTLS_CLIENT || + session->internals.send_cert_req != GNUTLS_CERT_IGNORE)) { ret = cred->verify_callback (session); if (ret < -1) diff --git a/tests/mini-x509-callbacks.c b/tests/mini-x509-callbacks.c index 9c7a748bec..7671d0b722 100644 --- a/tests/mini-x509-callbacks.c +++ b/tests/mini-x509-callbacks.c @@ -135,6 +135,7 @@ void doit(void) gnutls_transport_set_pull_function (server, server_pull); gnutls_transport_set_ptr (server, (gnutls_transport_ptr_t)server); gnutls_certificate_set_verify_function (serverx509cred, server_callback); + gnutls_certificate_server_set_request (server, GNUTLS_CERT_REQUEST); gnutls_handshake_set_post_client_hello_function (server, post_client_hello_callback); /* Init client */