summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNoriko Hosoi <nhosoi@redhat.com>2007-06-22 21:54:58 +0000
committerNoriko Hosoi <nhosoi@redhat.com>2007-06-22 21:54:58 +0000
commit27fdf0afda57ffd7acf03e66aeb5b54d2506d167 (patch)
tree18f428dee8ad82c0110459c921601c07263a8780
parent6b13074c005e8d5881f4d76ebddf187e3137116f (diff)
downloadds-27fdf0afda57ffd7acf03e66aeb5b54d2506d167.tar.gz
ds-27fdf0afda57ffd7acf03e66aeb5b54d2506d167.tar.xz
ds-27fdf0afda57ffd7acf03e66aeb5b54d2506d167.zip
Resolves: #245407
Summary: Add config attributes to cn=config to support Console (comment #1) Description: Console needs to know the default paths for ldif_dir and bak_dir. Adding the paths to cn=config.
-rw-r--r--ldap/servers/slapd/libglobs.c79
-rw-r--r--ldap/servers/slapd/proto-slap.h4
-rw-r--r--ldap/servers/slapd/slap.h4
3 files changed, 87 insertions, 0 deletions
diff --git a/ldap/servers/slapd/libglobs.c b/ldap/servers/slapd/libglobs.c
index 101f3283..400cedcc 100644
--- a/ldap/servers/slapd/libglobs.c
+++ b/ldap/servers/slapd/libglobs.c
@@ -558,6 +558,14 @@ static struct config_get_and_set {
{CONFIG_CERTDIR_ATTRIBUTE, config_set_certdir,
NULL, 0,
(void**)&global_slapdFrontendConfig.certdir, CONFIG_STRING, config_get_certdir},
+ /* parameterizing ldif dir */
+ {CONFIG_LDIFDIR_ATTRIBUTE, config_set_ldifdir,
+ NULL, 0,
+ (void**)&global_slapdFrontendConfig.ldifdir, CONFIG_STRING, config_get_ldifdir},
+ /* parameterizing bak dir */
+ {CONFIG_BAKDIR_ATTRIBUTE, config_set_bakdir,
+ NULL, 0,
+ (void**)&global_slapdFrontendConfig.bakdir, CONFIG_STRING, config_get_bakdir},
/* parameterizing sasl plugin path */
{CONFIG_SASLPATH_ATTRIBUTE, config_set_saslpath,
NULL, 0,
@@ -4599,6 +4607,77 @@ config_set_certdir(const char *attrname, char *value, char *errorbuf, int apply)
}
char *
+config_get_ldifdir()
+{
+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
+ char *retVal;
+
+ CFG_LOCK_READ(slapdFrontendConfig);
+ retVal = config_copy_strval(slapdFrontendConfig->ldifdir);
+ CFG_UNLOCK_READ(slapdFrontendConfig);
+
+ return retVal;
+}
+
+int
+config_set_ldifdir(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->ldifdir);
+
+ slapdFrontendConfig->ldifdir = slapi_ch_strdup(value);
+
+ CFG_UNLOCK_WRITE(slapdFrontendConfig);
+ return retVal;
+}
+
+char *
+config_get_bakdir()
+{
+ slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
+ char *retVal;
+
+ CFG_LOCK_READ(slapdFrontendConfig);
+ retVal = config_copy_strval(slapdFrontendConfig->bakdir);
+ CFG_UNLOCK_READ(slapdFrontendConfig);
+
+ return retVal;
+}
+
+int
+config_set_bakdir(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->bakdir);
+
+ slapdFrontendConfig->bakdir = slapi_ch_strdup(value);
+
+ CFG_UNLOCK_WRITE(slapdFrontendConfig);
+ return retVal;
+}
+char *
config_get_saslpath()
{
slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig();
diff --git a/ldap/servers/slapd/proto-slap.h b/ldap/servers/slapd/proto-slap.h
index 6a68d049..d3849446 100644
--- a/ldap/servers/slapd/proto-slap.h
+++ b/ldap/servers/slapd/proto-slap.h
@@ -320,6 +320,8 @@ int config_set_schemadir( const char *attrname, char *value, char *errorbuf, int
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 );
int config_set_certdir( const char *attrname, char *value, char *errorbuf, int apply );
+int config_set_ldifdir( const char *attrname, char *value, char *errorbuf, int apply );
+int config_set_bakdir( const char *attrname, char *value, char *errorbuf, int apply );
int config_set_saslpath( const char *attrname, char *value, char *errorbuf, int apply );
int config_set_attrname_exceptions( const char *attrname, char *value, char *errorbuf, int apply );
int config_set_hash_filters( const char *attrname, char *value, char *errorbuf, int apply );
@@ -430,6 +432,8 @@ char *config_get_schemadir();
char *config_get_lockdir();
char *config_get_tmpdir();
char *config_get_certdir();
+char *config_get_ldifdir();
+char *config_get_bakdir();
char *config_get_saslpath();
char **config_get_errorlog_list();
char **config_get_accesslog_list();
diff --git a/ldap/servers/slapd/slap.h b/ldap/servers/slapd/slap.h
index da7da7b9..2079abf3 100644
--- a/ldap/servers/slapd/slap.h
+++ b/ldap/servers/slapd/slap.h
@@ -1728,6 +1728,8 @@ typedef struct _slapdEntryPoints {
#define CONFIG_LOCKDIR_ATTRIBUTE "nsslapd-lockdir"
#define CONFIG_TMPDIR_ATTRIBUTE "nsslapd-tmpdir"
#define CONFIG_CERTDIR_ATTRIBUTE "nsslapd-certdir"
+#define CONFIG_LDIFDIR_ATTRIBUTE "nsslapd-ldifdir"
+#define CONFIG_BAKDIR_ATTRIBUTE "nsslapd-bakdir"
#define CONFIG_SASLPATH_ATTRIBUTE "nsslapd-saslpath"
#define CONFIG_SSLCLIENTAUTH_ATTRIBUTE "nsslapd-SSLclientAuth"
#define CONFIG_SSL_CHECK_HOSTNAME_ATTRIBUTE "nsslapd-ssl-check-hostname"
@@ -1906,6 +1908,8 @@ typedef struct _slapdFrontendConfig {
char *lockdir; /* full path name of directory containing lock files */
char *tmpdir; /* full path name of directory containing tmp files */
char *certdir; /* full path name of directory containing cert files */
+ char *ldifdir; /* full path name of directory containing ldif files */
+ char *bakdir; /* full path name of directory containing bakup files */
char *saslpath; /* full path name of directory containing sasl plugins */
int attrname_exceptions; /* if true, allow questionable attribute names */
int rewrite_rfc1274; /* return attrs for both v2 and v3 names */