diff options
author | Rich Megginson <rmeggins@redhat.com> | 2010-03-08 20:53:49 -0700 |
---|---|---|
committer | Rich Megginson <rmeggins@redhat.com> | 2010-03-09 09:50:22 -0700 |
commit | 2db1f5a13b7198de00b2b14232110ab42fc361ac (patch) | |
tree | 9c32f0844fb28dc085ccf30aeb693b9846885c38 /ldap | |
parent | b8ff06dd240df947fee972fe13bb2826ebb02048 (diff) | |
download | ds-2db1f5a13b7198de00b2b14232110ab42fc361ac.tar.gz ds-2db1f5a13b7198de00b2b14232110ab42fc361ac.tar.xz ds-2db1f5a13b7198de00b2b14232110ab42fc361ac.zip |
Add support for additional schema/matching rules included with 389
https://bugzilla.redhat.com/show_bug.cgi?id=559315
Resolves: bug 559315
Bug Description: Searching some attributes are now case sensitive when they were previously case-insensitive
Reviewed by: nhosoi (Thanks!)
Fix Description:
1) The 60qmail.ldif schema we ship used integerMatch and IA5 syntax
because we used not to support numericString syntax and matching rules -
these have been changed to use the standard qmail definitions
2) Allow IA5String syntax to use caseExactSubstringsMatch - this is required
by krbPrincipalName
Diffstat (limited to 'ldap')
-rw-r--r-- | ldap/schema/60qmail.ldif | 4 | ||||
-rw-r--r-- | ldap/servers/plugins/syntaxes/ces.c | 9 |
2 files changed, 7 insertions, 6 deletions
diff --git a/ldap/schema/60qmail.ldif b/ldap/schema/60qmail.ldif index 8a625485..c118befc 100644 --- a/ldap/schema/60qmail.ldif +++ b/ldap/schema/60qmail.ldif @@ -134,8 +134,8 @@ attributeTypes: ( 1.3.6.1.4.1.7914.1.2.1.13 NAME 'qmailAccountPurge' DESC 'The earliest date when a mailMessageStore will be purged' - EQUALITY integerMatch - SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 + EQUALITY numericStringMatch + SYNTAX 1.3.6.1.4.1.1466.115.121.1.36 SINGLE-VALUE ) # diff --git a/ldap/servers/plugins/syntaxes/ces.c b/ldap/servers/plugins/syntaxes/ces.c index 07abcd5d..c0855d64 100644 --- a/ldap/servers/plugins/syntaxes/ces.c +++ b/ldap/servers/plugins/syntaxes/ces.c @@ -85,12 +85,13 @@ static const char *caseExactOrderingMatch_names[] = {"caseExactOrderingMatch", " static const char *caseExactSubstringsMatch_names[] = {"caseExactSubstringsMatch", "2.5.13.7", NULL}; static const char *caseExactIA5SubstringsMatch_names[] = {"caseExactIA5SubstringsMatch", CASEEXACTIA5SUBSTRINGSMATCH_OID, NULL}; -static char *dirString_syntaxes[] = {COUNTRYSTRING_SYNTAX_OID, - DIRSTRING_SYNTAX_OID, - PRINTABLESTRING_SYNTAX_OID,NULL}; static char *dirStringCompat_syntaxes[] = {COUNTRYSTRING_SYNTAX_OID, PRINTABLESTRING_SYNTAX_OID,NULL}; static char *ia5String_syntaxes[] = {IA5STRING_SYNTAX_OID,NULL}; +static char *caseExactSubstrings_syntaxes[] = {IA5STRING_SYNTAX_OID, /* allow IA5 to use cesubstrs e.g. krbPrincipalName */ + COUNTRYSTRING_SYNTAX_OID, + DIRSTRING_SYNTAX_OID, + PRINTABLESTRING_SYNTAX_OID,NULL}; /* for some reason vendorName and vendorVersion are dirstring but want to use EQUALITY caseExactIA5Match ???? RFC 3045 @@ -171,7 +172,7 @@ DIRSTRING_SYNTAX_OID, 0, dirStringCompat_syntaxes}, /* matching rule desc */ "comparison, characters are not case folded in the Map preparation " "step, and only Insignificant Space Handling is applied in the " "Insignificant Character Handling step.", -"1.3.6.1.4.1.1466.115.121.1.58", 0, dirString_syntaxes}, /* matching rule desc */ +"1.3.6.1.4.1.1466.115.121.1.58", 0, caseExactSubstrings_syntaxes}, /* matching rule desc */ {"caseExactSubstringsMatch-mr", VENDOR, DS_PACKAGE_VERSION, "caseExactSubstringsMatch matching rule plugin"}, /* plugin desc */ caseExactSubstringsMatch_names, /* matching rule name/oid/aliases */ NULL, NULL, NULL, ces_filter_sub, ces_values2keys, |