From: Kurt Zeilenga Date: Mon, 12 Aug 2002 17:11:43 +0000 (+0000) Subject: global_schemadn addition X-Git-Tag: OPENLDAP_REL_ENG_2_1_4~37 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=36b64e9148d92302cbe53e374041f243ba2a5195;p=openldap global_schemadn addition --- diff --git a/servers/slapd/config.c b/servers/slapd/config.c index 0046551709..ff982d89a9 100644 --- a/servers/slapd/config.c +++ b/servers/slapd/config.c @@ -52,6 +52,10 @@ char **cargv; struct berval default_search_base = { 0, NULL }; struct berval default_search_nbase = { 0, NULL }; unsigned num_subordinates = 0; +#ifdef SLAPD_SCHEMA_DN +struct berval global_schemadn = { 0, NULL }; +struct berval global_schemandn = { 0, NULL }; +#endif ber_len_t sockbuf_max_incoming = SLAP_SB_MAX_INCOMING_DEFAULT; ber_len_t sockbuf_max_incoming_auth= SLAP_SB_MAX_INCOMING_AUTH; diff --git a/servers/slapd/modrdn.c b/servers/slapd/modrdn.c index 8cb8a2737d..5116735ab6 100644 --- a/servers/slapd/modrdn.c +++ b/servers/slapd/modrdn.c @@ -202,12 +202,14 @@ do_modrdn( goto cleanup; #ifdef SLAPD_SCHEMA_DN - } else if ( strcasecmp( ndn.bv_val, SLAPD_SCHEMA_DN ) == 0 ) { + } else if ( bvmatch( &ndn, &global_schemandn ) ) { #ifdef NEW_LOGGING LDAP_LOG( OPERATION, ERR, - "do_modrdn: attempt to modify subschema subentry\n", 0, 0, 0 ); + "do_modrdn: attempt to modify subschema subentry: %s (%ld)\n", + global_schemandn.bv_val, (long) global_schemandn.bv_len, 0 ); #else - Debug( LDAP_DEBUG_ANY, "do_modrdn: subschema subentry!\n", 0, 0, 0 ); + Debug( LDAP_DEBUG_ANY, "do_modrdn: subschema subentry: %s (%ld)\n", + global_schemandn.bv_val, (long) global_schemandn.bv_len, 0 ); #endif send_ldap_result( conn, op, rc = LDAP_UNWILLING_TO_PERFORM, diff --git a/servers/slapd/proto-slap.h b/servers/slapd/proto-slap.h index cb65f3fb92..bbbdb1d3eb 100644 --- a/servers/slapd/proto-slap.h +++ b/servers/slapd/proto-slap.h @@ -341,6 +341,7 @@ LDAP_SLAPD_F (void) slapd_clr_read LDAP_P((ber_socket_t s, int wake)); */ #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;