summaryrefslogtreecommitdiffstats
path: root/server/responder/nss
Commit message (Collapse)AuthorAgeFilesLines
* Change the why DP clients identifySimo Sorce2009-08-113-85/+15
| | | | Mirrors what we have done with the monitor.
* Change services identification mechanismSimo Sorce2009-08-111-74/+5
| | | | | | | Let services identify themselves voiluntarily as the first operation instead of polling from the monitor. Also consolidate some common functions and make them available as monitor helpers.
* Make child processes exit when parent diesJakub Hrozek2009-08-111-0/+6
| | | | | | | | The child processes call prctl() and when their parent process is killed, they are sent SIGTERM using prctl. This is currently Linux-specific, for non-Linuxes, a similar effect is achieved by catching a set of common termination signals and sending SIGTERM to the process group.
* Make socket paths a compile-time optionStephen Gallagher2009-08-111-1/+0
| | | | | | Previously, we had hardcoded the paths for the NSS, PAM and private PAM sockets to /var/lib/sss/pipes. With this patch, we will specify the sockets with --with-pipe-path.
* Simplify interfaces initializationSimo Sorce2009-08-103-23/+30
| | | | | | | Make as much as possible static, and remove use of talloc_reference and allocation/deallocation of memory when not necessary. Fix also responder use of rctx->conn, was mistakenly used for both monitor and dp connections.
* Cosmetic changesSimo Sorce2009-08-102-17/+17
| | | | | Rationalize and rename connection names in preparatoin for merging of server and connection structures.
* Remove redundant memory contextsSimo Sorce2009-08-101-3/+3
| | | | Simplify code by removing stuff that is never used or redundant.
* Implement resInit for monitor, NSS, PAM, DP and the backendsStephen Gallagher2009-07-201-0/+20
|
* Fix user enumeration bugSimo Sorce2009-05-281-4/+0
| | | | | | The previous patch to fix an enumeration bug found with group enumeration inadvertently introduced a bug with user enumeration. Yeah, almost funny!
* Fix enumerations (bug #42)Simo Sorce2009-05-271-12/+76
| | | | | | | | | | If a backend had all its results filtered in fill_pwent or fill_grent then we would return an empty result, which means "end of results" to the client. Now we return ENOENT and let callers decide what to do. Also make sure we do not grow packets unless we are going to fill them as that's a recipe for killing the client as the size passed to sss_packet_grow is used to determine the size of the final packet.
* Silence warningsSimo Sorce2009-05-262-4/+8
|
* Do not fire up backend search when the data provider is localJakub Hrozek2009-05-261-14/+14
|
* added more flexible handling of client protocolSumit Bose2009-05-151-0/+10
| | | | | - allow different protocol versions for PAM and NSS - support more than one protocol version in the responder
* Fix some more return paths using uninitalized retSimo Sorce2009-05-061-3/+3
|
* Fix use of uninitialized return variableSimo Sorce2009-04-291-5/+5
|
* Force user check and discover user's domainSimo Sorce2009-04-172-278/+0
| | | | | | | | | | | Force a user lookup against the users domain provider. If a user domain is not specified search though all non fully qualifying domains. Perform authentication against the corrent domain auth backend, based on the user's domain found in the lookup if one was not specified. Also move the NSS-DP functions in COMMON-DP as they are reused by the PAM responder too now.
* Fix by_id enumeration with multiple domainsSimo Sorce2009-04-161-0/+10
| | | | | | We need to stop parsing domains as soon as a caaandidate is found and let the callback search additional domains if the id is not found. Should fix ticket #21
* Add common function to retrieve comma sep. listsSimo Sorce2009-04-141-11/+13
| | | | | | Also convert all places where we were using custom code to parse config arguments. And fix a copy&paste error in nss_get_config
* Make reconnection to the Data Provider a global settingStephen Gallagher2009-04-141-5/+2
| | | | | | | Previously, every DP client was allowed to set its own "retries" option. This option was ambiguous, and useless. All DP clients will now use a global option set in the services config called "reconnection_retries"
* Add reconnection code between the NSS responder and the Data providerStephen Gallagher2009-04-141-1/+52
|
* Fix a couple of segfaults and timeout checksSimo Sorce2009-04-131-30/+13
|
* Fix segfaults when passing an unknown domainSimo Sorce2009-04-131-9/+20
| | | | | Also setting dctx->domain to NULL is a recipe for segfaults :-) Assign dctx->domain only when dom actually holds a domain pointer.
* Serialize requests vs backends.Simo Sorce2009-04-091-544/+702
| | | | | | | This way we do not waste resources starting searching for users/groups in multiple backends when the first one has the answer. Also prevents possible race conditions where a user named the same way is found in multiple backends and the wrong one is returned.
* Change the way we retrieve domainsSimo Sorce2009-04-082-177/+87
| | | | | | | | | | | | | To be able to correctly filter out duplicate names when multiple non-fully qualified domains are in use we need to be able to specify the domains order. This is now accomplished by the configuration paramets 'domains' in the config/domains entry. 'domains' is a comma separated list of domain names. This paramter allows also to have disbaled domains in the configuration without requiring to completely delete them. The domains list is now kept in a linked list of sss_domain_info objects. The first domain is also the "default" domain.
* Clean up warnings in SSSDStephen Gallagher2009-04-071-8/+8
|
* Unify name parsing and reposnder headersSimo Sorce2009-04-073-149/+146
| | | | | | Use common sss_parse_name function in all responders Simplify responder headers by combining common,cmd,dp in one header and add name parse structure as part of the common responder context.
* Add way to use files as a proxy backend fro LOCALSimo Sorce2009-04-011-28/+91
| | | | | | | | | | | | Makes LOCAL a normal backend removing some special handling. Fix/Add id range filtering and name filtering Filters uid=0 and gid=0 in the proxy backend as 0 is invalid within sysdb and was causing getxxent calls to fail completely. Fix nss_ncache_check_xxx calls to avoid dirtying the 'ret' variable and causing some unwanted failures. Change sysdb to always return the uid number when searching member entries so that id range filtering can be perfomed also in group searhes (does not work with legacy backends)
* Add a more flexible way to parse and filter names.Simo Sorce2009-04-015-280/+885
| | | | | | | | | | A new nss_parse_name function uses pcre to parse names, this makes it possible, in future, to make the filter user configurable. Add a new filter mechanism to filter out users that uses the negative cache by setting a permanet negative entry. Rework the entry points where the negative cache is checked for.
* Fix potential segfault if dp_ctx is still NULL.Simo Sorce2009-03-271-0/+9
| | | | | | | May happen at startup if, for some reason dp is very slow to start and we receive a request before a reconnection is rescheduled in the responder dp reconnection code. This shouldn't happen normally so make it clear with a debug statement.
* Make nsssrv use the common responder functionsSimo Sorce2009-03-274-687/+200
| | | | | Make nss_ctx a private pointer of the common resp_ctx Use sss_process_init and remove all duplicate functions from nsssrv.c
* Fix uninitailized pointer and cut&paste errorSimo Sorce2009-03-271-1/+5
| | | | | | | The structure we copy the domain pointerr on is not zero when allocated. We need to zero it ourselves or we get segfaults later on. A cut&paste error caused us to call the wrong getpw function.
* Fix buildSimo Sorce2009-03-242-1/+4
| | | | forgot to commit a few changes
* Retrieve some options from confdbSimo Sorce2009-03-203-11/+46
| | | | This fixes some old 'Fixme's :)
* Enhance server_setupSimo Sorce2009-03-202-1/+3
| | | | | | | Now it can load from scratch default configuration that is valid for all daemons. First thing, make it possible for each daemon/provider to set its own debug level in its configuration entry.
* Fix getgrent and getpwent callsSimo Sorce2009-03-181-2/+6
| | | | | | When I converted from using just the domain name to passing down the info structure I goofed how to test if we were willing to attach the local domain to the user/group names or not.
* Implement Negative cache for NSSSimo Sorce2009-03-135-3/+570
| | | | | | | As for positive caches, negative caches are implement for all queries except enumerations. Also set the correct requires in sssd.spec as we now depend directly on tdb as well.
* Fix returning user with missing optional attributes.Simo Sorce2009-03-101-5/+8
| | | | | | | | | Gecos, homedir and shell are optional, fix the responder not to refuse to return the user completely if they are missing, replace an empty homedir with "/". Also fix fullname vs gecos, and always return gecos for NSS data. On user creation set gecos to the same value as the user Full Name, to help populate the gecos field with data that makes sense.
* Treat uids and gids as 32 bit numbers not 64Simo Sorce2009-03-101-23/+21
| | | | | | In the nss communication protocol we were treating uids and gids as 64 bit values, but uids and gids are really u32 values, change the protocol to reflect the real size.
* Always pass sss_domain_info to sysdb functions.Simo Sorce2009-03-091-27/+15
|
* use fixed paths to sockets to make sure clients and server are using the sameSumit Bose2009-03-092-1/+6
|
* Fix reporting non-default users.Simo Sorce2009-03-062-301/+314
| | | | | We need to add the domain when users are not part of the default domain, otherwise name conflicts may happen.
* Remove _PW_ and _GR_ from SYSDB_ definesSimo Sorce2009-03-051-10/+10
| | | | Also unify SYSDB_PW_NAME and SYSDB_GR_NAME in SYSDB_NAME and make it "name"
* Implement GetCachedUsers in the InfoPipeStephen Gallagher2009-03-051-2/+2
| | | | | | | | | | | | | This function allows a caller to retrieve a list of users who have logged in on the system, specifying an optional minimum last login time to trim the list. I modified sysdb_enumpwent to accept an optional search argument. GetCachedUsers takes advantage of this argument to limit the search by the last login time. I also found and fixed a few additional low-memory conditions around D-BUS message replies.
* Add enumeration backout period.Simo Sorce2009-03-043-2/+39
| | | | | | | | | If an enumeration has been requested recently enough, force the nss responder to read from the cache and not go out to each backend and do slow network operations. This greatly improves performances if enumerations are used often. Currently the balcout period is harcoded to 2 min, we will need to make it a configurable option.
* Fix confdb issues.Simo Sorce2009-02-281-5/+5
| | | | | | | | | | | Avoid uninitialized memory messages in valgrind (in _btreemap_get_keys). Do not free memory we just stored in the btree (in confdb_get_domains_list). Streamline confdb_get_domains() and remove extra calls when we already have all the information handy. Do not store basedn in domain info, the base dn is always calculated out of the domain name. Remove the "provider" attribute, it was really used only to distinguish between LOCAL and other domains, directly check for LOCAL as a special case instead.
* Refactor creation of domain_map into confdbStephen Gallagher2009-02-273-100/+28
| | | | | | | | | | | | | | | | | The NSS provider, the Data Provider backends and the InfoPipe all need access to the domain map provided by the confdb. Instead of reimplimenting it in multiple places, it is now provided in a pair of helper functions from the confdb. confdb_get_domains() returns a domain map by reference. Always returns the most up-to-date set of domains from the confdb. confdb_get_domains_list() returns an array of strings of all the domain names. Always returns the most up-to-date set of domains from the confdb. This patch also modifies the btreemap_get_keys() function to better handle memory and report allocation failures.
* Serialize access to sysdb and also exposes ldb transactions.Simo Sorce2009-02-262-30/+53
| | | | | | This is necessary because in ldb only 1 transaction per context is possible and all operations (or new transactions) are nested within it. Will revisit this later when ldb will addresses the problem.
* Rebase the code to use talloc, tdb, tevent, ldb as externalSimo Sorce2009-02-264-32/+32
| | | | | | dependencies based on the latest samba code. Convert all references to the old events library to use the renamed tevent library.
* Add PAM responderSumit Bose2009-02-244-0/+3379
Also move responders under server/responder with shared code in server/responder/common Signed-off-by: Simo Sorce <ssorce@redhat.com>