mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-24 00:29:35 -05:00
Return unwillingToPerform instead of noSuchObject for subschema subentry
This commit is contained in:
parent
96e0038832
commit
aedf4b42fc
4 changed files with 57 additions and 3 deletions
|
|
@ -186,8 +186,18 @@ do_add( Connection *conn, Operation *op )
|
|||
if( e->e_ndn == NULL || *e->e_ndn == '\0' ) {
|
||||
/* protocolError may be a more appropriate error */
|
||||
send_ldap_result( conn, op, rc = LDAP_ALREADY_EXISTS,
|
||||
NULL, "root DSE exists", NULL, NULL );
|
||||
NULL, "root DSE already exists",
|
||||
NULL, NULL );
|
||||
goto done;
|
||||
|
||||
#if defined( SLAPD_SCHEMA_DN )
|
||||
} else if ( strcasecmp( ndn, SLAPD_SCHEMA_DN ) == 0 ) {
|
||||
/* protocolError may be a more appropriate error */
|
||||
send_ldap_result( conn, op, rc = LDAP_ALREADY_EXISTS,
|
||||
NULL, "subschema subentry already exists",
|
||||
NULL, NULL );
|
||||
goto done;
|
||||
#endif
|
||||
}
|
||||
|
||||
manageDSAit = get_manageDSAit( op );
|
||||
|
|
|
|||
|
|
@ -88,8 +88,8 @@ do_delete(
|
|||
|
||||
if( *ndn == '\0' ) {
|
||||
#ifdef NEW_LOGGING
|
||||
LDAP_LOG(( "operation", LDAP_LEVEL_INFO,
|
||||
"do_delete: conn %d Attempt to delete root DSE.\n", conn->c_connid ));
|
||||
LDAP_LOG(( "operation", LDAP_LEVEL_INFO, "do_delete: conn %d: "
|
||||
"Attempt to delete root DSE.\n", conn->c_connid ));
|
||||
#else
|
||||
Debug( LDAP_DEBUG_ANY, "do_delete: root dse!\n", 0, 0, 0 );
|
||||
#endif
|
||||
|
|
@ -97,6 +97,21 @@ do_delete(
|
|||
send_ldap_result( conn, op, rc = LDAP_UNWILLING_TO_PERFORM,
|
||||
NULL, "cannot delete the root DSE", NULL, NULL );
|
||||
goto cleanup;
|
||||
|
||||
#ifdef SLAPD_SCHEMA_DN
|
||||
} else if ( strcasecmp( ndn, SLAPD_SCHEMA_DN ) == 0 ) {
|
||||
#ifdef NEW_LOGGING
|
||||
LDAP_LOG(( "operation", LDAP_LEVEL_INFO, "do_delete: conn %d: "
|
||||
"Attempt to delete subschema subentry.\n", conn->c_connid ));
|
||||
#else
|
||||
Debug( LDAP_DEBUG_ANY, "do_delete: subschema subentry!\n", 0, 0, 0 );
|
||||
#endif
|
||||
/* protocolError would likely be a more appropriate error */
|
||||
send_ldap_result( conn, op, rc = LDAP_UNWILLING_TO_PERFORM,
|
||||
NULL, "cannot delete the root DSE", NULL, NULL );
|
||||
goto cleanup;
|
||||
|
||||
#endif
|
||||
}
|
||||
|
||||
Statslog( LDAP_DEBUG_STATS, "conn=%ld op=%d DEL dn=\"%s\"\n",
|
||||
|
|
|
|||
|
|
@ -200,6 +200,21 @@ do_modify(
|
|||
send_ldap_result( conn, op, rc = LDAP_UNWILLING_TO_PERFORM,
|
||||
NULL, "modify upon the root DSE not supported", NULL, NULL );
|
||||
goto cleanup;
|
||||
|
||||
#if defined( SLAPD_SCHEMA_DN )
|
||||
} else if ( strcasecmp( ndn, SLAPD_SCHEMA_DN ) == 0 ) {
|
||||
#ifdef NEW_LOGGING
|
||||
LDAP_LOG(( "operation", LDAP_LEVEL_ERR,
|
||||
"do_modify: attempt to modify subschema subentry.\n" ));
|
||||
#else
|
||||
Debug( LDAP_DEBUG_ANY, "do_modify: subschema subentry!\n", 0, 0, 0 );
|
||||
#endif
|
||||
|
||||
send_ldap_result( conn, op, rc = LDAP_UNWILLING_TO_PERFORM,
|
||||
NULL, "modification of subschema subentry not supported",
|
||||
NULL, NULL );
|
||||
goto cleanup;
|
||||
#endif
|
||||
}
|
||||
|
||||
#ifdef LDAP_DEBUG
|
||||
|
|
|
|||
|
|
@ -223,6 +223,20 @@ do_modrdn(
|
|||
send_ldap_result( conn, op, rc = LDAP_UNWILLING_TO_PERFORM,
|
||||
NULL, "cannot rename the root DSE", NULL, NULL );
|
||||
goto cleanup;
|
||||
|
||||
#ifdef SLAPD_SCHEMA_DN
|
||||
} else if ( strcasecmp( ndn, SLAPD_SCHEMA_DN ) == 0 ) {
|
||||
#ifdef NEW_LOGGING
|
||||
LDAP_LOG(( "operation", LDAP_LEVEL_ERR,
|
||||
"do_modrdn: attempt to modify subschema subentry\n" ));
|
||||
#else
|
||||
Debug( LDAP_DEBUG_ANY, "do_modrdn: subschema subentry!\n", 0, 0, 0 );
|
||||
#endif
|
||||
|
||||
send_ldap_result( conn, op, rc = LDAP_UNWILLING_TO_PERFORM,
|
||||
NULL, "cannot rename subschema subentry", NULL, NULL );
|
||||
goto cleanup;
|
||||
#endif
|
||||
}
|
||||
|
||||
Statslog( LDAP_DEBUG_STATS, "conn=%ld op=%d MODRDN dn=\"%s\"\n",
|
||||
|
|
|
|||
Loading…
Reference in a new issue