summaryrefslogtreecommitdiff
path: root/source4/lib/ldb/include
AgeCommit message (Collapse)AuthorFilesLines
2007-10-10r8037: a fairly major update to the internals of ldb. Changes are:Andrew Tridgell3-13/+81
- moved the knowledge of attribute types out of ldb_tdb and into the generic ldb code. This allows the ldb_match() message match logic to be generic, so it can be used by other backend - added the generic ability to load attribute handlers, for canonicalisation, compare, ldif read and ldif write. In the future this will be used by the schema module to allow us to correctly obey the attributetype schema elements - added attribute handlers for some of the core ldap attribute types, Integer, DirectoryString, DN, ObjectClass etc - added automatic registration of attribute handlers for well-known attribute names 'cn', 'dc', 'dn', 'ou' and 'objectClass' - converted the objectSid special handlers for Samba to the new system - added more correct handling of indexing in tdb backend based on the attribute canonicalisation function - added generic support for subclasses, moving it out of the tdb backend. This will be used in future by the schema module - fixed several bugs in the dn_explode code. It still needs more work, but doesn't corrupt ldb dbs any more. (This used to be commit 944c5844ab441b96d8e5d7b2d151982139d1fab9)
2007-10-10r7937: main file was missingSimo Sorce1-15/+11
(This used to be commit 3898cdb0dc4722a7eb60a61b54ef778dab475aed)
2007-10-10r7936: new ldb_dn_explode and ldb_dn_casefold functions and coSimo Sorce1-0/+1
(This used to be commit 7ccf21ab4eeb9821e457308a239f2103a106fb12)
2007-10-10r7828: Although there is still plenty to do, ldb_sqlite3 now passes the set ↵Derrell Lipman1-0/+10
of tests in tests/test-sqlite3.sh (tests/test-generic.sh). There are lots of optimizations still TBD, and some things are REALLY slow right now (e.g. each add() operation takes 1/3 - 1/2 second) but it's ready for interested parties to poke it and prod it and see how (un)reasonable it is. Play away. Still to be implemented or improved: - tdb specials (@MODULES, @SUBCLASSES, etc.) - all DNs are case-folded in their entirty right now (since doing otherwise would require @ATTRIBUTES to be implemented) - speed improvements and optimizations. I am quite confident that the excessively slow add() operation can be much improved, and other areas can be somewhat improved. (This used to be commit 1dd865005594671e7effe06fb088fa97fa08de0b)
2007-10-10r7804: added the samba specific ldif handlers into the tree, but don't enableAndrew Tridgell1-0/+3
them just yet. I have tested them, and they work fine, but enabling them will break code in rpc_server/ and samdb, so we need to fix that first (This used to be commit 07d459406b4c63e49141e0e533e1274b4052abf9)
2007-10-10r7803: added support in ldb for callers to setup ldif read/write functions,Andrew Tridgell2-0/+17
so that ldbedit, ldbsearch etc can display nice human readable ldif, while storing the data as binary blobs. This will be used for storing NDR encoded objectSid and similar attributes, while making the command line interface sane (This used to be commit 37e283089a846fc0608fef3981a3447300e33728)
2007-10-10r7776: add a method for getting arbitrary opaque data into a ldb context, ↵Andrew Tridgell2-0/+11
for use by backends. Currently only EventContext is used in this way. (This used to be commit 9fa21b245843371f7777682ee4e5b98e2925b4d0)
2007-10-10r7740: get rid of our duplicate base64 routinesAndrew Tridgell2-1/+2
(This used to be commit cf17f90a83cf04815544c5408eb56d00546b3e88)
2007-10-10r7709: - convert ldb to use popt, so that it can interact with the sambaAndrew Tridgell2-16/+24
cmdline credentials code (which will be done soon) - added a ldb_init() call, and changed ldb_connect() to take a ldb context. This allows for much better error handling in ldb_connect(), and also made the popt conversion easier - fixed up all the existing backends with the new syntax - improved error handling in *_connect() - fixed a crash bug in the new case_fold_required() code - ensured that ltdb_rename() and all ltdb_search() paths get the read lock - added a ldb_oom() macro to make it easier to report out of memory situations in ldb code (This used to be commit f648fdf187669d6d87d01dd4e786b03cd420f220)
2007-10-10r7667: added a ldb ildap backend, using our internal ldap client library. ↵Andrew Tridgell1-0/+3
Next step is to remove the check for the ldap libraries in configure (This used to be commit 74841dbb2a86bb1c584b5c26c4cd24a818a65a34)
2007-10-10r7601: ldb_sqlite3 work in progressDerrell Lipman1-1/+4
(This used to be commit 0a64948152a446b5e127578d49b1ed8a90a1a222)
2007-10-10r7596: next step in ldap cleanup. I'm aiming to get rid of the cut&pastedAndrew Tridgell1-3/+5
ldif parsing code in libcli/ldap/ldap_ldif.c, and instead use the ldb ldif code. To do that I have changed the ldap code to use 'struct ldb_message_element' instead of 'struct ldap_attribute'. They are essentially the same structure anyway, so by making them really the same it will be much easier to use the ldb code in libcli/ldap/ I have also made 'struct ldb_val' the same as a DATA_BLOB, which will simplify data handling in quite a few places (I haven't yet removed all the code that maps between these two, that will come later) (This used to be commit 87fc3073392236221a3a6b933284e9e477c24ae5)
2007-10-10r7561: moved OID constants into ldb.h and used manifest constants in ldb_match.cDerrell Lipman1-0/+6
(This used to be commit 42cbb155c20779c458f727488c8554842b24681b)
2007-10-10r7558: added support in ldb for extended ldap search requests. These areAndrew Tridgell2-1/+12
using to perform such things as bitop tests on integers. So far I have only added support for the 1.2.840.113556.1.4.803 and 1.2.840.113556.1.4.804 rules, which are for bitwise and/or (This used to be commit 5f773b065f1db959e59c02de68bcf30cef1a6c2c)
2007-10-10r7527: - added a ldb_search_bytree() interface, which takes a ldb_parse_treeAndrew Tridgell3-61/+41
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-10r7522: added a ldb_filter_from_tree() function that takes a ldb_parse_treeAndrew Tridgell1-2/+3
and forms a ldab search filter expression. Next step is to make our ldap server code go from ASN.1 to a ldb_parse_tree, instead of trying to construct string filters, then add a ldb_search_tree() call to allow for searches using parse trees. all of this is being done as I am hitting bitwise '&' ldap search expressions from w2k, and want to handle them cleanly. (This used to be commit 04356c1b1ed86d72934bc1b0ed60b767e10a1196)
2007-10-10r7515: merge in the binary encode/decode enhancements from the libcli/ldap/Andrew Tridgell1-0/+1
code into the ldb parse code (This used to be commit 12647e37223847da810c2d4e5f83328b1fcf88cb)
2007-10-10r7514: make the ldb_parse code not depend on a ldb_context, so we can now ↵Andrew Tridgell1-2/+1
potentially use it in our ldap client code, instead of replicating all the code (This used to be commit 5b3575d9303d54a771e080a670dcd2f444b10c20)
2007-10-10r7418: work in progressDerrell Lipman2-3/+6
(This used to be commit 2a13e7655b1bce88694ddbb6a4d9349008ba42f0)
2007-10-10r7410: minor cleanupDerrell Lipman1-2/+7
(This used to be commit 4c8bffc3f01d60ef7d8b75e92f4d062326288f4c)
2007-10-10r7408: added DN explode function, based on simo's ldap_parse_dn() function. ↵Derrell Lipman1-0/+38
simo, when you get a chance, please change your license so this can be linked with ldb. (This used to be commit 588a1d1451d4117cb6e427a293455f2a5657b604)
2007-10-10r7286: add prototype for public connect function in ldb_sqlite3Derrell Lipman1-0/+3
(This used to be commit 10d438af06b3ab442c7a98b704d2e0bfe49b739d)
2007-10-10r7276: - moved static tdb function ltdb_dn_fold() into common/ so that it can beDerrell Lipman1-0/+3
called from multiple backends. (ldb_sqlite3 needs it too.) Added parameter for a callback function that determines whether an attribute needs case folding. - begin to prepare for sqlite3 in build process - work-in-progress updates, on ldb_sqlite3 (This used to be commit a80bced0b96ffb655559a43cf7f4d7a34deb5a7d)
2007-10-10r6931: declare this to avoid warnings until we have loadable modulesSimo Sorce1-0/+1
(This used to be commit 73258909dbd4e14f3c8eb5cebe0647539d141c8d)
2007-10-10r6833: split out the routine that calculates the diff between two ldb ↵Andrew Tridgell1-0/+4
messages from ldbedit, so other progs can use it. (This used to be commit fa4f33558af3c65ff31424c01db16cb9d427503d)
2007-10-10r6790: Use config.h file for ldb and add test for stdint.hJelmer Vernooij1-1/+3
(This used to be commit c1f1b5a9455c827f7baf382d919ab8a0eab49bb3)
2007-10-10r6470: Remove ldb_search_free() it is not needed anymore.Simo Sorce2-8/+2
Just use talloc_free() to release the memory after an ldb_search(). (This used to be commit 4f0948dab0aa5e8b6a4ce486f3668ca8dfae23db)
2007-10-10r5585: LDB interfaces change:Simo Sorce2-11/+3
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)
2007-10-10r5374: - changed the dn key code in the ldb tdb backend to correctly honorAndrew Tridgell1-4/+5
the case sensitive/insensitive flags on sections of a dn. So if a dn is made up of 4 attributes, and 2 of those are case insensitive and 2 are case sensitive, then all the attribute names are uppercases, but only the values of the case insensitive attributes are uppercased when forming the tdb key. - added code to canonicalise the dn, removing leading and trailing spaces from attribute names and values - when the @ATTRIBUTES record changes, fix the dn keys of any records that should now have new dn keys due to changes in the case sensitivity of the record I really did this to allow me to make the WINS database properly case insensitive, but it is also the correct general fix for ldb, as it matches the LDAP specification (and w2k LDAP server behaviour) (This used to be commit 0f034dc5636d182a1d9207ad662b3fc8df7ca3e4)
2007-10-10r5357: added ldb_msg_add_fmt(), for creating formatted ldb record valuesAndrew Tridgell1-0/+2
(This used to be commit 18fb48204f4c0e22ea7e61575b3f174f30ff035c)
2007-10-10r5092: Add a bit more const - moving it further into the LDB layer.Andrew Bartlett1-1/+1
Andrew Bartlett (This used to be commit ffad9b22be595279b247fa72d51145830fecbb06)
2007-10-10r4678: Add some const to LDB.Andrew Bartlett1-1/+1
Andrew Bartlett (This used to be commit d4da9fb1600dba5daca9acb83f528c8f5f42f0ce)
2007-10-10r4477: expanded the test suite to increase code coverage a lotAndrew Tridgell1-4/+0
(This used to be commit 4edbd1b18ee38e584cf844b64c7fcb2645921837)
2007-10-10r4474: - converted ldb to use talloc internallyAndrew Tridgell4-149/+9
- added gcov flags to Makefile.ldb - expanded ldb test suite to get more coverage (This used to be commit 0ab98f50a7e0fe15347a99e5c29a6590a87729a0)
2007-10-10r4466: rather than defining "STANDALONE" for building tdb, ldb and tallocAndrew Tridgell1-0/+96
outside the tree, instead defined _SAMBA_BUILD_ inside the Samba build. This makes it easier to pull code out of Samba for external use. (This used to be commit 09e98c8745cca7ccb1ad7134c0c09b8e4c0f4f06)
2007-10-10r4427: - added ldb_msg_*() functions for sorting, comparing and copying messagesAndrew Tridgell1-0/+12
- added a ldb_msg_canonicalize() function that fixes a record to not have any duplicate elements - changed ldbedit to use ldb_msg_canonicalize(). This fixes a bug when you rename multiple elements in a record in one edit (This used to be commit f006e724400843419c8b6155cbeae1876983855e)
2007-10-10r4059: moved the ldb -o option parsing to a common routineAndrew Tridgell1-0/+2
(This used to be commit ee52c1e38c9bac852458196ffbd677cca62a3965)
2007-10-10r3897: add a locking infrastructureSimo Sorce1-0/+4
(This used to be commit a99c0adb09e2bc77b876d23cb2d0711ccffd83ca)
2007-10-10r3783: - don't use make proto for ldb anymoreStefan Metzmacher4-63/+167
- split ldh.h out of samba's includes.h - make ldb_context and ldb_module private to the subsystem - use ltdb_ prefix for all ldb_tdb functions metze (This used to be commit f5ee40d6ce8224e280070975efc9911558fe675c)
2007-10-10r3755: add missing filesSimo Sorce1-0/+93
(This used to be commit 0b715b6ce21d23970d207d57e90133be17790d15)
2007-10-10r3754: merge in ldb modules support from the tmp branch ldbPluginsSimo Sorce1-15/+25
(This used to be commit 71323f424b4561af1fdddd2358629049be3dad8c)
2007-10-10r3449: more include file reductionAndrew Tridgell1-0/+8
the ldb part isn't ideal, I will have to think of a better solution (This used to be commit 6b1f86aea8427a8e957b1aeb0ec2f507297f07cb)
2007-10-10r3093: - implment ldb_rename() and ldbrenameStefan Metzmacher1-0/+8
- add tests for ldbrename - disable all tests which regenerate the index (this is broken for me...the process hangs, tridge we need to discuss that) - link only the needed stuff to the ldb tools - build ldbtest inside samba metze (This used to be commit 18552f4786c24e0019cc87726ef4c05365fe586e)
2007-10-10r2792: got rid of talloc_ldb_alloc() and instead created talloc_realloc_fn(),Andrew Tridgell1-2/+2
so talloc now doesn't contain any ldb specific functions. allow NULL to be passed to a couple more talloc() functions (This used to be commit 1246f80d806fb5f63cfbf3879de6d546384552a8)
2007-10-10r2484: allow ldb to build standalone againAndrew Tridgell1-0/+7
(This used to be commit 05601a4c6f7c7a019fcac8743e2e4775a498b26a)
2007-10-10r1055: Standalone build fixes for ldb:Tim Potter1-1/+2
- Various Makefile fixes - #include <stdint.h> ldb still needs a proper build system though. (-: (This used to be commit 52e4fe8ce9142c4002263686c8043d94b37d7a9c)
2007-10-10r1018: fix a const and unsigned int problem in ldbAndrew Tridgell1-1/+1
(This used to be commit 3d52ca93731ad67c14ac42f627e3feb1a964b29a)
2007-10-10r792: - changed the ldb ldif_* functions to be in the ldb_ namespaceAndrew Tridgell1-13/+10
- added better error reporting in ldbdel - fixed a bug in handling packing of records which contain elements with no values (it caused db corruption) - allow search with "dn" as target attribute (This used to be commit 36575396234e3d35dbd442c8f1ff54a17ae64e64)
2007-10-10r574: - another attempt at const cleanliness in ldbAndrew Tridgell1-2/+2
- fixed a problem with searching for values containing an '=' sign - fixed the semantics of attempting an attribute deletion on an attribute that doesn't exist. - added some more ldb_msg_*() utilities (This used to be commit 62b4ec367d170330d837b0f1fe5cd13205a53b59)
2007-10-10r513: added a generic ldb debug system to allow the Samba debug functions toAndrew Tridgell1-0/+29
be cleanly interfaced to ldb (This used to be commit 74b89d5f960d6b936751e3f057b4540eb80b79cd)