Is used for attributes whose values are ordered sequences of strings for which the case (upper or lower) is not significant when performing comparisons.
#define SYN_CI_LIST 6
Case Ignore List
2.16.840.1.113719.1.1.5.1.6
typedef struct _ci_list { struct _ci_list N_FAR *next; pnstr8 s; } CI_List_T;
uint32 Length of attribute value uint32 Number of strings /* For each string */ Align4 unicode String
caseIgnorelist = dstring *( "$" dstring)
caseIgnorelist ::= SEQUENCE OF LDAPString
For help in understanding the syntax definition template, see Reading Syntax Definitions.
Two case ignore lists match for equality if, and only if, the number of strings in each is the same, and all corresponding strings match. For two corresponding strings in the list to match, they must be the same length and their corresponding characters must be identical (according to the rules for case ignore strings).
When comparing the strings in case ignore lists, the following spaces are regarded as not significant:
Leading spaces (precede the first printing character)
Trailing spaces (follow the last printing character)
Multiple consecutive internal spaces (equivalent to a single space character).
In matching attributes that conform to this syntax, eDirectory omits those spaces that are not significant (as defined above). eDirectory stores insignificant spaces with the attribute value.
The NWDSGetAttrVal function places successive CI_LIST elements in consecutive memory locations. The value parameter of the NWDSGetAttrVal function should point to enough memory to contain both the NULL-terminated strings along with a CI_List_T structure per list element. (The required length of value can be determined by calling the NWDSComputeValSize function.)