summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/modules
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r18781: Move the usnCreated and usnChanged handling around again.Andrew Bartlett1-127/+0
This moves these attributes from objectguid into an optional backend (objectguid), used by ltdb. For OpenLDAP, the entryUUID module converts entryCSN into usnChanged. This also changes the sequence number API, and uses 'time based' sequence numbers, when an LDAP or similar backend is detected. To assist this, we also store the last modified time in the TDB, whenever we change a value. Andrew Bartlett (This used to be commit 72858f859483c0c532dddb2c146d6bd7b9be5072)
2007-10-10r18770: Avoid crashes and fix up other issues in the client-side ↵Andrew Bartlett1-27/+57
paged_searches module. In particular, we must query the remote server to find out if paged searches are supported, not the local ldb. This patch also removes the ue of bool, and returns it to LDB error codes. Andrew Bartlett (This used to be commit d36d05858bb9b87802f5ffb83285ef12b9646741)
2007-10-10r18591: Better defaults for share creationSimo Sorce1-6/+13
Fix logic error in paged_results (This used to be commit 34ce1f8e1bab2debb508aa8bf478231389a77d42)
2007-10-10r18504: Handle mappings for RENAME and KEEP attributes better. We don't needAndrew Bartlett1-44/+66
to mess with the values in these cases. Where we do convert the values, try and convert substrings. This isn't going to be perfect, but we should try rather than segfault. This also avoids using the wrong arm of the union for the attribute name The change in the entryUUID module is to correct the case of sAMAccountName, due to the case sensitive ldap.js test. Andrew Bartlett (This used to be commit 81d9a692c1e74ec9078bf718003eafdba85b4324)
2007-10-10r18495: More work on the LDAP backend (which now passes a lot of our tests!)Andrew Bartlett4-59/+95
This adds a list of attributes that are in our wildcard seaches, but the remote server requires to be explicitly listed. This also cleans up the handling of wildcards in ldb_map to be more consistant. Also fix the partitions module to rebase the search, if on the GC port, we do a subtree search. (Otherwise backends can rightly complain that the search is not in their scope). Andrew Bartlett (This used to be commit bc58792b7102f086b19353635d5d5ef9d40a0aae)
2007-10-10r18439: 2nd try at a talloc_move() api. This type with the ** ptr interfaceAndrew Tridgell4-11/+11
exposed. Unfortunately this generates a large number of type punning warnings. We'll have to find some magic to hide those. (This used to be commit 254cbf09dee5a1e20c47e47a298f1a8d172b41b9)
2007-10-10r18438: I should have examined these uses of talloc_move() moreAndrew Tridgell1-5/+3
carefully. Most of them are OK, but a couple were not. (This used to be commit b0de2838829d9750817c31f28c11c6b2be6e7b64)
2007-10-10r18436: converted ldb to use talloc_move() instead of talloc_steal() whenAndrew Tridgell4-35/+13
appropriate. Note that I also removed the error checks that were being done on the result of talloc_steal(). They are pointless as talloc_steal() doesn't have any failure modes that wouldn't cause a segv anyway, and they tend to clutter the code (This used to be commit c0d9e7d473b8e3eb2524a9fc29cf88680f994b36)
2007-10-10r18321: fixed some warnings on AIXAndrew Tridgell2-3/+3
(This used to be commit 449fab2c264aa50601f9a2d3310f1910ba97706b)
2007-10-10r18317: Make sure we actually have a valid reply or failSimo Sorce1-0/+3
(This used to be commit 41cb3a9258012e628a2d87959cc066f6c5d92255)
2007-10-10r18301: I discovered how to load the warnings from a build farm build intoAndrew Tridgell2-3/+3
emacs compile mode (hint, paste to a file, and compile as "cat filename"). This allowed me to fix nearly all the warnings for a IA_64 SuSE build very quickly. (This used to be commit eba6c84efff735bb0ca941ac4b755ce2b0591667)
2007-10-10r17775: use an enum to get rid of compiler warningsStefan Metzmacher1-6/+6
metze (This used to be commit c66cf31afd99d537b1f4dfc8ff1502dfa6accfd3)
2007-10-10r17700: Despite our best hopes, the way module initialisation tends to happen,Andrew Bartlett1-4/+4
we make searches before things are initialised. Cope with this. Andrew Bartlett (This used to be commit daa1a61891ede404bcce72affb7094e5c452c689)
2007-10-10r17698: The original code assumed that &data->context was a valid tallocAndrew Bartlett2-13/+21
pointer. This only works when this is the only structure member, but when I added a new context pointer, it failed. Andrew Bartlett (This used to be commit 5bcfa12cef0d9eba5d5d1f65f676e7852297667f)
2007-10-10r17691: Make the structure more public, so we have somewhere for callingAndrew Bartlett2-5/+6
modules to put private data. Andrew Bartlett (This used to be commit ba00f45357d113bf245c6622ef96701aa7c7026c)
2007-10-10r17614: Our first "client side' ldb module.Simo Sorce1-0/+438
This module has been created with the purpose of being used for searches against ldap servers without the need to handle the control manually You can test it by passing -o modules:paged_searches to ldbsearch The page search size is set to 500 objects. Simo. (This used to be commit 07d377f3c27966b40465bb5dc4f55746ba8489af)
2007-10-10r17596: apply patch from MartinSimo Sorce1-4/+4
(This used to be commit e9d101bc3c1e7c1e8b6560a1f7161e6eb270c7df)
2007-10-10r17579: make ldb build g++ friendlyAndrew Tridgell1-19/+19
(This used to be commit 403cbd335594112e0c58fd68d20f0e3faad7d186)
2007-10-10r17542: In using ldb_map, I ran across some very odd behaviours when we searchAndrew Bartlett4-5/+26
for objectClass=xyz. The code has been warning at me 'no covert_operator set', and indeed this is the case. (It then proceeds to strip this as a search expression) In this commit, I have implemented a convert_operator for objectClass, by pretending it is a simple MAP_CONVERT operator for the search requests. I also have changed the logic for when we should bail out. I can only see reason to bail out on the search if we have both local and remote trees. How can a remote-only search be un-splittable? Andrew Bartlett (This used to be commit 656e58672c357121647a080400fcab4e5d30b46b)
2007-10-10r17526: Move timestamp generation into the objectGUID module. It probablyAndrew Bartlett1-41/+0
needs to be renamed (operation_add?). This allows me to match the behaviour and substitute with the entryUUID module for remote LDAP connections. Andrew Bartlett (This used to be commit af02b4d7c631bb15bf5a5f73f9fdc23075d50f60)
2007-10-10r17525: This is a merge from the Google Summer of Code 2006 project by ↵Andrew Bartlett5-1231/+3044
Martin Kühl <mkhl@samba.org>. Martin took over the work done last year by Jelmer, in last year's SoC. This was a substanital task, as the the ldb modules API changed significantly during the past year, with the addition of async calls. This changeset reimplements and enables the ldb_map ldb module and adapts the example module and test case, both named samba3sam, to the implementation. The ldb_map module supports splitting an ldb database into two parts (called the "local" and "remote" part) and storing the data in one of them (the remote database) in a different format while the other acts as a fallback. This allows ldb to e.g. store to and load data from a remote LDAP server and present it according to the Samba4 schema while still allowing the LDAP to present and modify its data separately. A complex example of this is the samba3sam module (by Jelmer Vernooij), which maps data between the samba3 and samba4 schemas. A simpler example is given by the entryUUID module (by Andrew Bartlett), which handles some of the differences between AD and OpenLDAP in operational attributes. It principally maps objectGUID, to and from entryUUID elements. This is also an example of a module that doesn't use the local backend as fallback storage. This merge also splits the ldb_map.c file into smaller, more manageable parts. (This used to be commit af2bece4d343a9f787b2e3628848b266cec2b9f0)
2007-10-10r17514: Simplify the way to set ldb errors and add anotherSimo Sorce6-31/+32
helper function to set them. (This used to be commit 260868bae56194fcb98d55afc22fc66d96a303df)
2007-10-10r17186: "async" word abuse clean-up part 2Simo Sorce6-82/+82
(This used to be commit c6aa60c7e69abf1f83efc150b1c3ed02751c45fc)
2007-10-10r17185: Oh, I wanted to do this for sooo long time.Simo Sorce6-147/+147
Finally acknowledge that ldb is inherently async and does not have a dual personality anymore Rename all ldb_async_XXX functions to ldb_XXX except for ldb_async_result, it is now ldb_reply to reflect the real function of this structure. Simo. (This used to be commit 25fc7354049d62efeba17681ef1cdd326bc3f2ef)
2007-10-10r17031: When I first revived the objectclass sorting module, simo complainedAndrew Bartlett1-151/+293
that it should handle the add without a search. Now that I'm working on better behaviour with an LDAP backend, I've fixed the module to do just that. For an ADD, and a MODIFY with the REPLACE flag, we do not need the search step. Andrew Bartlett (This used to be commit 87573e2ee4a71168ea69182d2dc4ebf1779b7c02)
2007-10-10r16972: Replace the sequence_number function pointer in ldb with the ldb flags.Andrew Bartlett1-9/+14
The function pointer was meant to be unused, this patch fixes partition.c to use ldb_sequence_number(). (No backend provided the pointer any more). Set the flags onto the ldb structure, so that all backends opened by the partitions module inherit the flags. Set the read-ony flag when accessed as the global catalog Modify the LDAP server to track that this query is for the global catalog (by incoming port), and set a opqaue pointer. Next step is to read that opaque pointer in the partitions module. Andrew Bartlett (This used to be commit a1161cb30e4ffa09657a89e03ca85dd6efd4feba)
2007-10-10r16825: Make ldb_sainity_check() set an error string. This makes it muchAndrew Bartlett1-1/+1
easier to chase down what modules or application code gets wrong. Ensure not to leave memory allocated on failure in ldb_search() Andrew Bartlett (This used to be commit 0828739951ed879640f8ed6e4700d8ca6b8221b8)
2007-10-10r16264: Add, but do not yet enable, the partitions module.Andrew Bartlett3-6/+6
This required changes to the rootDSE module, to allow registration of partitions. In doing so I renamed the 'register' operation to 'register_control' and 'register_partition', which changed a few more modules. Due to the behaviour of certain LDAP servers, we create the baseDN entry in two parts: Firstly, we allow the admin to export a simple LDIF file to add to their server. Then we perform a modify to add the remaining attributes. To delete all users in partitions, we must now search and delete all objects in the partition, rather than a simple search from the root. Against LDAP, this might not delete all objects, so we allow this to fail. In testing, we found that the 'Domain Controllers' container was misnamed, and should be 'CN=', rather than 'OU='. To avoid the Templates being found in default searches, they have been moved to CN=Templates from CN=Templates,${BASEDN}. Andrew Bartlett (This used to be commit b49a4fbb57f10726bd288fdc9fc95c0cbbe9094a)
2007-10-10r16100: Patch from Michael Wood <mwood@icts.uct.ac.za>: s/then/than/ for ↵Gerald Carter1-2/+2
correct grammar (This used to be commit 26a2fa97e4c819e630bc9b50e11c8d5328c7b8c8)
2007-10-10r16090: Fix standalone build after the rename of enum ldb_request_type inTim Potter2-11/+11
r15944. Hey idra I think a better rename would be to keep the LDB_REQ suffix here to remain consistent with the other enums (e.g ldb_reply_type, ldb_async_wait_type and ldb_async_state). (This used to be commit d44ee8c43bd8f6f978330a8ded8bf30ffad494d6)
2007-10-10r16053: Allow entries without an objectClass. We need this to permit theAndrew Bartlett1-5/+3
cn=rootDSE entry. (it was also crashing, as 'ac' wasn't initialised at this point) Andrew Bartlett (This used to be commit 8455aafb1547ae843b066db716a892fda14438b4)
2007-10-10r16036: Add a couple of new functions to corretly deal with timeouts.Simo Sorce6-58/+31
Check timeouts are correctly verified. Some minor fixed and removal of unused code. (This used to be commit b52e5d6a0cb1a32e62759eaa49ce3e4cc804cc92)
2007-10-10r16028: Re-add the objectclass module, in the new async scheme.Andrew Bartlett1-98/+342
Add a test to show that we need this, and to prove it works (for add at least). Andrew Bartlett (This used to be commit f72079029abb594677bf8c2b63e40c07e910004f)
2007-10-10r15944: rename LDB_ASYNC_ADD -> LDB_ADD, LDB_ASYNC_MODIFY -> LDB_MODIFY, etc...Simo Sorce2-2/+2
(This used to be commit 55d97ef88f377ef1dbf7b1774a15cf9035e2f320)
2007-10-10r15942: Remove the sync internal ldb calls altogether.Simo Sorce5-707/+6
This means that some modules have been disabled as well as they have not been ported to the async interface One of them is the ugly objectclass module. I hope that the change in samldb module will make the MMC happy without the need of this crappy module, we need proper handling in a decent schema module. proxy and ldb_map have also been disabled ldb_sqlite3 need to be ported as well (currenlty just broken). (This used to be commit 51083de795bdcbf649de926e86969adc20239b6d)
2007-10-10r15932: Remove per request credsSimo Sorce4-9/+0
They have never benn used and make little sense too imo (This used to be commit f0c1d08d50f8a3e25650ac85b178ec7a43e433d9)
2007-10-10r15927: Optimize ldb module traverse while keeping the API intact.Simo Sorce6-67/+61
I was sick of jumping inot each module for each request, even the ones not handle by that module. (This used to be commit 7d65105e885a28584e8555453b90232c43a92bf7)
2007-10-10r15922: password_hash.c has proven to be a good way to research how to build ↵Simo Sorce1-42/+65
an async module change asq.c to be more readble (This used to be commit 9197187c4290847721432db09bdfb2f1d06e51ba)
2007-10-10r15913: Error passing in the async code is not in agood shapeSimo Sorce2-6/+202
Start enhancing it and fix some problems with incorrect evalutaion of the codes Implement rdn rename (async only) (This used to be commit 6af1d738b9668d4f0eb6194ac0f84af9e73f8c2e)
2007-10-10r15854: more talloc_set_destructor() typesafe fixesAndrew Tridgell2-5/+2
(This used to be commit 61c6100617589ac6df4f527877241464cacbf8b3)
2007-10-10r15786: another fix in rdn_nameSimo Sorce1-10/+3
(This used to be commit 202ce2a947626f51467d5c87dfcdb73852282709)
2007-10-10r15762: It make no sense for rdn_name to implement modify, it will need to ↵Simo Sorce1-138/+0
implement rename ... (This used to be commit bf260f2a84f9c1f749798068168a22c86ab2e7b2)
2007-10-10r15761: Fix-as-you-go ...Simo Sorce1-20/+6
Testing various async paths and uncovering bugs (This used to be commit 099d873ea596ece18efe63b06bc64e7f97a96f82)
2007-10-10r14436: mixing of boolean expressions and integers isn't allowedAndrew Tridgell1-3/+3
(This used to be commit 6f7d09262d2e92df137167da55f5a22f32490781)
2007-10-10r14433: sort_result must be initialised when we call do_resultAndrew Tridgell1-1/+2
(This used to be commit a33f6a9832c7ae03e630d33120cfa048a51089d5)
2007-10-10r14391: rdn_name -> asyncSimo Sorce2-7/+176
(This used to be commit 0bc3caa9187e992b09bf797e7de507cca9734ab2)
2007-10-10r14364: operational -> async (untested)Simo Sorce1-0/+251
(This used to be commit b112eb774fb1a3d689c8598bbf55ac3e978b8682)
2007-10-10r14344: More helpful messages on error for command line specified controlsSimo Sorce2-58/+424
fixes in paged_results asq -> async (This used to be commit fbd347544001da9e46246eb0b4a8d165ccab15c9)
2007-10-10r14162: Minor fixes on sortSimo Sorce2-55/+485
Initial work on async paged_results (This used to be commit 72523eae7f8925a2c23d3260875345adcf1661bb)
2007-10-10r13998: From now on ldb_request() will require an alloced requestSimo Sorce2-12/+28
By freeing the request you will be sure everything down the path get freed. this also means you have to steal the results if you want to keep them :) simo. (This used to be commit e8075e6a062ce5edb84485e45d0b841c2ee2af7d)