summaryrefslogtreecommitdiff
path: root/src/responder/nss/nsssrv_cmd.c
AgeCommit message (Collapse)AuthorFilesLines
2010-09-22Initgroups on a non-cached user should go to the data providerStephen Gallagher1-1/+2
We were accidentally returning an error when sysdb_getpwnam() returned zero results internally in sysdb_initgroups(). The correct behavior here is to return EOK and a result object with zero entries.
2010-09-08Handle multiple simultaneous enumeration requestsStephen Gallagher1-289/+706
Previously, if a second enumeration request arrived while one was already being processed, each process would receive only a subset of the total number of available users or groups. This is because we were maintaining the response object as a global value in the NSS responder. The second request would come in, see that the data set was already populated, and start reading from wherever the cursor was currently pointed. With this patch, we now move the cursor to the client context instead of the global NSS context. Additionally, this patch completely rewrites the approach to enumerations in the tevent_req style. This makes it much easier to follow in the code. In order to ensure that a slow or malicious client cannot hold onto a reference for the setent result object indefinitely, we set an expiration on the object. We use the enum_cache_timeout here, since that is an appropriate value. If the timeout fires during the normal operation of the get*ent() loop of a client program, we will save the current values of the read index so that we can resume as soon as the object has been refreshed by an implicit setent call. Instead of deleting the enumeration result object immediately after the last in-progress client has read it, we'll keep the object around for the lifetime of enum_cache_timeout. This way, additional clients making enumeration requests can still access the results in-memory.
2010-09-08Dead assignments cleanup in NSS responderJan Zeleny1-5/+7
Various dead assignments were deleted, some return value inspections were added. Ticket: #588
2010-06-17Refactor the negative cacheStephen Gallagher1-13/+14
Rename functions from nss_ncache_* to sss_ncache_* Move negative cache to responder/common and rename as negcache.c/h
2010-06-17Ensure that all domains are checked for users/groupsStephen Gallagher1-3/+15
There was a bug in the negative cache checks (probably a leftover from when filter_users was global-only) that meant that if a user was filtered out of a domain, the remaining domains would not be checked for that user. (Same for groups/initgroups)
2010-04-12sysdb: convert sysdb_initgroupsSimo Sorce1-222/+117
2010-04-12Adjust fill_pwent and fill_grentSimo Sorce1-13/+13
fill_pwent should return the number of users actually processed. Otherwise in case of a recoverable error we may end up skipping a large chunk of users. fill_grent doesn't need to distinguish between number of entries and number of groups to process since we started adding memberuid. Remove remnants that are not useful anymore.
2010-04-12sysdb: convert sysdb_enumgrentSimo Sorce1-161/+106
2010-04-12sysdb: convert sysdb_enumpwentSimo Sorce1-172/+116
2010-04-12sysdb: convert sysdb_getgrgidSimo Sorce1-193/+109
2010-04-12sysdb: convert sysdb_getgrnamSimo Sorce1-223/+134
2010-04-12sysdb: convert sysdb_getpwuidSimo Sorce1-198/+107
2010-04-12sysdb: convert sysdb_getpwnamSimo Sorce1-229/+190
2010-03-08Fixed alignment problems in nss client/serverGeorge McCollister1-6/+5
I fixed a handful of alignment problems in sss_client and nss responder. Enumerating group and passwd with getgrent and getpwent now works correctly on ARM. Signed-off-by: George McCollister <georgem@novatech-llc.com>
2010-03-04Add forgotten \n in DEBUG statementsMartin Nagy1-2/+2
Logs from confdb with missing '\n' in the DEBUG statements annoyed me so I decided to fix them. I also made a quick grep through the code and found other places so I fixed them too.
2010-02-18Rename server/ directory to src/Stephen Gallagher1-0/+3182
Also update BUILD.txt