mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-15 03:01:09 +08:00
Added numsubordinates operational attribute
This commit is contained in:
parent
aa23b21baf
commit
8efb675f3e
@ -282,8 +282,52 @@ ldbm_back_search(
|
||||
}
|
||||
|
||||
if (e) {
|
||||
switch ( send_search_entry( be, conn, op, e,
|
||||
attrs, attrsonly, NULL ) ) {
|
||||
/* Tack on subordinates attr */
|
||||
int result;
|
||||
ID_BLOCK *idl = NULL;
|
||||
char CATTR_SUBS[] = "numsubordinates";
|
||||
|
||||
if (attrs &&
|
||||
charray_inlist(attrs,
|
||||
CATTR_SUBS))
|
||||
{
|
||||
idl = dn2idl(be, e->e_ndn,
|
||||
DN_ONE_PREFIX);
|
||||
if (idl)
|
||||
{
|
||||
char buf[30];
|
||||
struct berval val, *vals[2];
|
||||
|
||||
vals[0] = &val;
|
||||
vals[1] = NULL;
|
||||
|
||||
sprintf(buf, "%lu",
|
||||
ID_BLOCK_NIDS(idl));
|
||||
|
||||
val.bv_val = buf;
|
||||
val.bv_len = strlen(buf);
|
||||
|
||||
attr_merge(e, CATTR_SUBS,
|
||||
vals);
|
||||
}
|
||||
}
|
||||
|
||||
result = send_search_entry(be,
|
||||
conn,
|
||||
op,
|
||||
e,
|
||||
attrs,
|
||||
attrsonly,
|
||||
NULL);
|
||||
if (idl)
|
||||
{
|
||||
idl_free(idl);
|
||||
attr_delete(&e->e_attrs,
|
||||
CATTR_SUBS);
|
||||
}
|
||||
|
||||
switch (result)
|
||||
{
|
||||
case 0: /* entry sent ok */
|
||||
nentries++;
|
||||
break;
|
||||
|
Loading…
Reference in New Issue
Block a user