c410b87 Ticket #460 - support multiple subtrees and filters

Authored and Committed by nhosoi 8 years ago
    Ticket #460 - support multiple subtrees and filters
    
    Description:
    1. Support multiple subtrees
       new config parameter in windwows sync agreement:
       winSyncSubtreePair: <DS Subtree>:<AD Subtree>
    
       Example:
       winSyncSubtreePair: ou=OU1,dc=DSexample,dc=com:ou=OU1,DC=ADexample,DC=com
       winSyncSubtreePair: ou=OU2,dc=DSexample,dc=com:ou=OU2,DC=ADexample,DC=com
       winSyncSubtreePair: ou=OU3,dc=DSexample,dc=com:ou=OU3,DC=ADexample,DC=com
    
     . Attribute type "winSyncSubtreePair" is added to the objectclass
       "nsDSWindowsReplicationAgreement".
     . If "winSyncSubtreePair" is not set, there is not behavioral
       difference: the AD subtree "nsds7WindowsReplicaSubtree" and the
       DS subtree "nsds7DirectoryReplicaSubtree" are used for the sync
       target checks.
     . When "winSyncSubtreePair" is set, the above 2 config parameters
       are ignored.
       To determine if an entry is the target of the synchronization,
       the DN is examined whether the DN is a descendent of any of the
       subtrees or not. If it is, the subtree of the counter part is
       retrieved.
       Moving an entry from one subtree to another is synchronized.
       Members of a group is synchronized as long as the member entry
       is in any of the defined subtrees.
    
    2. Support filters
       new config parameters in windwows sync agreement:
       winSyncWindowsFilter: <additional filter on AD>
       winSyncDirectoryFilter: <additional filter on DS>
    
       Example:
       winSyncWindowsFilter: (|(cn=*user*)(cn=*group*))
       winSyncDirectoryFilter: (|(uid=*user*)(cn=*group*))
    
     . The filters are set to the windows_userfilter and directory_
       userfilter in the private area in the windows agreement.  And
       when each server is searched the filters are added to the internal
       filter.  For instance, filters shown in the above Example allow
       synchronizing the entries which CN contains "user" or "group".
    
    3. Misc
     . Added slapi_sdn_set_ndn_byref, slapi_sdn_set_ndn_passin, and
       slapi_sdn_common_ancestor to dn.c (see also slapi-plugin.h).
     . Fixed memory leaks.
     . Fixed some of the mixed indentations.
    
    https://fedorahosted.org/389/ticket/460
    
    Reviewed by Rich (Thank you!!)
    
        
file modified
+4 -1
file modified
+93 -0
file modified
+1 -1