]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/dn.c
Fix pkiUser
[openldap] / servers / slapd / dn.c
index 450691d326a5c076b48dfc116a07b0e8f5f409b5..75a349b4333dfecf05e838aad623154e6e47c670 100644 (file)
@@ -624,7 +624,8 @@ dnParent(
 
        /* one-level dn */
        if ( p == NULL ) {
-               *pdn = slap_empty_bv;
+               pdn->bv_len = 0;
+               pdn->bv_val = dn->bv_val + dn->bv_len;
                return;
        }
 
@@ -829,3 +830,25 @@ dnIsSuffix(
        /* compare */
        return( strcmp( dn->bv_val + d, suffix->bv_val ) == 0 );
 }
+
+#ifdef HAVE_TLS
+/*
+ * Convert an X.509 DN into a normalized LDAP DN
+ */
+int
+dnX509normalize( void *x509_name, struct berval *out )
+{
+       /* Invoke the LDAP library's converter with our schema-rewriter */
+       return ldap_X509dn2bv( x509_name, out, LDAPDN_rewrite, 0 );
+}
+
+/*
+ * Get the TLS session's peer's DN into a normalized LDAP DN
+ */
+int
+dnX509peerNormalize( void *ssl, struct berval *dn )
+{
+
+       return ldap_pvt_tls_get_peer_dn( ssl, dn, (LDAPDN_rewrite_dummy *)LDAPDN_rewrite, 0 );
+}
+#endif