int i, rc=-1, bytes;
struct acl *acl;
char *edn;
+ int allattrs;
Debug( LDAP_DEBUG_TRACE, "=> send_search_entry (%s)\n", e->e_dn, 0, 0 );
goto error_return;
}
+ /* check for special all user attributes ("*") attribute */
+ allattrs = charray_inlist( attrs, LDAP_ALL_USER_ATTRIBUTES );
+
for ( a = e->e_attrs; a != NULL; a = a->a_next ) {
regmatch_t matches[MAXREMATCHES];
if ( attrs == NULL ) {
/* all addrs request, skip operational attributes */
- if( !opattrs && oc_check_operational_attr( a->a_type )) {
+ if( !opattrs && oc_check_operational_attr( a->a_type ) ) {
continue;
}
} else {
/* specific addrs requested */
- if ( !charray_inlist( attrs, a->a_type )
- && !charray_inlist( attrs, LDAP_ALL_USER_ATTRIBUTES ) )
- {
+ if ( !allattrs && !charray_inlist( attrs, a->a_type ) ) {
continue;
}
}
dn: o=ABC, c=US
o: ABC
-ref: ldap//hostA/ HostA
-ref: ldap//hostB/ HostB
+ref: ldap//hostA/o=abc,c=us HostA
+ref: ldap//hostB/o=abc,c=us HostB
objectclass: referral
objectclass: extensibleObject
dn: o=XYZ, c=US
o: XYZ
-ref: ldap//hostC/ HostC
+ref: ldap//hostC/o=xyz,c=us HostC
objectclass: referral
objectclass: extensibleObject
+dn: o=Alias, c=US
+o: Alias
+aliasedObjectName: o=University of Michigan, c=US
+objectclass: alias
+objectclass: extensibleObject
+
dn: o=University of Michigan, c=US
o: University of Michigan
objectclass: organization
+
+dn: cn=Manager, o=University of Michigan, c=US
+cn: Manager
+cn: Directory Manager
+cn: Dir Man
+sn: Manager
+description: Manager of the directory
+userpassword: secret
+objectclass: person
+
+dn: cn=Alias, o=University of Michigan, c=US
+cn: Alias
+aliasedobjectname: cn=Manager, o=University of Michigan, c=US
+objectclass: extensibleObject
+
+dn: cn=Circular, o=University of Michigan, c=US
+cn: Circular
+aliasedobjectname: cn=Circular, o=University of Michigan, c=US
+objectclass: extensibleObject
+
+dn: cn=Subordinate, o=University of Michigan, c=US
+cn: Subordinate
+aliasedobjectname: cn=Subordinate, cn=Alias, o=University of Michigan, c=US
+objectclass: extensibleObject