adamwill / 389-ds-base

Forked from 389-ds-base 4 years ago
Clone

fb1e89c Ticket #425 - support multiple winsync plugins

Authored and Committed by rmeggins 11 years ago
    Ticket #425 - support multiple winsync plugins
    
    https://fedorahosted.org/389/ticket/425
    Resolves: Ticket #425
    Bug Description: support multiple winsync plugins
    Reviewed by: nkinder (Thanks!)
    Branch: 389-ds-base-1.2.11
    Fix Description: Instead of a single WinsyncAPI pointer, use a CList to
    store a list of APIs.  Added API version 3 - the new function is a
    precedence callback so the API can report back the plugin precedence to
    order multiple winsync plugins.  Since each API may have a different
    cookie per agreement, changed the cookie to be a list of cookies indexed
    by the API pointer.  The old slapi_apib interface stored multiple APIs
    per GUID, but did not allow plugins to retrieve them.  I added another
    slapi_apib function which allows the plugin to retrieve all of the APIs
    for a given GUID.
    I also move the test winsync code from the public header into the
    windows_private.c code and compiled it by default.  This will allow us to
    easily enable the plugin for testing, and also exercises the compiler in
    case we make an incompatible change to the public API.
    Platforms tested: RHEL6 x86_64
    Flag Day: Yes - public header file change
    Doc impact: Yes - document the new behavior and precedence