https://fedorahosted.org/389/ticket/47314
https://fedorahosted.org/389/attachment/ticket/47314/0001-Ticket-47314-Wi...
Bug description: AD returns up to MaxValRange number of multi-
valued attribute values in one search. If more attribute values
exist, subtype ";range=0-(MaxValRange?-1)" is added to the type.
AD Client (DS in this case) has to repeat the search with
";range=MaxValRange?-*" then ";range=(2*MaxValRange?)-*" and so on
until the values with the subtype ";range=low-*" are returned.
Windows Sync plugin did not support the range search.
Fix description: This patch implements the range search for the
multi-valued attribute.
In addition,
1) For the search request, AD returns an attribute with no values
if it was deleted on the AD side even if the delete is one of the
multi-valued attributes. Windows Sync code was always adding the
attribute to the entry's e_deleted_attr list. This patch stops it
if there are more attributes having the same type existing in the
entry.
2) slapi_entry_attr_get_* APIs call slapi_entry_attr_find and set
the return value from the function to the value to return from the
APIs. slapi_entry_attr_find returns -1 if it fails to find the
attribute, which was returned if the type did not exist in the entry.
This patch stops it and let slapi_entry_attr_get_* APIs return the
default return value 0 in case slapi_entry_attr_find fails to find
the type.