summaryrefslogtreecommitdiffstats
path: root/src/back-shr.c
Commit message (Collapse)AuthorAgeFilesLines
* Stop checking if a non-NULL value has a NULL valueNalin Dahyabhai2013-12-121-2/+2
|
* Silence a compiler warningNalin Dahyabhai2013-12-121-1/+2
|
* Add ignore-subtree and restrict-subtree settingsNalin Dahyabhai2013-09-191-41/+72
| | | | | | | | | | | | | | Add {nis,schema-compat}-ignore-subtree (subtrees under which we ignore contents and updates )and {nis,schema-compat}-restrict-subtree (subtrees out of which we ignore contents and updates, if set) settings, and default the former to "cn=tasks,cn=config". This should avoid cases where we're looking through the ldbm backend for entries which have a dangling reference to a newly-added task (which, because it's in the DSE, means we acquire an ldbm lock after acquiring our internal lock) while also updating a compat entry after its source entry is modified (for example, by the memberOf plugin, which results in us attempting to acquire our lock while the ldbm lock is already held).
* Add schema-compat-relevant-subtreeNalin Dahyabhai2013-09-121-2/+29
| | | | | | | | | | Add a schema-compat-relevant-subtree configuration option, listing the only parts of the DIT that we should ever look at, either as source entries or as other entries which contain data which might be pulled in as part of computing the contents of compat entries. This is more or less the whitelist to schema-compat-ignore-subtree's blacklist.
* Add schema-compat-ignore-subtreeNalin Dahyabhai2013-09-121-0/+98
| | | | | | | Add a schema-compat-ignore-subtree configuration option, listing parts of the DIT that we should never look at, neither as source entries nor as random other entries which contain data which might be pulled in as part of computing the contents of compat entries.
* Notice when we fail to write lockNalin Dahyabhai2013-08-071-6/+45
| | | | | | When we fail to write-lock our cache, cancel our update attempt. We'll fall out of sync with the real data, but for now at least, that's better than completely hosing the cache by updating it without the lock.
* Clean up logging a little bitNalin Dahyabhai2013-05-231-8/+10
|
* check SLAPI_PLUGIN_OPRETURN valuesNalin Dahyabhai2013-04-041-0/+21
| | | | | | Check for SLAPI_PLUGIN_OPRETURN values before we do anything, in case there's an error from the backend operation, where the server calls the postop plugins anyway.
* don't skip changes that only affect map membershipNalin Dahyabhai2013-04-041-11/+16
| | | | | | When checking if we can skip processing for a given change, pay attention to whether or not the changes cause the entry to need to be added or removed from a map (#912673).
* explicitly check for "no" valuesNalin Dahyabhai2012-11-141-1/+9
|
* Overhaul betxn supportNalin Dahyabhai2012-11-011-47/+147
| | | | | | | | | * Check for BETXN support at build-time, provide options for disabling or requiring that it be available for build to succeed. * Track whether or not BETXN support is enabled in the plugin-local state. * Skip processing in post/internalpost callbacks if BETXN support is enabled. * Skip work in betxnpost callbacks if BETXN support is disabled.
* make NIS Plugin and Schema Compatibility Plugin betxn awareNoriko Hosoi2012-10-161-16/+31
| | | | | | | | | | When NIS Plugin and Schema Compatibility Plugin config entries include nsslapd-pluginbetxn: on (the value could be yes, true or 1, too), the plugins' update callbacks (add, delete, modify, and modrdn) are called at the betxn pre/postop timing. By default, the value of nsslapd-pluginbetxn is off. (See also https://fedorahosted.org/389/ticket/351)
* drop support for directory server transactionsNalin Dahyabhai2012-06-131-157/+0
| | | | | | | Transaction support the way we added it is an all-or-nothing proposition for a server installation, which turned out to be problematic, so 389 is going to pursue another strategy for that. The new way requires that we not register as a betxn plugin, ever.
* - fix a leakNalin Dahyabhai2012-05-221-21/+39
| | | | | We assumed that slapi_mods_add_smod() took ownership of the smod that we pass in, when it really just keeps the contents.
* - remove unused variablesNalin Dahyabhai2012-01-241-3/+3
|
* - don't log a NULL there, eitherNalin Dahyabhai2012-01-241-2/+2
|
* - avoid a possible NULL derefNalin Dahyabhai2012-01-231-8/+8
|
* - don't lean so hard on slapi_entry_diff(), when if we do it ourselves, the ↵Nalin Dahyabhai2012-01-191-2/+184
| | | | official mods list already narrows down the work needed to get the results we're interested in seeing
* - if there are _no_ substantive changes, drop out of modify even earlier -- ↵Nalin Dahyabhai2012-01-171-3/+37
| | | | this was causing tests to fail when even the modification time wasn't changing, and we later mistook the NULL array of mods to mean that we hadn't worked them out, which caused us to do the work unnecessarily
* - computer our own mods list for modify operations, to not get suckeredNalin Dahyabhai2012-01-171-12/+50
| | | | | into doing completely unnecessary work for other plugins that modify an entry to give it the same contents that it already has
* - use a better message when we're catching a modify on an entry that wasn't ↵Nalin Dahyabhai2012-01-171-0/+13
| | | | before and won't be part of this map
* - be a bit more aggressive about skipping unnecessary workNalin Dahyabhai2012-01-171-5/+1
|
* - if the entry being touched is in an ldbm back-end, but there's no ↵Nalin Dahyabhai2012-01-161-0/+105
| | | | transaction ID, just return, and have faith that we'll be called again in the transaction post
* - use internal wrappers so that we can better know which callback we'reNalin Dahyabhai2012-01-161-8/+48
| | | | answering
* - in callbacks, only use pblocks that are built from pblocks that weNalin Dahyabhai2012-01-161-39/+76
| | | | | | already have, so that we can pass the transaction ID around; this includes additional parameters for a number of functions and a new callback data type for backend_set_config_entry_add_cb()
* - avoid using pblocks for more than one internal operation - the serverNalin Dahyabhai2012-01-111-14/+20
| | | | | | allocates internal state each time but doesn't clean up any that's aready there if you reuse the block - correctly free values we use when constructing compat entries
* - don't ever need to call slapi_free_search_results_internal() after ↵Nalin Dahyabhai2012-01-111-2/+0
| | | | slapi_search_internal_callback_pb()
* - have slapi_search_internal_get_entry() always set its result to NULL on ↵Nalin Dahyabhai2012-01-111-2/+1
| | | | failure
* - be more careful when logging the names of callback entriesNalin Dahyabhai2012-01-101-6/+12
|
* - add a testing option for toggling the skip-uninteresting-updates logicNalin Dahyabhai2012-01-101-2/+4
|
* - change how we skip the be-txn-post hook so that it doesn't produce a ↵Nalin Dahyabhai2012-01-091-2/+0
| | | | | | misleading debug message - set IPV6_V6ONLY to avoid logging an expected EADDRINUSE error
* - most of what's needed to hook back-end txn postoperations, except for the ↵Nalin Dahyabhai2012-01-091-0/+34
| | | | passing the TXN ID around, which means we deadlock if we actually do it
* - Make a note of which attributes we read from any entry when evaluating ↵Nalin Dahyabhai2012-01-061-6/+145
| | | | data, and when we're later called for a modify request which doesn't modify any of those attributes, skip recalculating the entry contents (should make a dent in #771493).
* - use the NDN instead of the target DN as the map keyNalin Dahyabhai2012-01-041-3/+3
|
* - remove format_* functions that didn't need to be exportedNalin Dahyabhai2011-07-261-10/+24
| | | | | - make SDN lists/queues also have a sorted companion which we can use for presence testing
* - don't assume that libc will provide yp headers -- build them ourselvesNalin Dahyabhai2011-05-131-2/+2
|
* - check that we have a complete definition before we try to read it (defect ↵Nalin Dahyabhai2011-01-031-2/+2
| | | | #10107)
* - allocate 'tmp' as an array of 'char *', and not 'char **' (defect #10112)Nalin Dahyabhai2011-01-031-1/+1
|
* - handle a group with no explicitly-named container by treating theNalin Dahyabhai2010-11-221-1/+1
| | | | entries as direct subordinates of the group entry
* - teach wrap_search_internal_get_entry to take an optional filterNalin Dahyabhai2010-11-221-2/+4
| | | | | - where we were applying a filter test after retrieving an entry, just let the retrieval function do it
* - try to factor deref_r and its corresponding update code intoNalin Dahyabhai2010-11-221-3/+25
| | | | optionally handling filters at each step of the way
* - more loggingNalin Dahyabhai2010-11-191-0/+24
|
* - more debug loggingNalin Dahyabhai2010-11-191-10/+18
|
* - revert to registering plugins at init-time, which is what the docsNalin Dahyabhai2009-05-061-0/+16
| | | | | | say we should do - use whether or not the plugin_base is initialized as in indicator of whether the plugin's been started or not
* - fix type mismatch warningsNalin Dahyabhai2009-04-271-2/+2
|
* - actually, entries in this map referring to other entries in theNalin Dahyabhai2008-12-031-9/+0
| | | | same map deserve to be updated, too
* - add some comments for laterNalin Dahyabhai2008-12-031-2/+6
|
* - fix a logic error when determining if an entry which contains anNalin Dahyabhai2008-12-031-4/+5
| | | | attrribute used in %referred() needs other things to be updated
* - add backend_shr_internal_postop_init(), move internal postopNalin Dahyabhai2008-12-031-17/+33
| | | | registration to it, let callback registration return error codes
* - hook our postop callbacks onto internal changes, tooNalin Dahyabhai2008-12-031-0/+20
|