Back to index

openldap  2.4.31
Functions
operational.c File Reference
#include "portable.h"
#include <stdio.h>
#include <ac/string.h>
#include <ac/socket.h>
#include "slap.h"
#include "back-monitor.h"
#include "proto-back-monitor.h"

Go to the source code of this file.

Functions

int monitor_back_operational (Operation *op, SlapReply *rs)

Function Documentation

Definition at line 38 of file operational.c.

{
       Attribute     **ap;

       assert( rs->sr_entry != NULL );

       for ( ap = &rs->sr_operational_attrs; *ap; ap = &(*ap)->a_next ) {
              if ( (*ap)->a_desc == slap_schema.si_ad_hasSubordinates ) {
                     break;
              }
       }

       if ( *ap == NULL &&
              attr_find( rs->sr_entry->e_attrs, slap_schema.si_ad_hasSubordinates ) == NULL &&
              ( SLAP_OPATTRS( rs->sr_attr_flags ) ||
                     ad_inlist( slap_schema.si_ad_hasSubordinates, rs->sr_attrs ) ) )
       {
              int                  hs;
              monitor_entry_t      *mp;

              mp = ( monitor_entry_t * )rs->sr_entry->e_private;

              assert( mp != NULL );

              hs = MONITOR_HAS_CHILDREN( mp );
              *ap = slap_operational_hasSubordinate( hs );
              assert( *ap != NULL );
              ap = &(*ap)->a_next;
       }
       
       return LDAP_SUCCESS;
}

Here is the call graph for this function: