Before comparing DNs, you can normalize the DNs to prevent the comparison from failing due to extra white space or different capitalization. You can normalize a DN with slapi_dn_normalize() and slapi_dn_normalize_case(), as shown in the following example.
#include "slapi-plugin.h" int test_norm() { char * test_DN; /* Original, not normalized */ char * copy_DN; /* Copy that is normalized. */ test_DN = "dc=Example, dc=COM";/* Prior to normalization...*/ /* When normalizing the DN with slapi_dn_normalize() and * slapi_dn_normalize_case(), the DN is changed in place. * Use slapi_ch_strdup() to work on a copy. */ copy_DN = slapi_ch_strdup(test_DN); copy_DN = slapi_dn_normalize_case(copy_DN); return 0; }
The function slapi_dn_normalize_case() works directly on the char * DN passed as an argument. This prepares the string for “case ignore matching” as specified, but not defined, for X.500.
Use slapi_ch_strdup() to make a copy first if you do not want to modify the original.