aa55789 Ticket #521 - modrdn + NSMMReplicationPlugin - Consumer failed to replay change

Authored and Committed by nhosoi 10 years ago
    Ticket #521 - modrdn + NSMMReplicationPlugin - Consumer failed to replay change
    
    Bug description: modrdn on AD is synchronized to DS, but the
    other way does not get synchronized.
    
    Fix description:
    1) process_replay_rename (windows_protocol_util.c): If newparent
       was NULL, the rename operation was skipped. This patch sets
       the original parent dn to the newparent.
    2) process_replay_rename (windows_protocol_util.c): AD does not
       accept deleteoldrdn == 0 (Old RDN must be deleted).  If
       deleteoldrdn is 0, it is replaced with 1 before sending the
       request to AD.
    3) is_subject_of_agreement_remote (windows_protocol_util.c):
       When checking if the entry was in the subtree defined in the
       agreement or not, it returned true only if the entry is a
       direct child of the agreement subtree top. This patch returns
       true if the entry is the further descendent of the subtree.
    4) This patch adds more NULL reference checks.
    5) When the given dn is already normalized, sets it to Slapi_DN
       as a normlized dn.  It saves an unnecessary dn normalization.
    6) Logs in windows sync specific code are prefixed with
       "NSMMReplicationPlugin - windows sync".
    
    Reviewed by Mark and Rich (Thank you!!)
    
    https://fedorahosted.org/389/ticket/521