summaryrefslogtreecommitdiffstats
path: root/ldap/servers/slapd/pblock.c
diff options
context:
space:
mode:
authorNoriko Hosoi <nhosoi@redhat.com>2010-09-12 21:59:29 -0700
committerNoriko Hosoi <nhosoi@redhat.com>2010-09-13 10:06:51 -0700
commit80ce631a97977c273a56b5d4d7e99a7eaf109d57 (patch)
tree75207bb0b02a57485d87efedabfcc2fe243eeb06 /ldap/servers/slapd/pblock.c
parent2a25e6518f6e2bd83dd4750bf023d332edef2063 (diff)
downloadds-80ce631a97977c273a56b5d4d7e99a7eaf109d57.tar.gz
ds-80ce631a97977c273a56b5d4d7e99a7eaf109d57.tar.xz
ds-80ce631a97977c273a56b5d4d7e99a7eaf109d57.zip
Bug 633168 - Share backend dbEnv with the replication changelog
https://bugzilla.redhat.com/show_bug.cgi?id=633168 Description: * cl5_api.c, cl5_api.h - fetches dbEnv from backend using slapi_back_get_info. - unused macros and DB helper functions and APIs are removed. * cl5_config.c - local changelog DB related config parameters are removed. * Added SLAPI_PLUGIN_BE_PRE_CLOSE_FN and SLAPI_PLUGIN_BE_POST_OPEN_FN to close changelog DB before dbEnv is closed and to open changelog DB after dbEnv is opened, respectively. * Added slapi APIs slapi_back_get_info and slapi_back_set_info to get/set the backend info. * back-ldbm - db2bak[.pl] and bak2db[.pl] backs up and restores the database files including changelog db. - changelog dir is backed up in <backupdir>/.repl_changelog_backup. - underlying implementation ldbm_back_get_info for slapi_back_get_info is added. * Added an upgrade script 81changelog.pl See also: http://directory.fedoraproject.org/wiki/Move_changelog
Diffstat (limited to 'ldap/servers/slapd/pblock.c')
-rw-r--r--ldap/servers/slapd/pblock.c37
1 files changed, 36 insertions, 1 deletions
diff --git a/ldap/servers/slapd/pblock.c b/ldap/servers/slapd/pblock.c
index c8304af8..4cc6536a 100644
--- a/ldap/servers/slapd/pblock.c
+++ b/ldap/servers/slapd/pblock.c
@@ -610,6 +610,12 @@ slapi_pblock_get( Slapi_PBlock *pblock, int arg, void *value )
case SLAPI_PLUGIN_DB_ADD_SCHEMA_FN:
(*(IFP *)value) = pblock->pb_plugin->plg_add_schema;
break;
+ case SLAPI_PLUGIN_DB_GET_INFO_FN:
+ (*(IFP *)value) = pblock->pb_plugin->plg_get_info;
+ break;
+ case SLAPI_PLUGIN_DB_SET_INFO_FN:
+ (*(IFP *)value) = pblock->pb_plugin->plg_set_info;
+ break;
case SLAPI_PLUGIN_DB_SEQ_FN:
if ( pblock->pb_plugin->plg_type != SLAPI_PLUGIN_DATABASE ) {
return( -1 );
@@ -936,6 +942,12 @@ slapi_pblock_get( Slapi_PBlock *pblock, int arg, void *value )
}
(*(IFP *)value) = pblock->pb_plugin->plg_bepredelete;
break;
+ case SLAPI_PLUGIN_BE_PRE_CLOSE_FN:
+ if (pblock->pb_plugin->plg_type != SLAPI_PLUGIN_BEPREOPERATION) {
+ return( -1 );
+ }
+ (*(IFP *)value) = pblock->pb_plugin->plg_bepreclose;
+ break;
/* backend postoperation plugin */
case SLAPI_PLUGIN_BE_POST_MODIFY_FN:
@@ -962,6 +974,12 @@ slapi_pblock_get( Slapi_PBlock *pblock, int arg, void *value )
}
(*(IFP *)value) = pblock->pb_plugin->plg_bepostdelete;
break;
+ case SLAPI_PLUGIN_BE_POST_OPEN_FN:
+ if (pblock->pb_plugin->plg_type != SLAPI_PLUGIN_BEPOSTOPERATION) {
+ return( -1 );
+ }
+ (*(IFP *)value) = pblock->pb_plugin->plg_bepostopen;
+ break;
/* internal preoperation plugin */
case SLAPI_PLUGIN_INTERNAL_PRE_MODIFY_FN:
@@ -2014,6 +2032,12 @@ slapi_pblock_set( Slapi_PBlock *pblock, int arg, void *value )
case SLAPI_PLUGIN_DB_ADD_SCHEMA_FN:
pblock->pb_plugin->plg_add_schema = (IFP) value;
break;
+ case SLAPI_PLUGIN_DB_GET_INFO_FN:
+ pblock->pb_plugin->plg_get_info = (IFP) value;
+ break;
+ case SLAPI_PLUGIN_DB_SET_INFO_FN:
+ pblock->pb_plugin->plg_set_info = (IFP) value;
+ break;
case SLAPI_PLUGIN_DB_SEQ_FN:
if ( pblock->pb_plugin->plg_type != SLAPI_PLUGIN_DATABASE ) {
return( -1 );
@@ -2332,6 +2356,12 @@ slapi_pblock_set( Slapi_PBlock *pblock, int arg, void *value )
}
pblock->pb_plugin->plg_bepredelete = (IFP) value;
break;
+ case SLAPI_PLUGIN_BE_PRE_CLOSE_FN:
+ if (pblock->pb_plugin->plg_type != SLAPI_PLUGIN_BEPREOPERATION) {
+ return( -1 );
+ }
+ pblock->pb_plugin->plg_bepreclose = (IFP) value;
+ break;
/* backend postoperation plugin */
case SLAPI_PLUGIN_BE_POST_MODIFY_FN:
@@ -2358,7 +2388,12 @@ slapi_pblock_set( Slapi_PBlock *pblock, int arg, void *value )
}
pblock->pb_plugin->plg_bepostdelete = (IFP) value;
break;
-
+ case SLAPI_PLUGIN_BE_POST_OPEN_FN:
+ if (pblock->pb_plugin->plg_type != SLAPI_PLUGIN_BEPOSTOPERATION) {
+ return( -1 );
+ }
+ pblock->pb_plugin->plg_bepostopen = (IFP) value;
+ break;
/* internal preoperation plugin */
case SLAPI_PLUGIN_INTERNAL_PRE_MODIFY_FN: