#define LDAP_CHASE_EXTERNAL_REFERRALS 0x0040U
#endif
+#define LDAP_CONTROL_SUBENTRIES "1.3.6.1.4.1.4203.666.5.1"
#define LDAP_CONTROL_MANAGEDSAIT "2.16.840.1.113730.3.4.2"
-#define LDAP_CONTROL_DUPENT LDAP_CONTROL_DUPENT_REQUEST
#define LDAP_CONTROL_DUPENT_REQUEST "2.16.840.1.113719.1.27.101.1"
#define LDAP_CONTROL_DUPENT_RESPONSE "2.16.840.1.113719.1.27.101.2"
#define LDAP_CONTROL_DUPENT_ENTRY "2.16.840.1.113719.1.27.101.3"
+#define LDAP_CONTROL_DUPENT LDAP_CONTROL_DUPENT_REQUEST
/* Experimental Controls */
char *supportedControls[] = {
LDAP_CONTROL_MANAGEDSAIT,
+ LDAP_CONTROL_SUBENTRIES,
NULL
};
return SLAP_NO_CONTROL;
}
+
+int get_subentries( Operation *op, int *visibility )
+{
+ int i;
+ if( op == NULL || op->o_ctrls == NULL ) {
+ return SLAP_NO_CONTROL;
+ }
+
+ for( i=0; op->o_ctrls[i] != NULL; i++ ) {
+ if( strcmp( LDAP_CONTROL_SUBENTRIES,
+ op->o_ctrls[i]->ldctl_oid ) == 0 )
+ {
+ /* need to parse the value */
+ *visibility = 0;
+
+ return op->o_ctrls[i]->ldctl_iscritical
+ ? SLAP_CRITICAL_CONTROL
+ : SLAP_NONCRITICAL_CONTROL;
+ }
+ }
+
+ return SLAP_NO_CONTROL;
+}