summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNoriko Hosoi <nhosoi@redhat.com>2007-07-11 01:14:05 +0000
committerNoriko Hosoi <nhosoi@redhat.com>2007-07-11 01:14:05 +0000
commit64f60a0fb1b81693d67d0e613e8a63d361a45974 (patch)
tree474b439da22c2e1fdcf23274d0456d50bdc543dc
parent6f2efd5beaf603f8b731dd99d753874794f451a3 (diff)
downloadds-64f60a0fb1b81693d67d0e613e8a63d361a45974.tar.gz
ds-64f60a0fb1b81693d67d0e613e8a63d361a45974.tar.xz
ds-64f60a0fb1b81693d67d0e613e8a63d361a45974.zip
Resolves: #247215
Summary: Reimplement ds_remove without setuputil code (comment #6) Description: adding nsslapd-instancedir to dse.ldif for ds_remove to find out the instance dir path.
-rw-r--r--ldap/admin/src/create_instance.c1
-rw-r--r--ldap/servers/slapd/libglobs.c10
-rw-r--r--ldap/servers/slapd/proto-slap.h1
-rw-r--r--ldap/servers/slapd/slap.h1
4 files changed, 13 insertions, 0 deletions
diff --git a/ldap/admin/src/create_instance.c b/ldap/admin/src/create_instance.c
index 52641425..7623e2e0 100644
--- a/ldap/admin/src/create_instance.c
+++ b/ldap/admin/src/create_instance.c
@@ -2687,6 +2687,7 @@ char *ds_gen_confs(char *sroot, server_config_s *cf, char *cs_path)
fprintf(f, "nsslapd-tmpdir: %s\n", cf->tmp_dir);
fprintf(f, "nsslapd-certdir: %s\n", cf->cert_dir);
fprintf(f, "nsslapd-ldifdir: %s\n", cf->ldif_dir);
+ fprintf(f, "nsslapd-instancedir: %s\n", cf->inst_dir);
fprintf(f, "nsslapd-bakdir: %s\n", cf->bak_dir);
/* We use the system SASL by default on Linux, so we don't need to set sasl path */
if (NULL != cf->sasl_path) {
diff --git a/ldap/servers/slapd/libglobs.c b/ldap/servers/slapd/libglobs.c
index 400cedcc..2e03e297 100644
--- a/ldap/servers/slapd/libglobs.c
+++ b/ldap/servers/slapd/libglobs.c
@@ -542,6 +542,9 @@ 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},
+ /* instance dir; used by admin tasks */
+ {CONFIG_INSTDIR_ATTRIBUTE, config_set_instancedir,
+ NULL, 0, NULL, CONFIG_STRING, NULL},
/* parameterizing schema dir */
{CONFIG_SCHEMADIR_ATTRIBUTE, config_set_schemadir,
NULL, 0,
@@ -4462,6 +4465,13 @@ config_set_configdir(const char *attrname, char *value, char *errorbuf, int appl
return retVal;
}
+/* W/o the setter, "config_set: the attribute nsslapd-instancedir is read only" is printed out. */
+int
+config_set_instancedir(const char *attrname, char *value, char *errorbuf, int apply)
+{
+ return LDAP_SUCCESS;
+}
+
char *
config_get_schemadir()
{
diff --git a/ldap/servers/slapd/proto-slap.h b/ldap/servers/slapd/proto-slap.h
index d3849446..06d92c11 100644
--- a/ldap/servers/slapd/proto-slap.h
+++ b/ldap/servers/slapd/proto-slap.h
@@ -316,6 +316,7 @@ int config_set_versionstring(const char *attrname, char *versionstring, char *e
int config_set_enquote_sup_oc(const char *attrname, char *value, char *errorbuf, int apply );
int config_set_basedn( const char *attrname, char *value, char *errorbuf, int apply );
int config_set_configdir( const char *attrname, char *value, char *errorbuf, int apply );
+int config_set_instancedir( const char *attrname, char *value, char *errorbuf, int apply );
int config_set_schemadir( const char *attrname, char *value, char *errorbuf, int apply );
int config_set_lockdir( const char *attrname, char *value, char *errorbuf, int apply );
int config_set_tmpdir( const char *attrname, char *value, char *errorbuf, int apply );
diff --git a/ldap/servers/slapd/slap.h b/ldap/servers/slapd/slap.h
index 2079abf3..1be6c20e 100644
--- a/ldap/servers/slapd/slap.h
+++ b/ldap/servers/slapd/slap.h
@@ -1724,6 +1724,7 @@ typedef struct _slapdEntryPoints {
#define CONFIG_REWRITE_RFC1274_ATTRIBUTE "nsslapd-rewrite-rfc1274"
#define CONFIG_CONFIG_ATTRIBUTE "nsslapd-config"
+#define CONFIG_INSTDIR_ATTRIBUTE "nsslapd-instancedir"
#define CONFIG_SCHEMADIR_ATTRIBUTE "nsslapd-schemadir"
#define CONFIG_LOCKDIR_ATTRIBUTE "nsslapd-lockdir"
#define CONFIG_TMPDIR_ATTRIBUTE "nsslapd-tmpdir"