X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=servers%2Fslapd%2Fback-ldap%2Fdistproc.c;h=93411682436580258e8e3047575041e96fcd70bf;hb=c6f12694fc959cde780fe83adfa535cce7998b89;hp=5710a2198bf4b4550724c5e5327a2ac6188c3e7f;hpb=b2f79aa42edc03706e7898b02a9ffb4193ddfe36;p=openldap diff --git a/servers/slapd/back-ldap/distproc.c b/servers/slapd/back-ldap/distproc.c index 5710a2198b..9341168243 100644 --- a/servers/slapd/back-ldap/distproc.c +++ b/servers/slapd/back-ldap/distproc.c @@ -2,7 +2,7 @@ /* $OpenLDAP$ */ /* This work is part of OpenLDAP Software . * - * Copyright 2005-2006 The OpenLDAP Foundation. + * Copyright 2005-2008 The OpenLDAP Foundation. * Portions Copyright 2003 Howard Chu. * All rights reserved. * @@ -22,14 +22,15 @@ #include "portable.h" -#ifdef LDAP_DEVEL - #include #include #include #include "slap.h" + +#ifdef SLAP_DISTPROC + #include "back-ldap.h" #include "config.h" @@ -236,7 +237,7 @@ static int ldap_distproc_db_init_common( BackendDB *be ); static int ldap_distproc_db_init_one( BackendDB *be ); #define ldap_distproc_db_open_one(be) (lback)->bi_db_open( (be) ) #define ldap_distproc_db_close_one(be) (0) -#define ldap_distproc_db_destroy_one(be) (lback)->bi_db_destroy( (be) ) +#define ldap_distproc_db_destroy_one(be, ca) (lback)->bi_db_destroy( (be), (ca) ) static int ldap_distproc_parse_ctrl( @@ -297,7 +298,7 @@ ldap_distproc_operational( Operation *op, SlapReply *rs ) * database. This fix is likely to intercept also entries * generated by back-perl and so. */ if ( rs->sr_entry->e_private == NULL ) { - return 0; + return LDAP_SUCCESS; } return SLAP_CB_CONTINUE; @@ -336,9 +337,10 @@ static ConfigTable distproc_cfg[] = { "SYNTAX OMsDirectoryString SINGLE-VALUE )", NULL, NULL }, { "distproc-cache-uri", "TRUE/FALSE", 2, 2, 0, ARG_MAGIC|ARG_ON_OFF|DP_CACHE_URI, distproc_cfgen, - "( OLcfgOvAt:3.2 NAME 'olcCacheURI' " + "( OLcfgOvAt:3.2 NAME 'olcChainCacheURI' " "DESC 'Enables caching of URIs not present in configuration' " - "SYNTAX OMsBoolean SINGLE-VALUE )", NULL, NULL }, + "SYNTAX OMsBoolean " + "SINGLE-VALUE )", NULL, NULL }, { NULL, NULL, 0, 0, 0, ARG_IGNORED } }; @@ -349,7 +351,7 @@ static ConfigOCs distproc_ocs[] = { "SUP olcOverlayConfig " "MAY ( " "olcChainingBehavior $ " - "olcCacheURI " + "olcChainCacheURI " ") )", Cft_Overlay, distproc_cfg, NULL, distproc_cfadd }, { "( OLcfgOvOc:7.2 " @@ -445,7 +447,7 @@ distproc_ldadd( CfEntryInfo *p, Entry *e, ConfigArgs *ca ) done:; if ( rc != LDAP_SUCCESS ) { - (void)ldap_distproc_db_destroy_one( ca->be ); + (void)ldap_distproc_db_destroy_one( ca->be, NULL ); ch_free( ca->be ); ca->be = NULL; } @@ -470,9 +472,9 @@ ldap_distproc_cfadd_apply( void *datum, void *arg ) struct berval bv; /* FIXME: should not hardcode "olcDatabase" here */ - bv.bv_len = snprintf( lca->ca->msg, sizeof( lca->ca->msg ), + bv.bv_len = snprintf( lca->ca->cr_msg, sizeof( lca->ca->cr_msg ), "olcDatabase={%d}%s", lca->count, lback->bi_type ); - bv.bv_val = lca->ca->msg; + bv.bv_val = lca->ca->cr_msg; lca->ca->be->be_private = (void *)li; config_build_entry( lca->op, lca->rs, lca->p->e_private, lca->ca, @@ -565,7 +567,8 @@ distproc_cfgen( ConfigArgs *c ) static int ldap_distproc_db_init( - BackendDB *be ) + BackendDB *be, + ConfigReply *cr ) { slap_overinst *on = (slap_overinst *)be->bd_info; ldap_distproc_t *lc = NULL; @@ -657,7 +660,7 @@ private_destroy:; db.bd_info = lback; db.be_private = (void *)lc->lc_cfg_li; - ldap_distproc_db_destroy_one( &db ); + ldap_distproc_db_destroy_one( &db, NULL ); lc->lc_cfg_li = NULL; } else { @@ -710,7 +713,7 @@ ldap_distproc_db_apply( void *datum, void *arg ) lca->be->be_private = (void *)li; - return lca->func( lca->be ); + return lca->func( lca->be, NULL ); } static int @@ -733,7 +736,7 @@ ldap_distproc_db_func( db.bd_info = lback; db.be_private = lc->lc_common_li; - rc = func( &db ); + rc = func( &db, NULL ); if ( rc != 0 ) { return rc; @@ -757,21 +760,24 @@ ldap_distproc_db_func( static int ldap_distproc_db_open( - BackendDB *be ) + BackendDB *be, + ConfigReply *cr ) { return ldap_distproc_db_func( be, db_open ); } static int ldap_distproc_db_close( - BackendDB *be ) + BackendDB *be, + ConfigReply *cr ) { return ldap_distproc_db_func( be, db_close ); } static int ldap_distproc_db_destroy( - BackendDB *be ) + BackendDB *be, + ConfigReply *cr ) { slap_overinst *on = (slap_overinst *) be->bd_info; ldap_distproc_t *lc = (ldap_distproc_t *)on->on_bi.bi_private; @@ -802,7 +808,7 @@ ldap_distproc_db_init_common( be->bd_info = lback; be->be_private = NULL; - t = lback->bi_db_init( be ); + t = lback->bi_db_init( be, NULL ); if ( t != 0 ) { return t; } @@ -829,11 +835,11 @@ ldap_distproc_db_init_one( BackendInfo *bi = be->bd_info; ldapinfo_t *li; - int t; + slap_op_t t; be->bd_info = lback; be->be_private = NULL; - t = lback->bi_db_init( be ); + t = lback->bi_db_init( be, NULL ); if ( t != 0 ) { return t; } @@ -843,7 +849,7 @@ ldap_distproc_db_init_one( li->li_nretries = lc->lc_common_li->li_nretries; li->li_flags = lc->lc_common_li->li_flags; li->li_version = lc->lc_common_li->li_version; - for ( t = 0; t < LDAP_BACK_OP_LAST; t++ ) { + for ( t = 0; t < SLAP_OP_LAST; t++ ) { li->li_timeout[ t ] = lc->lc_common_li->li_timeout[ t ]; } be->bd_info = bi; @@ -956,6 +962,7 @@ distproc_initialize( void ) return rc; } +#ifdef LDAP_DEVEL rc = supported_feature_load( &slap_FEATURE_CANCHAINOPS ); if ( rc != LDAP_SUCCESS ) { Debug( LDAP_DEBUG_ANY, "slapd-distproc: " @@ -963,6 +970,7 @@ distproc_initialize( void ) rc, 0, 0 ); return rc; } +#endif rc = register_supported_control( LDAP_CONTROL_X_RETURNCONTREF, SLAP_CTRL_GLOBAL|SLAP_CTRL_ACCESS|SLAP_CTRL_HIDE, NULL, @@ -1006,4 +1014,4 @@ distproc_initialize( void ) return overlay_register( &distproc ); } -#endif /* LDAP_DEVEL */ +#endif /* SLAP_DISTPROC */