diff options
author | Nathan Kinder <nkinder@redhat.com> | 2009-05-08 09:14:42 -0700 |
---|---|---|
committer | Nathan Kinder <nkinder@redhat.com> | 2009-05-08 09:14:42 -0700 |
commit | d19eafcd211d89cffdac1b2c3432087443e7d122 (patch) | |
tree | 26d2b7f956c2ceaa3f605a42552a113e156b5b30 /ldap/servers/slapd/libglobs.c | |
parent | 5d3d883251dd15cf719181e33fb6954454869822 (diff) | |
download | ds-d19eafcd211d89cffdac1b2c3432087443e7d122.tar.gz ds-d19eafcd211d89cffdac1b2c3432087443e7d122.tar.xz ds-d19eafcd211d89cffdac1b2c3432087443e7d122.zip |
Added capability to validate syntax of values being added to the database. Also added numericstring syntax support.
For more details, see the design doc at http://directory.fedoraproject.org/wiki/Syntax_Validation_Design
Diffstat (limited to 'ldap/servers/slapd/libglobs.c')
-rw-r--r-- | ldap/servers/slapd/libglobs.c | 59 |
1 files changed, 59 insertions, 0 deletions
diff --git a/ldap/servers/slapd/libglobs.c b/ldap/servers/slapd/libglobs.c index e473663c..30ad5f3a 100644 --- a/ldap/servers/slapd/libglobs.c +++ b/ldap/servers/slapd/libglobs.c @@ -321,6 +321,12 @@ static struct config_get_and_set { {CONFIG_SCHEMACHECK_ATTRIBUTE, config_set_schemacheck, NULL, 0, (void**)&global_slapdFrontendConfig.schemacheck, CONFIG_ON_OFF, NULL}, + {CONFIG_SYNTAXCHECK_ATTRIBUTE, config_set_syntaxcheck, + NULL, 0, + (void**)&global_slapdFrontendConfig.syntaxcheck, CONFIG_ON_OFF, NULL}, + {CONFIG_SYNTAXLOGGING_ATTRIBUTE, config_set_syntaxlogging, + NULL, 0, + (void**)&global_slapdFrontendConfig.syntaxlogging, CONFIG_ON_OFF, NULL}, {CONFIG_DS4_COMPATIBLE_SCHEMA_ATTRIBUTE, config_set_ds4_compatible_schema, NULL, 0, (void**)&global_slapdFrontendConfig.ds4_compatible_schema, @@ -891,6 +897,8 @@ FrontendConfig_init () { cfg->sizelimit = SLAPD_DEFAULT_SIZELIMIT; cfg->timelimit = SLAPD_DEFAULT_TIMELIMIT; cfg->schemacheck = LDAP_ON; + cfg->syntaxcheck = LDAP_OFF; + cfg->syntaxlogging = LDAP_OFF; cfg->ds4_compatible_schema = LDAP_OFF; cfg->enquote_sup_oc = LDAP_OFF; cfg->lastmod = LDAP_ON; @@ -2422,6 +2430,33 @@ config_set_schemacheck( const char *attrname, char *value, char *errorbuf, int a return retVal; } +int +config_set_syntaxcheck( const char *attrname, char *value, char *errorbuf, int apply ) { + int retVal = LDAP_SUCCESS; + slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); + + retVal = config_set_onoff ( attrname, + value, + &(slapdFrontendConfig->syntaxcheck), + errorbuf, + apply); + + return retVal; +} + +int +config_set_syntaxlogging( const char *attrname, char *value, char *errorbuf, int apply ) { + int retVal = LDAP_SUCCESS; + slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); + + retVal = config_set_onoff ( attrname, + value, + &(slapdFrontendConfig->syntaxlogging), + errorbuf, + apply); + + return retVal; +} int config_set_ds4_compatible_schema( const char *attrname, char *value, char *errorbuf, int apply ) { @@ -4034,6 +4069,30 @@ config_get_schemacheck() { } int +config_get_syntaxcheck() { + slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); + int retVal; + + CFG_LOCK_READ(slapdFrontendConfig); + retVal = slapdFrontendConfig->syntaxcheck; + CFG_UNLOCK_READ(slapdFrontendConfig); + + return retVal; +} + +int +config_get_syntaxlogging() { + slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); + int retVal; + + CFG_LOCK_READ(slapdFrontendConfig); + retVal = slapdFrontendConfig->syntaxlogging; + CFG_UNLOCK_READ(slapdFrontendConfig); + + return retVal; +} + +int config_get_ds4_compatible_schema() { slapdFrontendConfig_t *slapdFrontendConfig = getFrontendConfig(); int retVal; |