浏览代码

163064 - It appears that Active Directory has a problem where it allows duplicate values for system-only multivalued attributes. This change just skips the dscorepropagationdata attibute when receiving a change from DirSync.

Nathan Kinder 20 年之前
父节点
当前提交
3d5f79ddfc
共有 1 个文件被更改,包括 5 次插入2 次删除
  1. 5 2
      ldap/servers/plugins/replication/windows_connection.c

+ 5 - 2
ldap/servers/plugins/replication/windows_connection.c

@@ -529,11 +529,14 @@ windows_LDAPMessage2Entry(LDAP * ld, LDAPMessage * msg, int attrsonly) {
  
 	for ( a = ldap_first_attribute( ld, msg, &ber ); a!=NULL; a=ldap_next_attribute( ld, msg, ber ) ) 
 	{
-		if (0 == strcasecmp(a,"dnsRecord") || 0 == strcasecmp(a,"dnsproperty"))
+		if (0 == strcasecmp(a,"dnsRecord") || 0 == strcasecmp(a,"dnsproperty") ||
+		    0 == strcasecmp(a,"dscorepropagationdata"))
 		{
 			/* AD returns us entries with these attributes that we are not interested in, 
 			 * but they break the entry attribute code (I think it is looking at null-terminated
-			 * string values, but the values are binary here). So we skip those attributes as a workaround.
+			 * string values, but the values are binary here). It appears that AD has some problems
+			 * with allowing duplicate values for system-only multi-valued attributes. So we skip
+			 * those attributes as a workaround.
 			 */
 			;
 		} else