--- servers/slapd/overlays/dyngroup.c 2004/01/01 18:15:38 1.5 +++ servers/slapd/overlays/dyngroup.c 2007/01/02 21:44:08 1.5.2.6 @@ -1,8 +1,8 @@ /* dyngroup.c - Demonstration of overlay code */ -/* $OpenLDAP: pkg/ldap/servers/slapd/overlays/dyngroup.c,v 1.4 2003/12/07 06:07:02 hyc Exp $ */ +/* $OpenLDAP: pkg/ldap/servers/slapd/overlays/dyngroup.c,v 1.5.2.5 2006/01/03 22:16:24 kurt Exp $ */ /* This work is part of OpenLDAP Software . * - * Copyright 2003-2004 The OpenLDAP Foundation. + * Copyright 2003-2007 The OpenLDAP Foundation. * Copyright 2003 by Howard Chu. * All rights reserved. * @@ -64,10 +64,18 @@ dyngroup_response( Operation *op, SlapRe int cache = op->o_do_not_cache; op->o_do_not_cache = 1; - if ( backend_group( op, NULL, &op->o_req_ndn, - &op->oq_compare.rs_ava->aa_value, NULL, ap->ap_uri ) == 0 ) - rs->sr_err = LDAP_COMPARE_TRUE; + rs->sr_err = backend_group( op, NULL, &op->o_req_ndn, + &op->oq_compare.rs_ava->aa_value, NULL, ap->ap_uri ); op->o_do_not_cache = cache; + switch ( rs->sr_err ) { + case LDAP_SUCCESS: + rs->sr_err = LDAP_COMPARE_TRUE; + break; + + case LDAP_NO_SUCH_OBJECT: + rs->sr_err = LDAP_COMPARE_FALSE; + break; + } break; } } @@ -145,7 +153,7 @@ static slap_overinst dyngroup; * initialized and registered by some other function inside slapd. */ -int dyngroup_init() { +int dyngroup_initialize() { dyngroup.on_bi.bi_type = "dyngroup"; dyngroup.on_bi.bi_db_config = dyngroup_config; dyngroup.on_bi.bi_db_close = dyngroup_close; @@ -155,8 +163,10 @@ int dyngroup_init() { } #if SLAPD_OVER_DYNGROUP == SLAPD_MOD_DYNAMIC -int init_module(int argc, char *argv[]) { - return dyngroup_init(); +int +init_module( int argc, char *argv[] ) +{ + return dyngroup_initialize(); } #endif