summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/common/ldb_modules.c
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r17473: Split loading a list of modules and initialising them into a seperateAndrew Bartlett1-42/+58
function. Andrew Bartlett (This used to be commit bed17cc579d82f04e44ce3c3d1e74d999c2ab867)
2007-10-10r17398: avoid a memleak when we are returned 0 results and make a more ↵Simo Sorce1-8/+8
creative use of memory contexts (This used to be commit fc97b5dc8ce65232a7a98ffb59def44a931b1565)
2007-10-10r17397: Add const, and use a more local memory context.Andrew Bartlett1-12/+22
Andrew Bartlett (This used to be commit 59fc8031ecf3ba5aa2eff9ec5fa7df76d0c990c6)
2007-10-10r16908: Set an error string if we can't find a backend for an operation.Andrew Bartlett1-1/+5
Andrew Bartlett (This used to be commit 6a8c9af9bae8c482dfdb07114ae8313b7e35d9e9)
2007-10-10r16083: Make it possible to initialise a backend module, without it setting upAndrew Bartlett1-0/+3
the whole ldb structure. Because the sequence number was a fn pointer on the main ldb context, turn it into a full request (currently sync). Andrew Bartlett (This used to be commit fbe7d0ca9031e292b2d2fae263233c973982980a)
2007-10-10r15944: rename LDB_ASYNC_ADD -> LDB_ADD, LDB_ASYNC_MODIFY -> LDB_MODIFY, etc...Simo Sorce1-5/+5
(This used to be commit 55d97ef88f377ef1dbf7b1774a15cf9035e2f320)
2007-10-10r15927: Optimize ldb module traverse while keeping the API intact.Simo Sorce1-2/+21
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-10r14606: Fix paths in developer mode. This allows 'make quicktest' to work whenJelmer Vernooij1-0/+5
building with --enable-dso (This used to be commit 614f062748d95a455d1a99a7444fdc0fe152f4e4)
2007-10-10r14592: Add support for loading shared modules to LDB.Jelmer Vernooij1-0/+39
(This used to be commit f10fae23f0685b2d9c6174596e1c66d799f02c52)
2007-10-10r13992: change the way ldb_async_wait() works.Simo Sorce1-6/+0
I think I should change the name of this function to ldb_async_process(), any opinions ? (This used to be commit 3347322d1327cfa975ee9dccd4f2774e6e14fbcb)
2007-10-10r13990: Fix issues with function renaming.Jelmer Vernooij1-0/+4
(This used to be commit 988ea27e22e3c0f4daf118151f90db5bb243bffc)
2007-10-10r13973: fix the buildStefan Metzmacher1-3/+3
metze (This used to be commit 30af3be22b5f9e6d106954222a3bc4bb53c76665)
2007-10-10r13901: Backends need to be initialized even if there are no modulesSimo Sorce1-22/+22
(This used to be commit 8340ab26dd61d90242283d4e6a0db10f6f6467e2)
2007-10-10r13839: Use registration mechanism for backends as well (in the same senseJelmer Vernooij1-1/+15
my previous patch added it for modules). This is the next step towards LDB backends and modules as run-time loadable .so files. (This used to be commit fb2f70de4f6c4a9b13ad590cb4d3a9c858cede49)
2007-10-10r13823: make async_wait part of the modules opsSimo Sorce1-1/+7
(This used to be commit b4202cf030d5f154f0f94f5f501ecd648ba5c48f)
2007-10-10r13786: [merge] Add registration functions for LDB modulesJelmer Vernooij1-46/+107
Applications that use LDB modules will now have to run ldb_global_init() before they can use LDB. The next step will be adding support for loading LDB modules from .so files. This will also allow us to use one LDB without difference between the standalone and the Samba-specific build (This used to be commit 52a235650514039bf8ffee99a784bbc1b6ae6b92)
2007-10-10r13609: Get in the initial work on making ldb asyncSimo Sorce1-10/+0
Currently only ldb_ildap is async, the plan is to first make all backend support the async calls, and then remove the sync functions from backends and keep the only in the API. Modules will need to be transformed along the way. Simo (This used to be commit 1e2c13b2d52de7c534493dd79a2c0596a3e8c1f5)
2007-10-10r12941: Add Attribute Scoped Search controlSimo Sorce1-0/+1
want to see what it does ? do aq make test and try: ./bin/ldbsearch -H st/private/sam.ldb --controls=asq:1:member -s base -b 'CN=Administrators,CN=Builtin,DC=samba,DC=example,DC=com' 'objectclass=*' have fun. simo. (This used to be commit 900f4fd3435aacc3351f30afb77d3488d2cb4804)
2007-10-10r12909: add an ldb module for the wins.ldb,Stefan Metzmacher1-0/+1
it currently doesn't do much, but it's later prevent adding corrupted records via ldbedit, and will take care of the versionID counter metze (This used to be commit a6f279bc43c74cf4dc116cb6ba99f1aed13a4de9)
2007-10-10r12830: this can be constStefan Metzmacher1-1/+1
metze (This used to be commit 1876e245c49d521e89674dc1662a61e8f4cdc9b5)
2007-10-10r12829: fix ldb headers, to not include '<...>' files in .c filesStefan Metzmacher1-11/+1
this helps in getting symbol -fvisibility=hidden (GCC 4 feature) working later. metze (This used to be commit 380938e97f31c7860aed1e73cc0110c6e17b472e)
2007-10-10r12746: An initial version of the kludge_acls module.Andrew Bartlett1-0/+1
This should be replaced with real ACLs, which tridge is working on. In the meantime, the rules are very simple: - SYSTEM and Administrators can read all. - Users and anonymous cannot read passwords, can read everything else - list of 'password' attributes is hard-coded Most of the difficult work in this was fighting with the C/js interface to add a system_session() all, as it still doesn't get on with me :-) Andrew Bartlett (This used to be commit be9d0cae8989429ef47a713d8f0a82f12966fc78)
2007-10-10r12743: Remove the ugly way we had to make a second stage init and introduceSimo Sorce1-10/+11
a second_stage_init private function for modules that need a second stage init. Simo. (This used to be commit 5e8b365fa2d93801a5de1d9ea76ce9d5546bd248)
2007-10-10r12733: Merge ldap/ldb controls into main treeSimo Sorce1-1/+15
There's still lot of work to do but the patch is stable enough to be pushed into the main samba4 tree. Simo. (This used to be commit 77125feaff252cab44d26593093a9c211c846ce8)
2007-10-10r12600: Add a new module to sort the objectclass attribute on store. TheAndrew Bartlett1-0/+1
module is perhaps not the most efficient, but I think it is reasonable. This should restore operation of MMC against Samba4 (broken by the templating fixes). Andrew Bartlett (This used to be commit 41948c4bdbfca1160a01a92994324f9e22422afe)
2007-10-10r12599: This new LDB module (and associated changes) allows Samba4 to operateAndrew Bartlett1-0/+1
using pre-calculated passwords for all kerberos key types. (Previously we could only use these for the NT# type). The module handles all of the hash/string2key tasks for all parts of Samba, which was previously in the rpc_server/samr/samr_password.c code. We also update the msDS-KeyVersionNumber, and the password history. This new module can be called at provision time, which ensures we start with a database that is consistent in this respect. By ensuring that the krb5key attribute is the only one we need to retrieve, this also simplifies the run-time KDC logic. (Each value of the multi-valued attribute is encoded as a 'Key' in ASN.1, using the definition from Heimdal's HDB. This simplfies the KDC code.). It is hoped that this will speed up the KDC enough that it can again operate under valgrind. (This used to be commit e9022743210b59f19f370d772e532e0f08bfebd9)
2007-10-10r12553: Steal the error string onto this context, so that the caller doesn'tAndrew Bartlett1-1/+1
have to think about exactly what the right context to hang it of is. Andrew Bartlett (This used to be commit b1c8adcfe16c72252b0312e65676edcdbe472f09)
2007-10-10r11953: enabled the rootdse module in the ldb modules codeAndrew Tridgell1-0/+1
(This used to be commit 7d8b11174c97a3797673254c351c94436aa716b7)
2007-10-10r11567: Ldb API change patch.Simo Sorce1-60/+13
This patch changes the way lsb_search is called and the meaning of the returned integer. The last argument of ldb_search is changed from struct ldb_message to struct ldb_result which contains a pointer to a struct ldb_message list and a count of the number of messages. The return is not the count of messages anymore but instead it is an ldb error value. I tryed to keep the patch as tiny as possible bu as you can guess I had to change a good amount of places. I also tried to double check all my changes being sure that the calling functions would still behave as before. But this patch is big enough that I fear some bug may have been introduced anyway even if it passes the test suite. So if you are currently working on any file being touched please give it a deep look and blame me for any error. Simo. (This used to be commit 22c8c97e6fb466b41859e090e959d7f1134be780)
2007-10-10r10916: - finished the 'operational' ldb moduleAndrew Tridgell1-1/+1
- removed the timestamps module, replacing it with the operational module - added a ldb_msg_copy_shallow() function which should be used when a module wants to add new elements to a message on add/modify. This is needed because the caller might be using a constant structure, or may want to re-use the structure again - enabled the UTC time attribute syntaxes in the operational module (This used to be commit 61e8b010223ac6a0573185008f3719ba29574688)
2007-10-10r10897: added in a hackish ldb proxy module that I am using to experiment withAndrew Tridgell1-0/+1
mmc management support (This used to be commit 99a5b088810e8e2f4e28b99a4a0e5e7dc9301594)
2007-10-10r10759: make modules easier to write by allowing modules to only implement theAndrew Tridgell1-36/+30
functions they care about, instead of all functions. This also makes it more likely that future changes to ldb will not break existing modules (This used to be commit 45f0c967b58e7c1b2e900a4d74cfde2a2c527dfa)
2007-10-10r10757: remove the proxy module (it is not complete yet)Andrew Tridgell1-1/+0
(This used to be commit 3c5f3032fcb092545580b986e0ce58bb49e4d9cb)
2007-10-10r10753: don't require every ldb module to implement both a search_bytree() andAndrew Tridgell1-12/+22
a search() function, instead each module now only implements the bytree method, and the expression based search is handled generically by the modules code. This makes for more consistency and less code duplication. fixed the tdb backend to handle BASE searches much more efficiently. They now always only lookup one record, regardless of the search expression (This used to be commit 7e44f9153c5578624e2fca04cdc0a00af0fd9eb4)
2007-10-10r10603: neaten up the ldb module initialisation codeAndrew Tridgell1-63/+29
(This used to be commit 8e7c4c98a7b4fd814f298fba1b6b686cb58339f8)
2007-10-10r10477: expose transactions outside ldb and change the API once moreSimo Sorce1-2/+10
do not autostart transactions on ldb operations if a transaction is already in place test transactions on winsdb all my tests passes so far tridge please confirm this is ok for you (This used to be commit c2bb2a36bdbe0ec7519697a9a9ba7526a0defac2)
2007-10-10r10305: start implementing better error handlingSimo Sorce1-4/+5
changed the prioivate modules API error string are now not spread over all modules but are kept in a single place. This allows a better control of memory and error reporting. (This used to be commit 3fc676ac1d6f59d08bedbbd9377986154cf84ce4)
2007-10-10r10299: remove the public (un)lock functions and introduce a transaction basedSimo Sorce1-4/+4
private ldb API ldb_sqlite3 is already working with this model and ldb_tdb will do as soon as tridge finishes the tdb transaction code. currently the transactions are always implicit and wrap any single ldb API call except searching, the transaction functions are currently not made public on purpose. Simo. (This used to be commit 1da4ac2cdcb7e54076f85242a93784260dced918)
2007-10-10r9685: Add tests for samba3sam mapping moduleJelmer Vernooij1-0/+11
Fix a couple of bugs Move samba3sam backend to lib/ldb/ Remove some more unused parameters (This used to be commit 7f864d446d6af7cfd9fb8dbc496a29b36ec57ce9)
2007-10-10r9391: Convert all the code to use struct ldb_dn to ohandle ldap like ↵Simo Sorce1-5/+12
distinguished names Provide more functions to handle DNs in this form (This used to be commit 692e35b7797e39533dd2a1c4b63d9da30f1eb5ba)
2007-10-10r8669: The objectguid module belongs in Samba's ldb module collection, not inAndrew Bartlett1-5/+5
ldb, as it can't build without the NDR and GUID code. Also make it properly use the NDR encoding for the GUID (I forgot last time, and used a string), as well as set the dependencies on the module correctly. Andrew Bartlett (This used to be commit 8054abc76e5e3588cebc7fc01062a1223b7f140b)
2007-10-10r8667: Further simply the provision script, by removing the 'name' attribute.Andrew Bartlett1-0/+10
This is now calculated on the fly for every add and modify. Andrew Bartlett (This used to be commit ed1f2e029c840d2b3ecb49dbe6e8cd67588eeeed)
2007-10-10r8650: Use the timestamps and a new objectguid module rather than placingAndrew Bartlett1-0/+10
boilerplate attributes in every entry in provision.ldif. The next step will be to use templates. Andrew Bartlett (This used to be commit 940ed9827f5ab83b668a60a2b0110567dd54c3e2)
2007-10-10r7608: bug fix after yesterday's changeSimo Sorce1-1/+1
(This used to be commit 0218fc678e375a05fbc4da5500706199340918e2)
2007-10-10r7527: - added a ldb_search_bytree() interface, which takes a ldb_parse_treeAndrew Tridgell1-4/+16
instead of a search expression. This allows our ldap server to pass its ASN.1 parsed search expressions straight to ldb, instead of going via strings. - updated all the ldb modules code to handle the new interface - got rid of the separate ldb_parse.h now that the ldb_parse structures are exposed externally - moved to C99 structure initialisation in ldb - switched ldap server to using ldb_search_bytree() (This used to be commit 96620ab2ee5d440bbbc51c1bc0cad9977770f897)
2007-10-10r6470: Remove ldb_search_free() it is not needed anymore.Simo Sorce1-8/+0
Just use talloc_free() to release the memory after an ldb_search(). (This used to be commit 4f0948dab0aa5e8b6a4ce486f3668ca8dfae23db)
2007-10-10r6087: - remove the dlopen code for now (before it goes back, it needs to beAndrew Tridgell1-44/+1
made into something that isn't a maze of #ifdefs) - when a module is not found, make it a non-fatal error. Otherwise the standalone ldb tools just bail out. The previous code meant that if you had a module listed and it wasn't present then you could _never_ fix it, as you coudln't open the ldb to remove that module from @MODULES ! (This used to be commit c4728625c093d91e522b80c049e0d42d2b5f143b)
2007-10-10r5670: simplify and clarify ldb_modules.c codeSimo Sorce1-135/+147
rectify the test schema correct a glitch in schema module (This used to be commit 0579b5f7adfe160be8ecf124934b6593a02ed06f)
2007-10-10r5664: simo, please look into this. It is possible for the number of elementsAndrew Tridgell1-1/+3
in msg[0] to be 0, in which case we crash. This is a workaround. Also, if you could please split up this function into readable pieces. It's a bit of a mess at the moment. (This used to be commit 19a22f78c28a4b265f59df1b43c1bb6c9e58f736)
2007-10-10r5585: LDB interfaces change:Simo Sorce1-29/+74
changes: - ldb_wrap disappears from code and become a private structure of db_wrap.c thanks to our move to talloc in ldb code, we do not need to expose it anymore - removal of ldb_close() function form the code thanks to our move to talloc in ldb code, we do not need it anymore use talloc_free() to close and free an ldb database - some minor updates to ldb modules code to cope with the change and fix some bugs I found out during the process (This used to be commit d58be9e74b786a11a57e89df36081d55730dfe0a)