History log of /sssd-io/src/responder/nss/nss_get_object.c
Revision Date Author Comments Expand
a7d6ca275d6b2e5d396cbefb18d0ee880011e271 06-Nov-2017 Sumit Bose <sbose@redhat.com>

nss: make memcache_delete_entry() public Related to https://pagure.io/SSSD/sssd/issue/2478 Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>

431c7508e0d256b9c712cb9dcb9aa4cb635f4a0b 28-Aug-2017 Fabiano Fidêncio <fidencio@redhat.com>

NSS: Don't error out when deleting an entry which has id = 0 from the memcache This code path can be easily triggered by calling `id 0` after applying the previous patch in this series and SSSD should not error out in this case. As SSSD doesn't handle "root", this entry never will be part of the memcache and EOK can be safely returned there. Related: https://pagure.io/SSSD/sssd/issue/3460 Signed-off-by: Fabiano Fidêncio <fidencio@redhat.com> Reviewed-by: Jakub Hrozek <jhrozek@redhat.com>

cee85e8fb9534ec997e5388fce59f392cf029573 30-Mar-2017 Jakub Hrozek <jhrozek@redhat.com>

CACHE_REQ: Domain type selection in cache_req Related to: https://pagure.io/SSSD/sssd/issue/3310 Adds a new enumeration cache_req_dom_type. It is a tri-state that allows the caller to select which domains can be contacted - either only POSIX, only application domains or any type. Not all plugins of cache_req have the new parameter added -- only those that are usable/useful in a non-POSIX environment. For example, it makes no sense to allow the selection for calls by ID because those are inherently POSIX-specific. Also, services or netgroups are supported only coming from POSIX domains. At the moment, the patch should not change any behaviour as all calls default to contacting POSIX domains only. Reviewed-by: Pavel Březina <pbrezina@redhat.com>

/sssd-io/src/responder/common/cache_req/cache_req.c /sssd-io/src/responder/common/cache_req/cache_req.h /sssd-io/src/responder/common/cache_req/cache_req_private.h /sssd-io/src/responder/common/cache_req/plugins/cache_req_enum_groups.c /sssd-io/src/responder/common/cache_req/plugins/cache_req_enum_svc.c /sssd-io/src/responder/common/cache_req/plugins/cache_req_enum_users.c /sssd-io/src/responder/common/cache_req/plugins/cache_req_group_by_filter.c /sssd-io/src/responder/common/cache_req/plugins/cache_req_group_by_id.c /sssd-io/src/responder/common/cache_req/plugins/cache_req_group_by_name.c /sssd-io/src/responder/common/cache_req/plugins/cache_req_host_by_name.c /sssd-io/src/responder/common/cache_req/plugins/cache_req_initgroups_by_name.c /sssd-io/src/responder/common/cache_req/plugins/cache_req_netgroup_by_name.c /sssd-io/src/responder/common/cache_req/plugins/cache_req_object_by_id.c /sssd-io/src/responder/common/cache_req/plugins/cache_req_object_by_name.c /sssd-io/src/responder/common/cache_req/plugins/cache_req_object_by_sid.c /sssd-io/src/responder/common/cache_req/plugins/cache_req_svc_by_name.c /sssd-io/src/responder/common/cache_req/plugins/cache_req_svc_by_port.c /sssd-io/src/responder/common/cache_req/plugins/cache_req_user_by_cert.c /sssd-io/src/responder/common/cache_req/plugins/cache_req_user_by_filter.c /sssd-io/src/responder/common/cache_req/plugins/cache_req_user_by_id.c /sssd-io/src/responder/common/cache_req/plugins/cache_req_user_by_name.c /sssd-io/src/responder/ifp/ifp_groups.c /sssd-io/src/responder/ifp/ifp_users.c /sssd-io/src/responder/ifp/ifpsrv_cmd.c nss_enum.c nss_get_object.c /sssd-io/src/responder/pam/pamsrv_cmd.c /sssd-io/src/responder/sudo/sudosrv_get_sudorules.c /sssd-io/src/tests/cmocka/test_responder_cache_req.c
4049b63f8c67ada17b453463b0451ca6be3d5de4 19-Dec-2016 Pavel Březina <pbrezina@redhat.com>

nss: rewrite nss responder so it uses cache_req 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. Resolves: https://fedorahosted.org/sssd/ticket/3151 Reviewed-by: Lukáš Slebodník <lslebodn@redhat.com>