URL: https://github.com/SSSD/sssd/pull/89
Author: pbrezina
 Title: #89: nss: rewrite nss responder so it uses cache_req
Action: edited

 Changed field: body
Original value:
"""
Given the size of the current nss responder it was quite impossible
    to simply switch into using the cache_req interface, especially
    because most of the code was duplication of cache lookups.

    This patch completely rewrites the responder from scratch. The amount
    of code was reduced to less than a half lines of code with no code 
duplication,
    better documentation and better maintainability and readability.

    All functionality should be intact.

    *Code organization*
    All protocol (parsing input message and send a reply) is placed
    in nss_protocol.c. Functions that deals with creating a reply
    packet are placed into their specific nss_protocol_$object.c files.

    All supported commands are placed into nss_cmd.c. Functions that
    deals with cache req are in nss_get_object.c and nss_enum.c.

    *Code flow for non-enumeration*
    An nss_getby_$input-type is called for each non-enumeration command.
    This function parses the input message, creates a cache_req_data
    structure and issues nss_get_object that calls cache_req. When
    this request is done nss_getby_done make sure a reply is sent to
    the client.

    *Comments on enumeration*
    I made some effort to make sure enumeration shares the same code
    for users, groups, services and netgroups. Netgroups now uses
    nss negative cache instead of implementing its own.

    *Unit tests*
    ALl existing unit tests, including the one for nss responder, pass.
    @mzidek-rh is going to write new unit tests for added functionality
    into cache_req and sss_ptr_hash interface.

    Thanks to @spbnick for doing the first round of review, focused on
    code documentation and readibility.
"""

_______________________________________________
sssd-devel mailing list -- sssd-devel@lists.fedorahosted.org
To unsubscribe send an email to sssd-devel-le...@lists.fedorahosted.org

Reply via email to