summaryrefslogtreecommitdiffstats
path: root/ldap/servers/slapd/libglobs.c
diff options
context:
space:
mode:
authorNoriko Hosoi <nhosoi@redhat.com>2006-09-27 23:40:52 +0000
committerNoriko Hosoi <nhosoi@redhat.com>2006-09-27 23:40:52 +0000
commit1f2f6bf58dd9e6a5064960fb334e0f022baf4ff5 (patch)
tree393103031b7a818d6983446711d8986e112d08f1 /ldap/servers/slapd/libglobs.c
parent7452be8870166cd045f7c32ac934b02aa850cb1a (diff)
downloadds-1f2f6bf58dd9e6a5064960fb334e0f022baf4ff5.tar.gz
ds-1f2f6bf58dd9e6a5064960fb334e0f022baf4ff5.tar.xz
ds-1f2f6bf58dd9e6a5064960fb334e0f022baf4ff5.zip
[207427] parameterizing the hardcoded paths (Comment #15)
phase 1. parameterizing config, schema and ldif directory
Diffstat (limited to 'ldap/servers/slapd/libglobs.c')
-rw-r--r--ldap/servers/slapd/libglobs.c54
1 files changed, 52 insertions, 2 deletions
diff --git a/ldap/servers/slapd/libglobs.c b/ldap/servers/slapd/libglobs.c
index 0ddb5fcf..7cb039b4 100644
--- a/ldap/servers/slapd/libglobs.c
+++ b/ldap/servers/slapd/libglobs.c
@@ -513,9 +513,16 @@ static struct config_get_and_set {
CONFIG_CONSTANT_STRING, NULL},
{CONFIG_HASH_FILTERS_ATTRIBUTE, config_set_hash_filters,
NULL, 0, NULL, CONFIG_ON_OFF, (ConfigGetFunc)config_get_hash_filters},
- {CONFIG_INSTANCEDIR_ATTRIBUTE, NULL /* read only */,
+ {CONFIG_INSTANCEDIR_ATTRIBUTE, config_set_instancedir,
NULL, 0,
(void**)&global_slapdFrontendConfig.instancedir, CONFIG_STRING, NULL},
+ /* parameterizing schema dir */
+ {CONFIG_SCHEMADIR_ATTRIBUTE, config_set_schemadir,
+ NULL, 0,
+ (void**)&global_slapdFrontendConfig.schemadir, CONFIG_STRING, NULL},
+ /* parameterizing ldif dir */
+ {CONFIG_LDIFDIR_ATTRIBUTE, config_set_ldifdir,
+ NULL, 0, NULL, CONFIG_STRING, NULL},
{CONFIG_REWRITE_RFC1274_ATTRIBUTE, config_set_rewrite_rfc1274,
NULL, 0,
(void**)&global_slapdFrontendConfig.rewrite_rfc1274, CONFIG_ON_OFF, NULL},
@@ -2344,7 +2351,7 @@ config_set_instancedir( const char *attrname, char *value, char *errorbuf, int a
/* Set the slapd type also */
config_set_slapd_type ();
- /* Set the configdir if not set */
+ /* Set the configdir if not set (it must be set since 7.2) */
if (!slapdFrontendConfig->configdir)
{
char newdir[MAXPATHLEN+1];
@@ -4220,6 +4227,49 @@ config_set_configdir(const char *attrname, char *value, char *errorbuf, int appl
return retVal;
}
+char *
+config_get_schemadir()
+{
+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
+ char *retVal;
+
+ CFG_LOCK_READ(slapdFrontendConfig);
+ retVal = config_copy_strval(slapdFrontendConfig->schemadir);
+ CFG_UNLOCK_READ(slapdFrontendConfig);
+
+ return retVal;
+}
+
+int
+config_set_schemadir(const char *attrname, char *value, char *errorbuf, int apply)
+{
+ int retVal = LDAP_SUCCESS;
+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
+
+ if ( config_value_is_null( attrname, value, errorbuf, 0 )) {
+ return LDAP_OPERATIONS_ERROR;
+ }
+
+ if (!apply) {
+ return retVal;
+ }
+
+ CFG_LOCK_WRITE(slapdFrontendConfig);
+ slapi_ch_free((void **)&slapdFrontendConfig->schemadir);
+
+ slapdFrontendConfig->schemadir = slapi_ch_strdup(value);
+
+ CFG_UNLOCK_WRITE(slapdFrontendConfig);
+ return retVal;
+}
+
+int
+config_set_ldifdir(const char *attrname, char *value, char *errorbuf, int apply)
+{
+ /* noop */
+ return LDAP_SUCCESS;
+}
+
char **
config_get_errorlog_list()
{