Browse Source

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
Rich Megginson 15 years ago
parent
commit
2db1f5a13b
2 changed files with 7 additions and 6 deletions
  1. 2 2
      ldap/schema/60qmail.ldif
  2. 5 4
      ldap/servers/plugins/syntaxes/ces.c

+ 2 - 2
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
   )
 #

+ 5 - 4
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,