mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-01-02 21:19:53 -05:00
more issues related to slapacl
This commit is contained in:
parent
e9ab146a41
commit
da69eca714
2 changed files with 33 additions and 14 deletions
|
|
@ -70,6 +70,7 @@ slapacl( int argc, char **argv )
|
|||
Operation *op;
|
||||
Entry e = { 0 }, *ep = &e;
|
||||
char *attr = NULL;
|
||||
int doclose = 0;
|
||||
|
||||
slap_tool_init( progname, SLAPACL, argc, argv );
|
||||
|
||||
|
|
@ -166,6 +167,26 @@ slapacl( int argc, char **argv )
|
|||
fprintf( stderr, "authzDN: \"%s\"\n", authzDN.bv_val );
|
||||
}
|
||||
|
||||
if ( !BER_BVISNULL( &authzDN ) ) {
|
||||
op->o_dn = authzDN;
|
||||
op->o_ndn = authzDN;
|
||||
|
||||
if ( !BER_BVISNULL( &authcDN ) ) {
|
||||
op->o_conn->c_dn = authcDN;
|
||||
op->o_conn->c_ndn = authcDN;
|
||||
|
||||
} else {
|
||||
op->o_conn->c_dn = authzDN;
|
||||
op->o_conn->c_ndn = authzDN;
|
||||
}
|
||||
|
||||
} else if ( !BER_BVISNULL( &authcDN ) ) {
|
||||
op->o_conn->c_dn = authcDN;
|
||||
op->o_conn->c_ndn = authcDN;
|
||||
op->o_dn = authcDN;
|
||||
op->o_ndn = authcDN;
|
||||
}
|
||||
|
||||
assert( !BER_BVISNULL( &baseDN ) );
|
||||
rc = dnPrettyNormal( NULL, &baseDN, &e.e_name, &e.e_nname, NULL );
|
||||
if ( rc != LDAP_SUCCESS ) {
|
||||
|
|
@ -177,15 +198,6 @@ slapacl( int argc, char **argv )
|
|||
}
|
||||
|
||||
op->o_bd = be;
|
||||
if ( !BER_BVISNULL( &authzDN ) ) {
|
||||
op->o_dn = authzDN;
|
||||
op->o_ndn = authzDN;
|
||||
}
|
||||
if ( !BER_BVISNULL( &authcDN ) ) {
|
||||
op->o_conn->c_dn = authcDN;
|
||||
op->o_conn->c_ndn = authcDN;
|
||||
}
|
||||
|
||||
if ( !dryrun && be ) {
|
||||
ID id;
|
||||
|
||||
|
|
@ -209,6 +221,8 @@ slapacl( int argc, char **argv )
|
|||
goto destroy;
|
||||
}
|
||||
|
||||
doclose = 1;
|
||||
|
||||
id = be->be_dn2id_get( be, &e.e_nname );
|
||||
if ( id == NOID ) {
|
||||
fprintf( stderr, "%s: unable to fetch ID of DN \"%s\"\n",
|
||||
|
|
@ -312,13 +326,19 @@ slapacl( int argc, char **argv )
|
|||
}
|
||||
|
||||
destroy:;
|
||||
ber_memfree( e.e_name.bv_val );
|
||||
ber_memfree( e.e_nname.bv_val );
|
||||
if ( !BER_BVISNULL( &e.e_name ) ) {
|
||||
ber_memfree( e.e_name.bv_val );
|
||||
}
|
||||
if ( !BER_BVISNULL( &e.e_nname ) ) {
|
||||
ber_memfree( e.e_nname.bv_val );
|
||||
}
|
||||
if ( !dryrun && be ) {
|
||||
if ( ep != &e ) {
|
||||
be_entry_release_r( op, ep );
|
||||
}
|
||||
be->be_entry_close( be );
|
||||
if ( doclose ) {
|
||||
be->be_entry_close( be );
|
||||
}
|
||||
}
|
||||
|
||||
slap_tool_destroy();
|
||||
|
|
|
|||
|
|
@ -516,7 +516,7 @@ slap_tool_init(
|
|||
/* If the named base is a glue master, operate on the
|
||||
* entire context
|
||||
*/
|
||||
if (SLAP_GLUE_INSTANCE(be)) {
|
||||
if ( SLAP_GLUE_INSTANCE( be ) ) {
|
||||
nosubordinates = 1;
|
||||
}
|
||||
|
||||
|
|
@ -577,7 +577,6 @@ startup:;
|
|||
#endif
|
||||
|
||||
if ( !dryrun && slap_startup( be ) ) {
|
||||
|
||||
switch ( tool ) {
|
||||
case SLAPTEST:
|
||||
fprintf( stderr, "slap_startup failed "
|
||||
|
|
|
|||
Loading…
Reference in a new issue