From 33876e22d6003b77e80435a63651cce8719a4f56 Mon Sep 17 00:00:00 2001 From: Nadezhda Ivanova Date: Mon, 21 May 2018 15:45:21 +0100 Subject: [PATCH] ITS#8859 Allow backends which do not need a database to work --- servers/slapd/bconfig.c | 6 +++++- servers/slapd/config.c | 2 +- servers/slapd/slap.h | 1 + 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/servers/slapd/bconfig.c b/servers/slapd/bconfig.c index bc8d112677..a638628434 100644 --- a/servers/slapd/bconfig.c +++ b/servers/slapd/bconfig.c @@ -1702,6 +1702,10 @@ config_generic(ConfigArgs *c) { c->log, c->cr_msg, c->argv[1] ); return(1); } + if ( c->bi->bi_flags & SLAP_BFLAG_STANDALONE ) { + c->bi->bi_nDB++; + nbackends++; + } break; case CFG_DATABASE: @@ -7217,7 +7221,7 @@ config_back_db_open( BackendDB *be, ConfigReply *cr ) } continue; } - if (!bi->bi_private) continue; + if ( !bi->bi_private && !(bi->bi_flags & SLAP_BFLAG_STANDALONE) ) continue; rdn.bv_val = c.log; rdn.bv_len = snprintf(rdn.bv_val, sizeof( c.log ), diff --git a/servers/slapd/config.c b/servers/slapd/config.c index 67ad024366..c9560787df 100644 --- a/servers/slapd/config.c +++ b/servers/slapd/config.c @@ -835,7 +835,7 @@ read_config_file(const char *fname, int depth, ConfigArgs *cf, ConfigTable *cft) goto done; } - } else if ( c->bi && !c->be ) { + } else if ( ( c->bi && !c->be ) || ( c->bi && c->bi->bi_flags & SLAP_BFLAG_STANDALONE ) ) { rc = SLAP_CONF_UNKNOWN; if ( c->bi->bi_cf_ocs ) { ct = config_find_keyword( c->bi->bi_cf_ocs->co_table, c ); diff --git a/servers/slapd/slap.h b/servers/slapd/slap.h index ef2d0b2af5..4c0dde1b83 100644 --- a/servers/slapd/slap.h +++ b/servers/slapd/slap.h @@ -2345,6 +2345,7 @@ struct BackendInfo { #define SLAP_BFLAG_REFERRALS 0x2000U #define SLAP_BFLAG_SUBENTRIES 0x4000U #define SLAP_BFLAG_DYNAMIC 0x8000U +#define SLAP_BFLAG_STANDALONE 0x10000U /* started up regardless of whether any databases use it */ /* overlay specific */ #define SLAPO_BFLAG_SINGLE 0x01000000U