diff options
author | Noriko Hosoi <nhosoi@redhat.com> | 2007-06-22 21:54:58 +0000 |
---|---|---|
committer | Noriko Hosoi <nhosoi@redhat.com> | 2007-06-22 21:54:58 +0000 |
commit | 27fdf0afda57ffd7acf03e66aeb5b54d2506d167 (patch) | |
tree | 18f428dee8ad82c0110459c921601c07263a8780 | |
parent | 6b13074c005e8d5881f4d76ebddf187e3137116f (diff) | |
download | ds-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.c | 79 | ||||
-rw-r--r-- | ldap/servers/slapd/proto-slap.h | 4 | ||||
-rw-r--r-- | ldap/servers/slapd/slap.h | 4 |
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 */ |