static char *proxy_authz_extops[] = {
LDAP_EXOP_MODIFY_PASSWD,
- LDAP_EXOP_X_WHO_AM_I,
+ LDAP_EXOP_WHO_AM_I,
LDAP_EXOP_REFRESH,
NULL
};
SLAP_CTRL_GLOBAL|SLAP_CTRL_UPDATE|SLAP_CTRL_HIDE,
NULL, NULL,
parseManageDIT, LDAP_SLIST_ENTRY_INITIALIZER(next) },
+#endif
+#ifdef LDAP_X_TXN
+ { LDAP_CONTROL_X_TXN_SPEC,
+ (int)offsetof(struct slap_control_ids, sc_txnSpec),
+ SLAP_CTRL_UPDATE|SLAP_CTRL_HIDE,
+ NULL, NULL,
+ txn_spec_ctrl, LDAP_SLIST_ENTRY_INITIALIZER(next) },
#endif
{ LDAP_CONTROL_MANAGEDSAIT,
(int)offsetof(struct slap_control_ids, sc_manageDSAit),
}
masks = (slap_mask_t *)SLAP_MALLOC( (n + 1) * sizeof(slap_mask_t) );
if ( masks == NULL ) {
- ch_free( oids );
+ SLAP_FREE( oids );
return LDAP_NO_MEMORY;
}
return LDAP_COMPARE_TRUE;
}
+#if 0
Debug( LDAP_DEBUG_TRACE,
"slap_global_control: unavailable control: %s\n",
oid, 0, 0 );
+#endif
return LDAP_COMPARE_FALSE;
}
if ( !( global_allows & SLAP_ALLOW_PROXY_AUTHZ_ANON )
&& BER_BVISEMPTY( &op->o_ndn ) )
{
- rs->sr_text = "anonymous proxyAuthz not allowed";
- return LDAP_PROXY_AUTHZ_FAILURE;
+ rs->sr_text = "anonymous proxied authorization not allowed";
+ return LDAP_PROXIED_AUTHORIZATION_DENIED;
}
op->o_proxy_authz = ctrl->ldctl_iscritical
ch_free( dn.bv_val );
}
rs->sr_text = "authzId mapping failed";
- return LDAP_PROXY_AUTHZ_FAILURE;
+ return LDAP_PROXIED_AUTHORIZATION_DENIED;
}
Debug( LDAP_DEBUG_TRACE,
if ( rc ) {
ch_free( dn.bv_val );
rs->sr_text = "not authorized to assume identity";
- return LDAP_PROXY_AUTHZ_FAILURE;
+ return LDAP_PROXIED_AUTHORIZATION_DENIED;
}
ch_free( op->o_ndn.bv_val );
return LDAP_PROTOCOL_ERROR;
}
+#ifdef LDAP_X_TXN
+ if ( op->o_txnSpec ) { /* temporary limitation */
+ rs->sr_text = "cannot perform pre-read in transaction";
+ return LDAP_UNWILLING_TO_PERFORM;
+ }
+#endif
+
ber = ber_init( &(ctrl->ldctl_value) );
if (ber == NULL) {
rs->sr_text = "preread control: internal error";
return LDAP_PROTOCOL_ERROR;
}
+#ifdef LDAP_X_TXN
+ if ( op->o_txnSpec ) { /* temporary limitation */
+ rs->sr_text = "cannot perform post-read in transaction";
+ return LDAP_UNWILLING_TO_PERFORM;
+ }
+#endif
+
ber = ber_init( &(ctrl->ldctl_value) );
if (ber == NULL) {
rs->sr_text = "postread control: internal error";