+int
+backend_check_controls(
+ Backend *be,
+ Connection *conn,
+ Operation *op )
+{
+ LDAPControl **ctrls;
+ ctrls = op->o_ctrls;
+ if( ctrls == NULL ) {
+ return LDAP_SUCCESS;
+ }
+
+ for( ; *ctrls != NULL ; ctrls++ ) {
+ if( (*ctrls)->ldctl_iscritical &&
+ !charray_inlist( be->be_controls, (*ctrls)->ldctl_oid ) )
+ {
+ return LDAP_UNAVAILABLE_CRITICAL_EXTENSION;
+ }
+ }
+
+ return LDAP_SUCCESS;
+}
+