From: Howard Chu Date: Fri, 9 Sep 2005 11:37:00 +0000 (+0000) Subject: ITS#3979 only support tool entry points if root DB has them X-Git-Tag: OPENLDAP_REL_ENG_2_2_MP~451 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=3673cceb6c2157e4d077462f811077291fe8634c;p=openldap ITS#3979 only support tool entry points if root DB has them --- diff --git a/servers/slapd/backglue.c b/servers/slapd/backglue.c index 9a32020521..e2220fa826 100644 --- a/servers/slapd/backglue.c +++ b/servers/slapd/backglue.c @@ -716,6 +716,7 @@ glue_db_init( { slap_overinst *on = (slap_overinst *)be->bd_info; slap_overinfo *oi = on->on_info; + BackendInfo *bi = oi->oi_orig; glueinfo *gi; gi = ch_calloc( 1, sizeof(glueinfo)); @@ -730,14 +731,23 @@ glue_db_init( oi->oi_bi.bi_entry_release_rw = glue_entry_release_rw; - oi->oi_bi.bi_tool_entry_open = glue_tool_entry_open; - oi->oi_bi.bi_tool_entry_close = glue_tool_entry_close; - oi->oi_bi.bi_tool_entry_first = glue_tool_entry_first; - oi->oi_bi.bi_tool_entry_next = glue_tool_entry_next; - oi->oi_bi.bi_tool_entry_get = glue_tool_entry_get; - oi->oi_bi.bi_tool_entry_put = glue_tool_entry_put; - oi->oi_bi.bi_tool_entry_reindex = glue_tool_entry_reindex; - oi->oi_bi.bi_tool_sync = glue_tool_sync; + /* Only advertise these if the root DB supports them */ + if ( bi->bi_tool_entry_open ) + oi->oi_bi.bi_tool_entry_open = glue_tool_entry_open; + if ( bi->bi_tool_entry_close ) + oi->oi_bi.bi_tool_entry_close = glue_tool_entry_close; + if ( bi->bi_tool_entry_first ) + oi->oi_bi.bi_tool_entry_first = glue_tool_entry_first; + if ( bi->bi_tool_entry_next ) + oi->oi_bi.bi_tool_entry_next = glue_tool_entry_next; + if ( bi->bi_tool_entry_get ) + oi->oi_bi.bi_tool_entry_get = glue_tool_entry_get; + if ( bi->bi_tool_entry_put ) + oi->oi_bi.bi_tool_entry_put = glue_tool_entry_put; + if ( bi->bi_tool_entry_reindex ) + oi->oi_bi.bi_tool_entry_reindex = glue_tool_entry_reindex; + if ( bi->bi_tool_sync ) + oi->oi_bi.bi_tool_sync = glue_tool_sync; /*FIXME : need to add support */ oi->oi_bi.bi_tool_dn2id_get = 0;