-LDAP_SLAPD_F (char *) get_validated_dn LDAP_P(( char *dn, int make_uppercase, int normalize ));
-LDAP_SLAPD_F (char *) dn_validate LDAP_P(( char *dn ));
-LDAP_SLAPD_F (char *) dn_normalize LDAP_P(( char *dn ));
-LDAP_SLAPD_F (char *) dn_parent LDAP_P(( Backend *be, const char *dn ));
-LDAP_SLAPD_F (char **) dn_subtree LDAP_P(( Backend *be, const char *dn ));
-LDAP_SLAPD_F (char *) dn_rdn LDAP_P(( Backend *be, const char *dn ));
-LDAP_SLAPD_F (int) dn_issuffix LDAP_P(( const char *dn, const char *suffix ));
-LDAP_SLAPD_F (int) rdn_validate LDAP_P(( const char* str ));
-LDAP_SLAPD_F (char *) rdn_attr_value LDAP_P(( const char * rdn ));
-LDAP_SLAPD_F (char *) rdn_attr_type LDAP_P(( const char * rdn ));
-LDAP_SLAPD_F (int) rdn_attrs LDAP_P(( const char * rdn, char ***ptypes, char ***pvals ));
+#define dn_match(dn1, dn2) ( ber_bvcmp((dn1), (dn2)) == 0 )
+#define bvmatch(bv1, bv2) ( ((bv1)->bv_len == (bv2)->bv_len) && (memcmp((bv1)->bv_val, (bv2)->bv_val, (bv1)->bv_len) == 0) )
+
+LDAP_SLAPD_V( const struct berval ) slap_empty_bv;
+
+LDAP_SLAPD_F (int) dnValidate LDAP_P((
+ Syntax *syntax,
+ struct berval *val ));
+
+LDAP_SLAPD_F (int) dnNormalize LDAP_P((
+ Syntax *syntax,
+ struct berval *val,
+ struct berval **normalized ));
+
+LDAP_SLAPD_F (int) dnNormalize2 LDAP_P((
+ Syntax *syntax,
+ struct berval *val,
+ struct berval *normalized ));
+
+LDAP_SLAPD_F (int) dnPretty LDAP_P((
+ Syntax *syntax,
+ struct berval *val,
+ struct berval **pretty ));
+
+LDAP_SLAPD_F (int) dnPretty2 LDAP_P((
+ Syntax *syntax,
+ struct berval *val,
+ struct berval *pretty ));
+
+LDAP_SLAPD_F (int) dnPrettyNormal LDAP_P((
+ Syntax *syntax,
+ struct berval *val,
+ struct berval *pretty,
+ struct berval *normal ));
+
+LDAP_SLAPD_F (int) dnMatch LDAP_P((
+ int *matchp,
+ slap_mask_t flags,
+ Syntax *syntax,
+ MatchingRule *mr,
+ struct berval *value,
+ void *assertedValue ));
+
+LDAP_SLAPD_F (int) dnIsSuffix LDAP_P((
+ const struct berval *dn, const struct berval *suffix ));
+
+LDAP_SLAPD_F (int) dnExtractRdn LDAP_P((
+ struct berval *dn, struct berval *rdn ));
+
+LDAP_SLAPD_F (int) rdnValidate LDAP_P(( struct berval * rdn ));
+
+LDAP_SLAPD_F (int) dn_rdnlen LDAP_P(( Backend *be, struct berval *dn ));
+
+LDAP_SLAPD_F (void) build_new_dn LDAP_P((
+ struct berval * new_dn,
+ struct berval * parent_dn,
+ struct berval * newrdn ));
+
+LDAP_SLAPD_F (void) dnParent LDAP_P(( struct berval *dn, struct berval *pdn ));
+
+LDAP_SLAPD_F (int) dnX509normalize LDAP_P(( void *x509_name, struct berval *out ));
+
+LDAP_SLAPD_F (int) dnX509peerNormalize LDAP_P(( void *ssl, struct berval *dn ));
+
+LDAP_SLAPD_F (int) dnPrettyNormalDN LDAP_P(( Syntax *syntax, struct berval *val, LDAPDN **dn, int flags ));
+#define dnPrettyDN(syntax, val, dn) \
+ dnPrettyNormalDN((syntax),(val),(dn), SLAP_LDAPDN_PRETTY)
+#define dnNormalDN(syntax, val, dn) \
+ dnPrettyNormalDN((syntax),(val),(dn), 0)
+