/* operational.c - ldbm backend operational attributes function */ /* * Copyright 1998-2001 The OpenLDAP Foundation, All Rights Reserved. * COPYING RESTRICTIONS APPLY, see COPYRIGHT file */ #include "portable.h" #include #include #include #include "slap.h" #include "back-ldbm.h" #include "proto-back-ldbm.h" /* * sets the supported operational attributes (if required) */ int ldbm_back_operational( BackendDB *be, Connection *conn, Operation *op, Entry *e, char **attrs, int opattrs, Attribute **a ) { Attribute **aa = a; assert( e ); if ( opattrs || ad_inlist( slap_schema.si_ad_hasSubordinates, attrs ) ) { int hs; hs = has_children( be, e ); *aa = ch_malloc( sizeof( Attribute ) ); (*aa)->a_desc = slap_schema.si_ad_hasSubordinates; (*aa)->a_vals = ch_malloc( 2 * sizeof( struct berval * ) ); (*aa)->a_vals[0] = ber_bvstrdup( hs ? "TRUE" : "FALSE" ); (*aa)->a_vals[1] = NULL; (*aa)->a_next = NULL; aa = &(*aa)->a_next; } return 0; }