]> git.sur5r.net Git - openldap/blobdiff - libraries/libldap/tls2.c
ITS#6254
[openldap] / libraries / libldap / tls2.c
index 993e196106300317b8e70738b38b9141f7144351..3c440e9e518a3a9cc6e6c6bd958d62770b1af345 100644 (file)
@@ -434,11 +434,14 @@ ldap_pvt_tls_accept( Sockbuf *sb, void *ctx_arg )
 
        if ( err < 0 )
        {
-               char buf[256];
                if ( update_flags( sb, ssl, err )) return 1;
 
-               Debug( LDAP_DEBUG_ANY,"TLS: can't accept: %s.\n",
-                       tls_imp->ti_session_errmsg( err, buf, sizeof(buf) ),0,0 );
+               if ( DebugTest( LDAP_DEBUG_ANY ) ) {
+                       char buf[256], *msg;
+                       msg = tls_imp->ti_session_errmsg( err, buf, sizeof(buf) );
+                       Debug( LDAP_DEBUG_ANY,"TLS: can't accept: %s.\n",
+                               msg ? msg : "(unknown)", 0, 0 );
+               }
 
                ber_sockbuf_remove_io( sb, tls_imp->ti_sbio,
                        LBER_SBIOD_LEVEL_TRANSPORT );
@@ -649,12 +652,10 @@ ldap_pvt_tls_get_option( LDAP *ld, int option, void *arg )
        case LDAP_OPT_X_TLS_PROTOCOL_MIN:
                *(int *)arg = lo->ldo_tls_protocol_min;
                break;
-#ifdef HAVE_OPENSSL
-       case LDAP_OPT_X_TLS_RANDOM_FILE:        /* OpenSSL only */
+       case LDAP_OPT_X_TLS_RANDOM_FILE:
                *(char **)arg = lo->ldo_tls_randfile ?
                        LDAP_STRDUP( lo->ldo_tls_randfile ) : NULL;
                break;
-#endif
        case LDAP_OPT_X_TLS_SSL_CTX: {
                void *retval = 0;
                if ( ld != NULL ) {
@@ -788,14 +789,12 @@ ldap_pvt_tls_set_option( LDAP *ld, int option, void *arg )
                if ( !arg ) return -1;
                lo->ldo_tls_protocol_min = *(int *)arg;
                return 0;
-#ifdef HAVE_OPENSSL
-       case LDAP_OPT_X_TLS_RANDOM_FILE:        /* OpenSSL only */
+       case LDAP_OPT_X_TLS_RANDOM_FILE:
                if ( ld != NULL )
                        return -1;
                if ( lo->ldo_tls_randfile ) LDAP_FREE (lo->ldo_tls_randfile );
                lo->ldo_tls_randfile = arg ? LDAP_STRDUP( (char *) arg ) : NULL;
                break;
-#endif
        case LDAP_OPT_X_TLS_NEWCTX:
                if ( !arg ) return -1;
                if ( lo->ldo_tls_ctx )
@@ -876,8 +875,9 @@ ldap_pvt_tls_get_my_dn( void *s, struct berval *dn, LDAPDN_rewrite_dummy *func,
        struct berval der_dn;
        int rc;
 
-       tls_imp->ti_session_my_dn( session, &der_dn );
-       rc = ldap_X509dn2bv(&der_dn, dn, (LDAPDN_rewrite_func *)func, flags );
+       rc = tls_imp->ti_session_my_dn( session, &der_dn );
+       if ( rc == LDAP_SUCCESS )
+               rc = ldap_X509dn2bv(&der_dn, dn, (LDAPDN_rewrite_func *)func, flags );
        return rc;
 }
 #endif /* HAVE_TLS */