]> code.citadel.org Git - citadel.git/commitdiff
LDAP module no longer allows duplicate values for the same attribute,
authorDave West <davew@uncensored.citadel.org>
Wed, 10 Oct 2007 17:01:23 +0000 (17:01 +0000)
committerDave West <davew@uncensored.citadel.org>
Wed, 10 Oct 2007 17:01:23 +0000 (17:01 +0000)
stops the ldap server complaining.

citadel/modules/ldap/serv_ldap.c

index 4856f6014382afb56b59de5b8a3e62a71217ef85..4d25c431326eb29958aa2108f4f9cdf3187093fe 100644 (file)
@@ -278,7 +278,14 @@ int CtdlAddLdapAttr(char *cn, char *ou, void **object)
                        if (attrs[cur_attr]->mod_values)
                        {
                                while (attrs[cur_attr]->mod_values[num_values])
+                               {
+                                       if (!strcmp(ou, attrs[cur_attr]->mod_values[num_values]))
+                                       {
+                                               lprintf(CTDL_DEBUG, "LDAP: Ignoring duplicate attribute/value pair\n");
+                                               return 0;
+                                       }
                                        num_values++;
+                               }
                        }
                        attrs[cur_attr]->mod_values = realloc(attrs[cur_attr]->mod_values, (num_values + 2) * (sizeof(char *)));
                        attrs[cur_attr]->mod_values[num_values] = strdup(ou);